@mcp-consultant-tools/rest-api 27.0.0-beta.1 → 28.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts +6 -18
- package/build/index.d.ts.map +1 -1
- package/build/index.js +21 -376
- package/build/index.js.map +1 -1
- package/build/models/api-types.d.ts +133 -0
- package/build/models/api-types.d.ts.map +1 -0
- package/build/models/api-types.js +5 -0
- package/build/models/api-types.js.map +1 -0
- package/build/models/index.d.ts +5 -0
- package/build/models/index.d.ts.map +1 -0
- package/build/models/index.js +2 -0
- package/build/models/index.js.map +1 -0
- package/build/prompts/index.d.ts +2 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +24 -0
- package/build/prompts/index.js.map +1 -0
- package/build/prompts/templates.d.ts +6 -0
- package/build/prompts/templates.d.ts.map +1 -0
- package/build/prompts/templates.js +169 -0
- package/build/prompts/templates.js.map +1 -0
- package/build/services/index.d.ts +5 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +5 -0
- package/build/services/index.js.map +1 -0
- package/build/services/openapi-parser.d.ts +69 -0
- package/build/services/openapi-parser.d.ts.map +1 -0
- package/build/services/openapi-parser.js +151 -0
- package/build/services/openapi-parser.js.map +1 -0
- package/build/services/rest-api-service.d.ts +90 -0
- package/build/services/rest-api-service.d.ts.map +1 -0
- package/build/services/rest-api-service.js +403 -0
- package/build/services/rest-api-service.js.map +1 -0
- package/build/tools/index.d.ts +7 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +6 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/rest-tools.d.ts +3 -0
- package/build/tools/rest-tools.d.ts.map +1 -0
- package/build/tools/rest-tools.js +165 -0
- package/build/tools/rest-tools.js.map +1 -0
- package/build/types.d.ts +9 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +1 -1
package/build/index.d.ts
CHANGED
|
@@ -3,25 +3,13 @@
|
|
|
3
3
|
* @mcp-consultant-tools/rest-api
|
|
4
4
|
*
|
|
5
5
|
* MCP server for REST API testing with OAuth2 client credentials support.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Features:
|
|
9
|
-
* - HTTP methods: GET, POST, PUT, DELETE, PATCH
|
|
10
|
-
* - Authentication: Static bearer, Basic auth, API key, OAuth2 client credentials
|
|
11
|
-
* - Response size limiting and truncation
|
|
12
|
-
* - SSL verification control
|
|
13
|
-
* - Custom headers support
|
|
14
|
-
*/
|
|
15
|
-
import { RestApiService } from "./RestApiService.js";
|
|
16
|
-
/**
|
|
17
|
-
* Register REST API tools and prompts to an MCP server
|
|
18
|
-
* @param server - The MCP server instance
|
|
19
|
-
* @param restApiService - Optional pre-configured RestApiService (for testing)
|
|
6
|
+
* Entry point: MCP server startup + registerRestApiTools().
|
|
20
7
|
*/
|
|
21
|
-
export declare function registerRestApiTools(server: any, restApiService?: RestApiService): void;
|
|
22
8
|
/**
|
|
23
|
-
*
|
|
9
|
+
* Register REST API tools and prompts to an MCP server.
|
|
24
10
|
*/
|
|
25
|
-
export
|
|
26
|
-
export
|
|
11
|
+
export declare function registerRestApiTools(server: any): void;
|
|
12
|
+
export { RestApiService } from './services/rest-api-service.js';
|
|
13
|
+
export type { RestApiConfig, RequestOptions, RequestResult, EndpointDefinition, EntitySchema, FieldDefinition, } from './models/index.js';
|
|
14
|
+
export type { ServiceContext } from './types.js';
|
|
27
15
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAoIH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAItD;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -3,24 +3,15 @@
|
|
|
3
3
|
* @mcp-consultant-tools/rest-api
|
|
4
4
|
*
|
|
5
5
|
* MCP server for REST API testing with OAuth2 client credentials support.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Features:
|
|
9
|
-
* - HTTP methods: GET, POST, PUT, DELETE, PATCH
|
|
10
|
-
* - Authentication: Static bearer, Basic auth, API key, OAuth2 client credentials
|
|
11
|
-
* - Response size limiting and truncation
|
|
12
|
-
* - SSL verification control
|
|
13
|
-
* - Custom headers support
|
|
6
|
+
* Entry point: MCP server startup + registerRestApiTools().
|
|
14
7
|
*/
|
|
15
8
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
16
|
-
import { z } from "zod";
|
|
17
9
|
import { pathToFileURL } from "node:url";
|
|
18
10
|
import { realpathSync } from "node:fs";
|
|
19
|
-
import { createMcpServer, createEnvLoader
|
|
20
|
-
import { RestApiService } from
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const PROMPT_COUNT = 2;
|
|
11
|
+
import { createMcpServer, createEnvLoader } from "@mcp-consultant-tools/core";
|
|
12
|
+
import { RestApiService } from './services/rest-api-service.js';
|
|
13
|
+
import { registerAllTools } from './tools/index.js';
|
|
14
|
+
import { registerAllPrompts } from './prompts/index.js';
|
|
24
15
|
/**
|
|
25
16
|
* Parse environment variables for custom headers (HEADER_* pattern)
|
|
26
17
|
*/
|
|
@@ -66,7 +57,6 @@ function buildConfigFromEnv() {
|
|
|
66
57
|
scope: process.env.OAUTH2_SCOPE,
|
|
67
58
|
grantType: process.env.OAUTH2_GRANT_TYPE || "client_credentials",
|
|
68
59
|
};
|
|
69
|
-
// Parse additional OAuth2 parameters
|
|
70
60
|
if (process.env.OAUTH2_ADDITIONAL_PARAMS) {
|
|
71
61
|
try {
|
|
72
62
|
config.oauth2.additionalParams = JSON.parse(process.env.OAUTH2_ADDITIONAL_PARAMS);
|
|
@@ -95,7 +85,7 @@ function buildConfigFromEnv() {
|
|
|
95
85
|
value: process.env.AUTH_APIKEY_VALUE,
|
|
96
86
|
};
|
|
97
87
|
}
|
|
98
|
-
// OpenAPI URL for dynamic discovery
|
|
88
|
+
// OpenAPI URL for dynamic discovery
|
|
99
89
|
if (process.env.REST_OPENAPI_URL) {
|
|
100
90
|
config.openApiUrl = process.env.REST_OPENAPI_URL;
|
|
101
91
|
console.error(`OpenAPI URL configured: ${config.openApiUrl}`);
|
|
@@ -103,13 +93,11 @@ function buildConfigFromEnv() {
|
|
|
103
93
|
return config;
|
|
104
94
|
}
|
|
105
95
|
/**
|
|
106
|
-
*
|
|
107
|
-
* @param server - The MCP server instance
|
|
108
|
-
* @param restApiService - Optional pre-configured RestApiService (for testing)
|
|
96
|
+
* Build a ServiceContext from environment variables (lazy service initialization).
|
|
109
97
|
*/
|
|
110
|
-
|
|
111
|
-
let service =
|
|
112
|
-
function
|
|
98
|
+
function createServiceContext() {
|
|
99
|
+
let service = null;
|
|
100
|
+
function getService() {
|
|
113
101
|
if (!service) {
|
|
114
102
|
const config = buildConfigFromEnv();
|
|
115
103
|
service = new RestApiService(config);
|
|
@@ -122,363 +110,20 @@ export function registerRestApiTools(server, restApiService) {
|
|
|
122
110
|
}
|
|
123
111
|
return service;
|
|
124
112
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
// Tool: rest-request
|
|
129
|
-
server.tool("rest-request", `Test a REST API endpoint with automatic authentication. Supports GET, POST, PUT, DELETE, PATCH methods. Authentication is handled automatically based on server configuration (OAuth2 client credentials, bearer token, basic auth, or API key). Returns detailed request/response information including timing, headers, and body.`, {
|
|
130
|
-
method: z
|
|
131
|
-
.enum(["GET", "POST", "PUT", "DELETE", "PATCH"])
|
|
132
|
-
.describe("HTTP method to use"),
|
|
133
|
-
endpoint: z
|
|
134
|
-
.string()
|
|
135
|
-
.describe('Endpoint path (e.g., "/users", "/api/v1/orders"). Do not include the full URL - only the path.'),
|
|
136
|
-
body: z
|
|
137
|
-
.any()
|
|
138
|
-
.optional()
|
|
139
|
-
.describe("Request body for POST/PUT/PATCH requests (object or string)"),
|
|
140
|
-
headers: z
|
|
141
|
-
.record(z.string())
|
|
142
|
-
.optional()
|
|
143
|
-
.describe("Additional headers for this request. Do not use for auth - configure auth via environment variables."),
|
|
144
|
-
host: z
|
|
145
|
-
.string()
|
|
146
|
-
.optional()
|
|
147
|
-
.describe("Override base URL for this request only (e.g., 'https://other-api.com')"),
|
|
148
|
-
}, async ({ method, endpoint, body, headers, host, }) => {
|
|
149
|
-
try {
|
|
150
|
-
const restService = getRestApiService();
|
|
151
|
-
// Validate endpoint doesn't contain full URL
|
|
152
|
-
const urlPattern = /^(https?:\/\/|www\.)/i;
|
|
153
|
-
if (urlPattern.test(endpoint)) {
|
|
154
|
-
return createErrorResponse(new Error(`Invalid endpoint format. Do not include full URLs. Use just the path (e.g., "/api/users") and optionally specify 'host' to override the base URL.`), "rest-request");
|
|
155
|
-
}
|
|
156
|
-
const options = {
|
|
157
|
-
method,
|
|
158
|
-
endpoint,
|
|
159
|
-
body,
|
|
160
|
-
headers,
|
|
161
|
-
host,
|
|
162
|
-
};
|
|
163
|
-
const result = await restService.request(options);
|
|
164
|
-
return createSuccessResponse(result);
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
return createErrorResponse(error, "rest-request");
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
// Tool: rest-config
|
|
171
|
-
server.tool("rest-config", "Get the current REST API service configuration summary, including base URL, authentication method, SSL settings, and custom headers count.", {}, async () => {
|
|
172
|
-
try {
|
|
173
|
-
const restService = getRestApiService();
|
|
174
|
-
const summary = restService.getConfigSummary();
|
|
175
|
-
return createSuccessResponse(summary);
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
return createErrorResponse(error, "rest-config");
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
// Tool: rest-refresh-token
|
|
182
|
-
server.tool("rest-refresh-token", "Force refresh the OAuth2 access token. Clears the token cache and acquires a new token on the next request. Only relevant when using OAuth2 authentication.", {}, async () => {
|
|
183
|
-
try {
|
|
184
|
-
const restService = getRestApiService();
|
|
185
|
-
const authMethod = restService.getAuthMethod();
|
|
186
|
-
if (authMethod !== "oauth2") {
|
|
187
|
-
return createErrorResponse(new Error(`Token refresh only available for OAuth2 authentication. Current auth method: ${authMethod}`), "rest-refresh-token");
|
|
188
|
-
}
|
|
189
|
-
restService.clearTokenCache();
|
|
190
|
-
return createSuccessResponse({
|
|
191
|
-
message: "OAuth2 token cache cleared. A new token will be acquired on the next request.",
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
return createErrorResponse(error, "rest-refresh-token");
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
// Tool: rest-batch-request
|
|
199
|
-
server.tool("rest-batch-request", "Execute multiple REST API requests sequentially. Useful for testing a series of related endpoints or performing a workflow. Returns results for all requests.", {
|
|
200
|
-
requests: z.array(z.object({
|
|
201
|
-
method: z.enum(["GET", "POST", "PUT", "DELETE", "PATCH"]),
|
|
202
|
-
endpoint: z.string(),
|
|
203
|
-
body: z.any().optional(),
|
|
204
|
-
headers: z.record(z.string()).optional(),
|
|
205
|
-
host: z.string().optional(),
|
|
206
|
-
})).describe("Array of request configurations to execute sequentially"),
|
|
207
|
-
stopOnError: z
|
|
208
|
-
.boolean()
|
|
209
|
-
.optional()
|
|
210
|
-
.describe("Stop executing remaining requests if one fails (default: false)"),
|
|
211
|
-
}, async ({ requests, stopOnError = false, }) => {
|
|
212
|
-
try {
|
|
213
|
-
const restService = getRestApiService();
|
|
214
|
-
const results = [];
|
|
215
|
-
for (let i = 0; i < requests.length; i++) {
|
|
216
|
-
const req = requests[i];
|
|
217
|
-
try {
|
|
218
|
-
const result = await restService.request(req);
|
|
219
|
-
results.push({
|
|
220
|
-
index: i,
|
|
221
|
-
endpoint: req.endpoint,
|
|
222
|
-
success: !result.validation.isError,
|
|
223
|
-
result,
|
|
224
|
-
});
|
|
225
|
-
if (stopOnError && result.validation.isError) {
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
catch (error) {
|
|
230
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
231
|
-
results.push({
|
|
232
|
-
index: i,
|
|
233
|
-
endpoint: req.endpoint,
|
|
234
|
-
success: false,
|
|
235
|
-
error: errorMessage,
|
|
236
|
-
});
|
|
237
|
-
if (stopOnError) {
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return createSuccessResponse({
|
|
243
|
-
totalRequests: requests.length,
|
|
244
|
-
executedRequests: results.length,
|
|
245
|
-
successfulRequests: results.filter((r) => r.success).length,
|
|
246
|
-
results,
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
catch (error) {
|
|
250
|
-
return createErrorResponse(error, "rest-batch-request");
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
// Tool: rest-list-endpoints
|
|
254
|
-
server.tool("rest-list-endpoints", "List all available REST API endpoints with their supported HTTP methods. Use this to discover what entities/resources are available in the API. Requires REST_OPENAPI_URL configuration pointing to your API's OpenAPI/Swagger spec.", {
|
|
255
|
-
filter: z
|
|
256
|
-
.string()
|
|
257
|
-
.optional()
|
|
258
|
-
.describe("Optional filter to match endpoint paths (case-insensitive contains match). Example: 'exam' returns all exam-related endpoints."),
|
|
259
|
-
}, async ({ filter }) => {
|
|
260
|
-
try {
|
|
261
|
-
const restService = getRestApiService();
|
|
262
|
-
const result = await restService.listEndpointsAsync(filter);
|
|
263
|
-
return createSuccessResponse(result);
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
return createErrorResponse(error, "rest-list-endpoints");
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
// Tool: rest-get-schema
|
|
270
|
-
server.tool("rest-get-schema", "Get the schema/field definitions for a specific entity. Returns field names, types, whether they're required, and any validation rules. Use this before creating or updating records to understand the data structure. Requires REST_OPENAPI_URL configuration pointing to your API's OpenAPI/Swagger spec.", {
|
|
271
|
-
entity: z
|
|
272
|
-
.string()
|
|
273
|
-
.describe("Entity name (singular or plural). Examples: 'sic_exam', 'sic_exams', 'contact', 'contacts'"),
|
|
274
|
-
}, async ({ entity }) => {
|
|
275
|
-
try {
|
|
276
|
-
const restService = getRestApiService();
|
|
277
|
-
if (!restService.hasOpenApiConfig()) {
|
|
278
|
-
return createErrorResponse(new Error("No schema configuration available. Configure REST_OPENAPI_URL pointing to your API's OpenAPI/Swagger spec."), "rest-get-schema");
|
|
279
|
-
}
|
|
280
|
-
const schema = await restService.getSchemaAsync(entity);
|
|
281
|
-
if (!schema) {
|
|
282
|
-
return createErrorResponse(new Error(`Entity '${entity}' not found. Use rest-list-endpoints to see available entities.`), "rest-get-schema");
|
|
283
|
-
}
|
|
284
|
-
return createSuccessResponse(schema);
|
|
285
|
-
}
|
|
286
|
-
catch (error) {
|
|
287
|
-
return createErrorResponse(error, "rest-get-schema");
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
// ============================================================
|
|
291
|
-
// PROMPTS
|
|
292
|
-
// ============================================================
|
|
293
|
-
// Prompt: rest-api-guide
|
|
294
|
-
server.prompt("rest-api-guide", "Comprehensive guide for using the REST API testing tools", {}, async () => {
|
|
295
|
-
const markdown = `# REST API Testing Guide
|
|
296
|
-
|
|
297
|
-
## Overview
|
|
298
|
-
|
|
299
|
-
This MCP server enables testing REST API endpoints with comprehensive authentication support, including automatic JWT token generation via OAuth2 client credentials flow.
|
|
300
|
-
|
|
301
|
-
## Available Tools
|
|
302
|
-
|
|
303
|
-
### 1. rest-request
|
|
304
|
-
Execute a single HTTP request to any REST endpoint.
|
|
305
|
-
|
|
306
|
-
**Parameters:**
|
|
307
|
-
- \`method\`: HTTP method (GET, POST, PUT, DELETE, PATCH)
|
|
308
|
-
- \`endpoint\`: API path (e.g., "/users", "/api/v1/orders")
|
|
309
|
-
- \`body\`: Request body for POST/PUT/PATCH (optional)
|
|
310
|
-
- \`headers\`: Additional headers (optional)
|
|
311
|
-
- \`host\`: Override base URL (optional)
|
|
312
|
-
|
|
313
|
-
**Example:**
|
|
314
|
-
\`\`\`json
|
|
315
|
-
{
|
|
316
|
-
"method": "POST",
|
|
317
|
-
"endpoint": "/api/users",
|
|
318
|
-
"body": { "name": "John", "email": "john@example.com" }
|
|
319
|
-
}
|
|
320
|
-
\`\`\`
|
|
321
|
-
|
|
322
|
-
### 2. rest-config
|
|
323
|
-
Get current service configuration summary.
|
|
324
|
-
|
|
325
|
-
### 3. rest-refresh-token
|
|
326
|
-
Force refresh OAuth2 token (clears cache).
|
|
327
|
-
|
|
328
|
-
### 4. rest-batch-request
|
|
329
|
-
Execute multiple requests sequentially.
|
|
330
|
-
|
|
331
|
-
## Authentication Methods
|
|
332
|
-
|
|
333
|
-
### OAuth2 Client Credentials (Recommended for APIs)
|
|
334
|
-
Automatically acquires and caches JWT tokens. Tokens are refreshed when expired.
|
|
335
|
-
|
|
336
|
-
Required environment variables:
|
|
337
|
-
- \`OAUTH2_TOKEN_URL\`: Token endpoint URL
|
|
338
|
-
- \`OAUTH2_CLIENT_ID\`: Client ID
|
|
339
|
-
- \`OAUTH2_CLIENT_SECRET\`: Client secret
|
|
340
|
-
- \`OAUTH2_SCOPE\`: OAuth2 scope
|
|
341
|
-
|
|
342
|
-
### Static Bearer Token
|
|
343
|
-
For pre-acquired tokens:
|
|
344
|
-
- \`AUTH_BEARER\`: The bearer token value
|
|
345
|
-
|
|
346
|
-
### Basic Authentication
|
|
347
|
-
- \`AUTH_BASIC_USERNAME\`: Username
|
|
348
|
-
- \`AUTH_BASIC_PASSWORD\`: Password
|
|
349
|
-
|
|
350
|
-
### API Key
|
|
351
|
-
- \`AUTH_APIKEY_HEADER_NAME\`: Header name
|
|
352
|
-
- \`AUTH_APIKEY_VALUE\`: API key value
|
|
353
|
-
|
|
354
|
-
## Configuration
|
|
355
|
-
|
|
356
|
-
### Required
|
|
357
|
-
- \`REST_BASE_URL\`: Base URL for all requests
|
|
358
|
-
|
|
359
|
-
### Optional
|
|
360
|
-
- \`REST_RESPONSE_SIZE_LIMIT\`: Max response size in bytes (default: 10000)
|
|
361
|
-
- \`REST_ENABLE_SSL_VERIFY\`: SSL verification (default: true)
|
|
362
|
-
- \`REST_TIMEOUT\`: Request timeout in ms (default: 30000)
|
|
363
|
-
- \`HEADER_*\`: Custom headers (e.g., HEADER_Accept=application/json)
|
|
364
|
-
|
|
365
|
-
## Best Practices
|
|
366
|
-
|
|
367
|
-
1. **Use OAuth2 for production APIs** - Automatic token management
|
|
368
|
-
2. **Set appropriate response limits** - Prevent memory issues
|
|
369
|
-
3. **Use custom headers wisely** - Don't put secrets in headers
|
|
370
|
-
4. **Enable SSL verification** - Only disable for development
|
|
371
|
-
`;
|
|
372
|
-
return {
|
|
373
|
-
messages: [
|
|
374
|
-
{
|
|
375
|
-
role: "user",
|
|
376
|
-
content: { type: "text", text: markdown },
|
|
377
|
-
},
|
|
378
|
-
],
|
|
379
|
-
};
|
|
380
|
-
});
|
|
381
|
-
// Prompt: rest-api-troubleshoot
|
|
382
|
-
server.prompt("rest-api-troubleshoot", "Troubleshooting guide for common REST API testing issues", {}, async () => {
|
|
383
|
-
const markdown = `# REST API Troubleshooting Guide
|
|
384
|
-
|
|
385
|
-
## Common Issues and Solutions
|
|
386
|
-
|
|
387
|
-
### 1. Authentication Failures
|
|
388
|
-
|
|
389
|
-
**Symptom:** 401 Unauthorized or 403 Forbidden responses
|
|
390
|
-
|
|
391
|
-
**Solutions:**
|
|
392
|
-
- For OAuth2: Check token URL, client ID, client secret, and scope
|
|
393
|
-
- Use \`rest-refresh-token\` to force a new token
|
|
394
|
-
- Verify scope matches API requirements
|
|
395
|
-
- Check if credentials have expired
|
|
396
|
-
|
|
397
|
-
### 2. Connection Issues
|
|
398
|
-
|
|
399
|
-
**Symptom:** ECONNREFUSED, ETIMEDOUT, or network errors
|
|
400
|
-
|
|
401
|
-
**Solutions:**
|
|
402
|
-
- Verify REST_BASE_URL is correct
|
|
403
|
-
- Check if API is accessible from your network
|
|
404
|
-
- For self-signed certs, set REST_ENABLE_SSL_VERIFY=false (dev only)
|
|
405
|
-
- Increase REST_TIMEOUT for slow APIs
|
|
406
|
-
|
|
407
|
-
### 3. Response Truncation
|
|
408
|
-
|
|
409
|
-
**Symptom:** Response body appears cut off
|
|
410
|
-
|
|
411
|
-
**Solution:** Increase REST_RESPONSE_SIZE_LIMIT environment variable
|
|
412
|
-
|
|
413
|
-
### 4. Token Expiration
|
|
414
|
-
|
|
415
|
-
**Symptom:** Requests work initially then fail with 401
|
|
416
|
-
|
|
417
|
-
**Solution:**
|
|
418
|
-
- OAuth2 tokens are auto-refreshed, but you can force with rest-refresh-token
|
|
419
|
-
- For static bearer tokens, manually update AUTH_BEARER
|
|
420
|
-
|
|
421
|
-
### 5. CORS Issues
|
|
422
|
-
|
|
423
|
-
**Note:** MCP servers run server-side, so CORS doesn't apply.
|
|
424
|
-
If you see CORS-related errors, the issue is elsewhere.
|
|
425
|
-
|
|
426
|
-
## Debugging Steps
|
|
427
|
-
|
|
428
|
-
1. Use \`rest-config\` to verify current configuration
|
|
429
|
-
2. Try a simple GET request first
|
|
430
|
-
3. Check response timing for network issues
|
|
431
|
-
4. Examine response headers for error details
|
|
432
|
-
5. Use \`rest-refresh-token\` if auth seems stale
|
|
433
|
-
|
|
434
|
-
## Environment Variable Reference
|
|
435
|
-
|
|
436
|
-
\`\`\`bash
|
|
437
|
-
# Required
|
|
438
|
-
REST_BASE_URL=https://api.example.com
|
|
439
|
-
|
|
440
|
-
# OAuth2 (recommended)
|
|
441
|
-
OAUTH2_TOKEN_URL=https://login.example.com/oauth2/token
|
|
442
|
-
OAUTH2_CLIENT_ID=your-client-id
|
|
443
|
-
OAUTH2_CLIENT_SECRET=your-secret
|
|
444
|
-
OAUTH2_SCOPE=api://your-app/.default
|
|
445
|
-
|
|
446
|
-
# Alternative: Static bearer
|
|
447
|
-
AUTH_BEARER=your-token
|
|
448
|
-
|
|
449
|
-
# Alternative: Basic auth
|
|
450
|
-
AUTH_BASIC_USERNAME=user
|
|
451
|
-
AUTH_BASIC_PASSWORD=pass
|
|
452
|
-
|
|
453
|
-
# Alternative: API key
|
|
454
|
-
AUTH_APIKEY_HEADER_NAME=X-Api-Key
|
|
455
|
-
AUTH_APIKEY_VALUE=your-key
|
|
456
|
-
|
|
457
|
-
# Optional settings
|
|
458
|
-
REST_RESPONSE_SIZE_LIMIT=50000
|
|
459
|
-
REST_ENABLE_SSL_VERIFY=true
|
|
460
|
-
REST_TIMEOUT=60000
|
|
461
|
-
|
|
462
|
-
# Custom headers
|
|
463
|
-
HEADER_Accept=application/json
|
|
464
|
-
HEADER_X-Custom=value
|
|
465
|
-
\`\`\`
|
|
466
|
-
`;
|
|
467
|
-
return {
|
|
468
|
-
messages: [
|
|
469
|
-
{
|
|
470
|
-
role: "user",
|
|
471
|
-
content: { type: "text", text: markdown },
|
|
472
|
-
},
|
|
473
|
-
],
|
|
474
|
-
};
|
|
475
|
-
});
|
|
476
|
-
console.error(`REST API tools registered: ${TOOL_COUNT} tools, ${PROMPT_COUNT} prompts`);
|
|
113
|
+
return {
|
|
114
|
+
get restApi() { return getService(); },
|
|
115
|
+
};
|
|
477
116
|
}
|
|
478
117
|
/**
|
|
479
|
-
*
|
|
118
|
+
* Register REST API tools and prompts to an MCP server.
|
|
480
119
|
*/
|
|
481
|
-
export
|
|
120
|
+
export function registerRestApiTools(server) {
|
|
121
|
+
const ctx = createServiceContext();
|
|
122
|
+
registerAllTools(server, ctx);
|
|
123
|
+
registerAllPrompts(server);
|
|
124
|
+
}
|
|
125
|
+
// Backward-compatible exports
|
|
126
|
+
export { RestApiService } from './services/rest-api-service.js';
|
|
482
127
|
/**
|
|
483
128
|
* Standalone CLI server (when run directly)
|
|
484
129
|
*/
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REST API types and configuration interfaces
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Endpoint definition for API discovery
|
|
6
|
+
*/
|
|
7
|
+
export interface EndpointDefinition {
|
|
8
|
+
/** Endpoint path (e.g., "/users", "/sic_exams") */
|
|
9
|
+
path: string;
|
|
10
|
+
/** Supported HTTP methods */
|
|
11
|
+
methods: ("GET" | "POST" | "PUT" | "DELETE" | "PATCH")[];
|
|
12
|
+
/** Entity name (singular) if applicable */
|
|
13
|
+
entityName?: string;
|
|
14
|
+
/** Human-readable description */
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Field definition for entity schema
|
|
19
|
+
*/
|
|
20
|
+
export interface FieldDefinition {
|
|
21
|
+
/** Field name */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Data type (e.g., "string", "Guid", "int", "datetime", "decimal") */
|
|
24
|
+
type: string;
|
|
25
|
+
/** Whether the field is required for creation */
|
|
26
|
+
required: boolean;
|
|
27
|
+
/** Whether the field can be null */
|
|
28
|
+
nullable: boolean;
|
|
29
|
+
/** Maximum length for string fields */
|
|
30
|
+
maxLength?: number;
|
|
31
|
+
/** Human-readable description */
|
|
32
|
+
description?: string;
|
|
33
|
+
/** Foreign key reference */
|
|
34
|
+
foreignKey?: {
|
|
35
|
+
entity: string;
|
|
36
|
+
field: string;
|
|
37
|
+
};
|
|
38
|
+
/** Enum/option set values */
|
|
39
|
+
enumValues?: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Entity schema definition
|
|
43
|
+
*/
|
|
44
|
+
export interface EntitySchema {
|
|
45
|
+
/** Entity name (singular) */
|
|
46
|
+
entityName: string;
|
|
47
|
+
/** Plural name for the endpoint */
|
|
48
|
+
pluralName: string;
|
|
49
|
+
/** Endpoint path */
|
|
50
|
+
endpoint: string;
|
|
51
|
+
/** Primary key field name */
|
|
52
|
+
primaryKey: string;
|
|
53
|
+
/** Field definitions */
|
|
54
|
+
fields: FieldDefinition[];
|
|
55
|
+
/** Example object for creating/updating */
|
|
56
|
+
example?: Record<string, any>;
|
|
57
|
+
}
|
|
58
|
+
export interface RestApiConfig {
|
|
59
|
+
/** Base URL for all requests (e.g., "https://api.example.com/v1") */
|
|
60
|
+
baseUrl: string;
|
|
61
|
+
/** Response size limit in bytes (default: 10000) */
|
|
62
|
+
responseSizeLimit?: number;
|
|
63
|
+
/** Enable SSL certificate verification (default: true) */
|
|
64
|
+
enableSslVerify?: boolean;
|
|
65
|
+
/** Static bearer token (mutually exclusive with oauth2) */
|
|
66
|
+
bearerToken?: string;
|
|
67
|
+
/** Basic auth credentials */
|
|
68
|
+
basicAuth?: {
|
|
69
|
+
username: string;
|
|
70
|
+
password: string;
|
|
71
|
+
};
|
|
72
|
+
/** API key authentication */
|
|
73
|
+
apiKey?: {
|
|
74
|
+
headerName: string;
|
|
75
|
+
value: string;
|
|
76
|
+
};
|
|
77
|
+
/** OAuth2 client credentials configuration */
|
|
78
|
+
oauth2?: {
|
|
79
|
+
/** Token endpoint URL (e.g., "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token") */
|
|
80
|
+
tokenUrl: string;
|
|
81
|
+
/** OAuth2 Client ID */
|
|
82
|
+
clientId: string;
|
|
83
|
+
/** OAuth2 Client Secret */
|
|
84
|
+
clientSecret: string;
|
|
85
|
+
/** OAuth2 Scope (e.g., "https://api.example.com/.default") */
|
|
86
|
+
scope: string;
|
|
87
|
+
/** Optional grant type (defaults to "client_credentials") */
|
|
88
|
+
grantType?: string;
|
|
89
|
+
/** Optional additional token request parameters */
|
|
90
|
+
additionalParams?: Record<string, string>;
|
|
91
|
+
};
|
|
92
|
+
/** Custom headers to include in all requests */
|
|
93
|
+
customHeaders?: Record<string, string>;
|
|
94
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
95
|
+
timeout?: number;
|
|
96
|
+
/** URL to fetch OpenAPI/Swagger spec for dynamic discovery */
|
|
97
|
+
openApiUrl?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface RequestOptions {
|
|
100
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
|
|
101
|
+
endpoint: string;
|
|
102
|
+
body?: any;
|
|
103
|
+
headers?: Record<string, string>;
|
|
104
|
+
/** Override base URL for this request only */
|
|
105
|
+
host?: string;
|
|
106
|
+
}
|
|
107
|
+
export interface RequestResult {
|
|
108
|
+
request: {
|
|
109
|
+
url: string;
|
|
110
|
+
method: string;
|
|
111
|
+
headers: Record<string, string>;
|
|
112
|
+
body?: any;
|
|
113
|
+
authMethod: string;
|
|
114
|
+
};
|
|
115
|
+
response: {
|
|
116
|
+
statusCode: number;
|
|
117
|
+
statusText: string;
|
|
118
|
+
timing: string;
|
|
119
|
+
headers: Record<string, any>;
|
|
120
|
+
body: any;
|
|
121
|
+
};
|
|
122
|
+
validation: {
|
|
123
|
+
isError: boolean;
|
|
124
|
+
messages: string[];
|
|
125
|
+
truncated?: {
|
|
126
|
+
originalSize: number;
|
|
127
|
+
returnedSize: number;
|
|
128
|
+
truncationPoint: number;
|
|
129
|
+
sizeLimit: number;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=api-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../src/models/api-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../src/models/api-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC"}
|