@@ -77,7 +77,7 @@ func callTool(cfg mcpConfig, name string, args map[string]interface{}) (map[stri
7777 return nil , fmt .Errorf ("unknown tool: %s" , name )
7878}
7979
80- func doRequest (cfg mcpConfig , method , path string , body interface {}, headers map [string ]string ) (map [ string ] interface {}, int , error ) {
80+ func doRequest (cfg mcpConfig , method , path string , body interface {}, headers map [string ]string ) (interface {}, int , error ) {
8181 var bodyReader io.Reader
8282 if body != nil {
8383 b , err := json .Marshal (body )
@@ -101,7 +101,7 @@ func doRequest(cfg mcpConfig, method, path string, body interface{}, headers map
101101 return nil , 0 , err
102102 }
103103 defer resp .Body .Close ()
104- var result map [ string ] interface {}
104+ var result interface {}
105105 _ = json .NewDecoder (resp .Body ).Decode (& result )
106106 if result == nil {
107107 result = map [string ]interface {}{}
@@ -122,7 +122,13 @@ func toolHealthCheck(cfg mcpConfig) (map[string]interface{}, error) {
122122
123123func toolRegister (cfg mcpConfig , args map [string ]interface {}) (map [string ]interface {}, error ) {
124124 result , _ , err := doRequest (cfg , "POST" , "/register" , args , nil )
125- return result , err
125+ if err != nil {
126+ return nil , err
127+ }
128+ if m , ok := result .(map [string ]interface {}); ok {
129+ return m , nil
130+ }
131+ return map [string ]interface {}{"result" : result }, nil
126132}
127133
128134func toolUpdateTXT (cfg mcpConfig , args map [string ]interface {}) (map [string ]interface {}, error ) {
@@ -134,7 +140,13 @@ func toolUpdateTXT(cfg mcpConfig, args map[string]interface{}) (map[string]inter
134140 "X-Api-Key" : cfg .Password ,
135141 }
136142 result , _ , err := doRequest (cfg , "POST" , "/update" , args , headers )
137- return result , err
143+ if err != nil {
144+ return nil , err
145+ }
146+ if m , ok := result .(map [string ]interface {}); ok {
147+ return m , nil
148+ }
149+ return map [string ]interface {}{"result" : result }, nil
138150}
139151
140152func toolListRecords (cfg mcpConfig , args map [string ]interface {}) (map [string ]interface {}, error ) {
@@ -154,7 +166,11 @@ func toolListRecords(cfg mcpConfig, args map[string]interface{}) (map[string]int
154166 }
155167 headers := map [string ]string {"Authorization" : "Bearer " + cfg .AdminToken }
156168 result , _ , err := doRequest (cfg , "GET" , path , nil , headers )
157- return result , err
169+ if err != nil {
170+ return nil , err
171+ }
172+ // GET /admin/records returns a JSON array — wrap it for uniform map return
173+ return map [string ]interface {}{"records" : result }, nil
158174}
159175
160176func toolCreateRecord (cfg mcpConfig , args map [string ]interface {}) (map [string ]interface {}, error ) {
@@ -163,7 +179,13 @@ func toolCreateRecord(cfg mcpConfig, args map[string]interface{}) (map[string]in
163179 }
164180 headers := map [string ]string {"Authorization" : "Bearer " + cfg .AdminToken }
165181 result , _ , err := doRequest (cfg , "POST" , "/admin/records" , args , headers )
166- return result , err
182+ if err != nil {
183+ return nil , err
184+ }
185+ if m , ok := result .(map [string ]interface {}); ok {
186+ return m , nil
187+ }
188+ return map [string ]interface {}{"result" : result }, nil
167189}
168190
169191func toolUpdateRecord (cfg mcpConfig , args map [string ]interface {}) (map [string ]interface {}, error ) {
@@ -176,7 +198,13 @@ func toolUpdateRecord(cfg mcpConfig, args map[string]interface{}) (map[string]in
176198 }
177199 headers := map [string ]string {"Authorization" : "Bearer " + cfg .AdminToken }
178200 result , _ , err := doRequest (cfg , "PUT" , "/admin/records/" + id , args , headers )
179- return result , err
201+ if err != nil {
202+ return nil , err
203+ }
204+ if m , ok := result .(map [string ]interface {}); ok {
205+ return m , nil
206+ }
207+ return map [string ]interface {}{"result" : result }, nil
180208}
181209
182210func toolDeleteRecord (cfg mcpConfig , args map [string ]interface {}) (map [string ]interface {}, error ) {
0 commit comments