@promptlayer/mcp-server 1.0.0
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/.claude/settings.local.json +16 -0
- package/.env.example +3 -0
- package/CLAUDE.md +39 -0
- package/README.md +160 -0
- package/TESTING.md +78 -0
- package/build/client.d.ts +49 -0
- package/build/client.d.ts.map +1 -0
- package/build/client.js +80 -0
- package/build/client.js.map +1 -0
- package/build/handlers.d.ts +2 -0
- package/build/handlers.d.ts.map +1 -0
- package/build/handlers.js +51 -0
- package/build/handlers.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +45 -0
- package/build/index.js.map +1 -0
- package/build/types.d.ts +2105 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +632 -0
- package/build/types.js.map +1 -0
- package/build/utils.d.ts +24 -0
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +67 -0
- package/build/utils.js.map +1 -0
- package/package.json +41 -0
- package/scripts/diff-endpoints.ts +250 -0
- package/scripts/extract-mcp-tools.ts +118 -0
- package/scripts/fetch-openapi-endpoints.ts +150 -0
- package/scripts/show-descriptions.ts +101 -0
- package/src/client.ts +92 -0
- package/src/handlers.ts +116 -0
- package/src/index.ts +52 -0
- package/src/types.ts +728 -0
- package/src/utils.ts +65 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/utils.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PromptLayerClient } from "./client.js";
|
|
2
|
+
export declare function buildQueryParams(params?: Record<string, unknown>): string;
|
|
3
|
+
export declare function getApiKey(providedKey?: string): string;
|
|
4
|
+
export declare function handleApiError(response: Response): Promise<Error>;
|
|
5
|
+
type Args = Record<string, unknown> & {
|
|
6
|
+
api_key?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function createToolHandler(call: (client: PromptLayerClient, args: Args) => Promise<unknown>, msg: (result: unknown) => string): (args: Args) => Promise<{
|
|
9
|
+
content: {
|
|
10
|
+
type: "text";
|
|
11
|
+
text: string;
|
|
12
|
+
}[];
|
|
13
|
+
structuredContent: unknown;
|
|
14
|
+
isError?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
content: {
|
|
17
|
+
type: "text";
|
|
18
|
+
text: string;
|
|
19
|
+
}[];
|
|
20
|
+
isError: boolean;
|
|
21
|
+
structuredContent?: undefined;
|
|
22
|
+
}>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAQzE;AAED,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAiBvE;AAED,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,IAElB,MAAM,IAAI;;;;;;;;;;;;;;GAgBzB"}
|
package/build/utils.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PromptLayerClient } from "./client.js";
|
|
2
|
+
export function buildQueryParams(params) {
|
|
3
|
+
if (!params)
|
|
4
|
+
return "";
|
|
5
|
+
const sp = new URLSearchParams();
|
|
6
|
+
for (const [key, value] of Object.entries(params)) {
|
|
7
|
+
if (value !== undefined && value !== null)
|
|
8
|
+
sp.set(key, String(value));
|
|
9
|
+
}
|
|
10
|
+
const q = sp.toString();
|
|
11
|
+
return q ? `?${q}` : "";
|
|
12
|
+
}
|
|
13
|
+
export function getApiKey(providedKey) {
|
|
14
|
+
const apiKey = providedKey ?? process.env.PROMPTLAYER_API_KEY;
|
|
15
|
+
if (!apiKey) {
|
|
16
|
+
throw new Error("No API key provided. Set PROMPTLAYER_API_KEY environment variable or pass api_key parameter.");
|
|
17
|
+
}
|
|
18
|
+
if (!apiKey.startsWith("pl_")) {
|
|
19
|
+
throw new Error("Invalid API key format. PromptLayer API keys must start with 'pl_'");
|
|
20
|
+
}
|
|
21
|
+
return apiKey;
|
|
22
|
+
}
|
|
23
|
+
export async function handleApiError(response) {
|
|
24
|
+
let msg;
|
|
25
|
+
try {
|
|
26
|
+
const body = await response.text();
|
|
27
|
+
const parsed = JSON.parse(body);
|
|
28
|
+
msg = parsed.message || parsed.error || parsed.detail || body;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
msg = response.statusText || "Unknown error";
|
|
32
|
+
}
|
|
33
|
+
const status = response.status;
|
|
34
|
+
if (status === 401)
|
|
35
|
+
return new Error("Invalid PromptLayer API key");
|
|
36
|
+
if (status === 403)
|
|
37
|
+
return new Error("Permission denied. Check your API key permissions.");
|
|
38
|
+
if (status === 404)
|
|
39
|
+
return new Error(`Resource not found: ${msg}`);
|
|
40
|
+
if (status === 422)
|
|
41
|
+
return new Error(`Validation error: ${msg}`);
|
|
42
|
+
if (status === 429)
|
|
43
|
+
return new Error("Rate limit exceeded. Please try again later.");
|
|
44
|
+
if (status >= 500)
|
|
45
|
+
return new Error(`PromptLayer service error: ${msg}`);
|
|
46
|
+
return new Error(`PromptLayer API error (${status}): ${msg}`);
|
|
47
|
+
}
|
|
48
|
+
export function createToolHandler(call, msg) {
|
|
49
|
+
return async (args) => {
|
|
50
|
+
try {
|
|
51
|
+
const client = new PromptLayerClient(getApiKey(args.api_key));
|
|
52
|
+
const result = await call(client, args);
|
|
53
|
+
const json = JSON.stringify(result, null, 2);
|
|
54
|
+
return {
|
|
55
|
+
content: [{ type: "text", text: `${msg(result)}\n\n${json}` }],
|
|
56
|
+
structuredContent: result,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return {
|
|
61
|
+
content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : error}` }],
|
|
62
|
+
isError: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@promptlayer/mcp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Model Context Protocol server for PromptLayer",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "build/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"promptlayer-mcp": "build/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc && chmod +x build/index.js",
|
|
12
|
+
"prepare": "npm run build",
|
|
13
|
+
"watch": "tsc --watch",
|
|
14
|
+
"dev": "tsx src/index.ts",
|
|
15
|
+
"sync:fetch": "tsx scripts/fetch-openapi-endpoints.ts",
|
|
16
|
+
"sync:extract": "tsx scripts/extract-mcp-tools.ts",
|
|
17
|
+
"sync:diff": "tsx scripts/diff-endpoints.ts",
|
|
18
|
+
"sync:check": "npm run sync:fetch && npm run sync:extract && npm run sync:diff"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"mcp",
|
|
22
|
+
"model-context-protocol",
|
|
23
|
+
"promptlayer",
|
|
24
|
+
"prompt-management"
|
|
25
|
+
],
|
|
26
|
+
"author": "PromptLayer",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
30
|
+
"zod": "^3.25.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/node": "^22.15",
|
|
34
|
+
"tsx": "^4.20.0",
|
|
35
|
+
"typescript": "^5.7.0",
|
|
36
|
+
"zod-to-json-schema": "^3.25.1"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares openapi-endpoints.json (source of truth) against mcp-tools.json
|
|
3
|
+
* (what our MCP implements) and reports discrepancies.
|
|
4
|
+
*
|
|
5
|
+
* Usage: npx tsx scripts/diff-endpoints.ts
|
|
6
|
+
*
|
|
7
|
+
* Exit code 0 = in sync (or all issues are known exceptions), 1 = new issues found.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { readFileSync } from "fs";
|
|
11
|
+
|
|
12
|
+
const OPENAPI_PATH = new URL("./openapi-endpoints.json", import.meta.url).pathname;
|
|
13
|
+
const MCP_PATH = new URL("./mcp-tools.json", import.meta.url).pathname;
|
|
14
|
+
|
|
15
|
+
// ─── Known exceptions ────────────────────────────────────────────────────────
|
|
16
|
+
// Each string is matched exactly against an issue line. When ALL remaining
|
|
17
|
+
// issues are in this list, the script exits 0 (pass). Add a comment for each
|
|
18
|
+
// explaining WHY it's expected so a future reader/agent understands.
|
|
19
|
+
const KNOWN_EXCEPTIONS: string[] = [
|
|
20
|
+
// update-report-score-card is documented in the PromptLayer reference text
|
|
21
|
+
// (https://docs.promptlayer.com/reference/update-report-score-card) but the
|
|
22
|
+
// endpoint is not present in the OpenAPI spec (openapi.json). We implement
|
|
23
|
+
// it because users need it; it will resolve when PromptLayer adds it to the spec.
|
|
24
|
+
"EXTRA IN MCP (not in OpenAPI): PATCH /reports/{report_id}/score-card (tool: update-report-score-card)",
|
|
25
|
+
|
|
26
|
+
// These endpoints exist in the OpenAPI spec but were intentionally removed from the MCP server.
|
|
27
|
+
// track-prompt, track-score, track-metadata, and track-group are redundant with log-request
|
|
28
|
+
// which accepts all tracking fields inline. add-report-column is removed as well.
|
|
29
|
+
"MISSING IN MCP: POST /rest/track-prompt (Track Prompt)",
|
|
30
|
+
"MISSING IN MCP: POST /rest/track-score (Track Score)",
|
|
31
|
+
"MISSING IN MCP: POST /rest/track-metadata (Track Metadata)",
|
|
32
|
+
"MISSING IN MCP: POST /rest/track-group (Track Group)",
|
|
33
|
+
"MISSING IN MCP: POST /report-columns (Add Column to Evaluation Pipeline)",
|
|
34
|
+
|
|
35
|
+
// get-workflow exists in the backend (public_api/workflows/get_workflows_id_or_name.py)
|
|
36
|
+
// but is not in the OpenAPI spec.
|
|
37
|
+
"EXTRA IN MCP (not in OpenAPI): GET /workflows/{workflow_id_or_name} (tool: get-workflow)",
|
|
38
|
+
|
|
39
|
+
// Folder management endpoints exist in the backend (public_api/) but are not yet in the OpenAPI spec.
|
|
40
|
+
// edit-folder was added in PR #244.
|
|
41
|
+
"EXTRA IN MCP (not in OpenAPI): PATCH /api/public/v2/folders/{folder_id} (tool: edit-folder)",
|
|
42
|
+
"EXTRA IN MCP (not in OpenAPI): GET /api/public/v2/folders/entities (tool: get-folder-entities)",
|
|
43
|
+
"EXTRA IN MCP (not in OpenAPI): POST /api/public/v2/folders/entities (tool: move-folder-entities)",
|
|
44
|
+
"EXTRA IN MCP (not in OpenAPI): DELETE /api/public/v2/folders/entities (tool: delete-folder-entities)",
|
|
45
|
+
"EXTRA IN MCP (not in OpenAPI): GET /api/public/v2/folders/resolve-id (tool: resolve-folder-id)",
|
|
46
|
+
|
|
47
|
+
// callback_url is documented in the run-workflow reference text
|
|
48
|
+
// (https://docs.promptlayer.com/reference/run-workflow) under Request Body
|
|
49
|
+
// but is not yet in the OpenAPI spec. We include it for async webhook support.
|
|
50
|
+
'EXTRA FIELD: POST /workflows/{workflow_name}/run > "callback_url" not in OpenAPI [tool: run-workflow]',
|
|
51
|
+
|
|
52
|
+
// The OpenAPI spec defines input/output as oneOf (ChatPrompt | CompletionPrompt).
|
|
53
|
+
// We type them as plain object (z.record) because the MCP tool passes them through
|
|
54
|
+
// as-is to the API — the server validates the discriminated union, not us.
|
|
55
|
+
'TYPE MISMATCH: POST /log-request > "input": MCP=object, OpenAPI=oneOf [tool: log-request]',
|
|
56
|
+
'TYPE MISMATCH: POST /log-request > "output": MCP=object, OpenAPI=oneOf [tool: log-request]',
|
|
57
|
+
|
|
58
|
+
// workspace_id is accepted by the backend but not yet in the OpenAPI spec for these endpoints.
|
|
59
|
+
'EXTRA FIELD: GET /prompt-templates > "workspace_id" not in OpenAPI [tool: list-prompt-templates]',
|
|
60
|
+
'EXTRA FIELD: POST /api/public/v2/folders > "workspace_id" not in OpenAPI [tool: create-folder]',
|
|
61
|
+
|
|
62
|
+
// snippet_overrides is accepted by the backend publish endpoint but not in OpenAPI spec.
|
|
63
|
+
'EXTRA FIELD: POST /rest/prompt-templates > "snippet_overrides" not in OpenAPI [tool: publish-prompt-template]',
|
|
64
|
+
|
|
65
|
+
// Backend accepts prompt_version_id as alternative to prompt_version_number for label ops,
|
|
66
|
+
// and we make prompt_version_number optional to support both. Not yet in OpenAPI spec.
|
|
67
|
+
'EXTRA FIELD: POST /prompts/{prompt_id}/label > "prompt_version_id" not in OpenAPI [tool: create-prompt-label]',
|
|
68
|
+
'EXTRA FIELD: PATCH /prompt-labels/{prompt_label_id} > "prompt_version_id" not in OpenAPI [tool: move-prompt-label]',
|
|
69
|
+
'REQUIRED MISMATCH: POST /prompts/{prompt_id}/label > "prompt_version_number": MCP=false, OpenAPI=true [tool: create-prompt-label]',
|
|
70
|
+
'REQUIRED MISMATCH: PATCH /prompt-labels/{prompt_label_id} > "prompt_version_number": MCP=false, OpenAPI=true [tool: move-prompt-label]',
|
|
71
|
+
|
|
72
|
+
// score_name is accepted by the backend log-request endpoint but not in OpenAPI spec.
|
|
73
|
+
'EXTRA FIELD: POST /log-request > "score_name" not in OpenAPI [tool: log-request]',
|
|
74
|
+
|
|
75
|
+
// folder_id is accepted by the backend create-dataset-group endpoint but not in OpenAPI spec.
|
|
76
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-groups > "folder_id" not in OpenAPI [tool: create-dataset-group]',
|
|
77
|
+
|
|
78
|
+
// Backend auto-generates name if omitted for dataset groups; OpenAPI marks it required.
|
|
79
|
+
'REQUIRED MISMATCH: POST /api/public/v2/dataset-groups > "name": MCP=false, OpenAPI=true [tool: create-dataset-group]',
|
|
80
|
+
|
|
81
|
+
// workflow_node_id and workflow_node_name are accepted by the backend execution results
|
|
82
|
+
// endpoint but not in OpenAPI spec.
|
|
83
|
+
'EXTRA FIELD: GET /workflow-version-execution-results > "workflow_node_id" not in OpenAPI [tool: get-workflow-version-execution-results]',
|
|
84
|
+
'EXTRA FIELD: GET /workflow-version-execution-results > "workflow_node_name" not in OpenAPI [tool: get-workflow-version-execution-results]',
|
|
85
|
+
|
|
86
|
+
// The create-dataset-version-from-filter-params endpoint passes through to the backend's
|
|
87
|
+
// RequestLogFilterParams model which has many more filter fields than the OpenAPI spec lists.
|
|
88
|
+
// We include the full set from the backend for completeness. The OpenAPI spec only documents
|
|
89
|
+
// a simplified subset (dataset_group_id, variables_to_parse, start_time, end_time, plus the
|
|
90
|
+
// fields we added: prompt_id, prompt_version_id, prompt_label_id, workspace_id, tags, metadata).
|
|
91
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "id" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
92
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "limit" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
93
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "tags_and" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
94
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "tags_or" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
95
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "metadata_and" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
96
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "metadata_or" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
97
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "prompt_templates_include" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
98
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "prompt_templates_exclude" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
99
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "starred" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
100
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "status" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
101
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "sort_by" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
102
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "sort_order" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
103
|
+
'EXTRA FIELD: POST /api/public/v2/dataset-versions/from-filter-params > "order_by_random" not in OpenAPI [tool: create-dataset-version-from-filter-params]',
|
|
104
|
+
|
|
105
|
+
// The OpenAPI spec defines scores as object but backend uses a list of {name, operator, value}.
|
|
106
|
+
// Our array type matches what the backend actually accepts.
|
|
107
|
+
'TYPE MISMATCH: POST /api/public/v2/dataset-versions/from-filter-params > "scores": MCP=array, OpenAPI=object [tool: create-dataset-version-from-filter-params]',
|
|
108
|
+
];
|
|
109
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
110
|
+
|
|
111
|
+
type OpenAPIEndpoint = {
|
|
112
|
+
method: string;
|
|
113
|
+
path: string;
|
|
114
|
+
summary: string;
|
|
115
|
+
operationId: string;
|
|
116
|
+
pathParams: { name: string; type: string; required: boolean }[];
|
|
117
|
+
queryParams: { name: string; type: string; required: boolean; enum?: string[] }[];
|
|
118
|
+
bodyFields: { name: string; type: string; required: boolean; enum?: string[] }[];
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
type MCPTool = {
|
|
122
|
+
toolName: string;
|
|
123
|
+
method: string;
|
|
124
|
+
path: string;
|
|
125
|
+
description: string;
|
|
126
|
+
fields: { name: string; type: string; required: boolean; enum?: string[] }[];
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
function endpointKey(method: string, path: string): string {
|
|
130
|
+
return `${method} ${path}`;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function main() {
|
|
134
|
+
const openapi: OpenAPIEndpoint[] = JSON.parse(readFileSync(OPENAPI_PATH, "utf-8"));
|
|
135
|
+
const mcp: MCPTool[] = JSON.parse(readFileSync(MCP_PATH, "utf-8"));
|
|
136
|
+
|
|
137
|
+
const allIssues: string[] = [];
|
|
138
|
+
|
|
139
|
+
const openapiMap = new Map<string, OpenAPIEndpoint>();
|
|
140
|
+
for (const ep of openapi) openapiMap.set(endpointKey(ep.method, ep.path), ep);
|
|
141
|
+
|
|
142
|
+
const mcpMap = new Map<string, MCPTool>();
|
|
143
|
+
for (const tool of mcp) mcpMap.set(endpointKey(tool.method, tool.path), tool);
|
|
144
|
+
|
|
145
|
+
// 1. Endpoints in OpenAPI but missing from MCP
|
|
146
|
+
for (const [key, ep] of openapiMap) {
|
|
147
|
+
if (!mcpMap.has(key)) {
|
|
148
|
+
allIssues.push(`MISSING IN MCP: ${key} (${ep.summary})`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 2. Endpoints in MCP but not in OpenAPI
|
|
153
|
+
for (const [key, tool] of mcpMap) {
|
|
154
|
+
if (!openapiMap.has(key)) {
|
|
155
|
+
allIssues.push(`EXTRA IN MCP (not in OpenAPI): ${key} (tool: ${tool.toolName})`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// 3. Field-level comparison for matching endpoints
|
|
160
|
+
for (const [key, tool] of mcpMap) {
|
|
161
|
+
const ep = openapiMap.get(key);
|
|
162
|
+
if (!ep) continue;
|
|
163
|
+
|
|
164
|
+
const openapiFields = new Map<string, { type: string; required: boolean; enum?: string[] }>();
|
|
165
|
+
for (const p of ep.pathParams) openapiFields.set(p.name, p);
|
|
166
|
+
for (const p of ep.queryParams) openapiFields.set(p.name, { type: p.type, required: p.required, ...(p.enum ? { enum: p.enum } : {}) });
|
|
167
|
+
for (const f of ep.bodyFields) openapiFields.set(f.name, { type: f.type, required: f.required, ...(f.enum ? { enum: f.enum } : {}) });
|
|
168
|
+
|
|
169
|
+
const mcpFields = new Map<string, { type: string; required: boolean; enum?: string[] }>();
|
|
170
|
+
for (const f of tool.fields) mcpFields.set(f.name, f);
|
|
171
|
+
|
|
172
|
+
for (const [name, spec] of openapiFields) {
|
|
173
|
+
if (!mcpFields.has(name)) {
|
|
174
|
+
allIssues.push(`MISSING FIELD: ${key} > "${name}" (${spec.type}, ${spec.required ? "required" : "optional"}) [tool: ${tool.toolName}]`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
for (const [name] of mcpFields) {
|
|
179
|
+
if (!openapiFields.has(name)) {
|
|
180
|
+
allIssues.push(`EXTRA FIELD: ${key} > "${name}" not in OpenAPI [tool: ${tool.toolName}]`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
for (const [name, mcpField] of mcpFields) {
|
|
185
|
+
const oaField = openapiFields.get(name);
|
|
186
|
+
if (!oaField) continue;
|
|
187
|
+
|
|
188
|
+
if (mcpField.required !== oaField.required) {
|
|
189
|
+
allIssues.push(`REQUIRED MISMATCH: ${key} > "${name}": MCP=${mcpField.required}, OpenAPI=${oaField.required} [tool: ${tool.toolName}]`);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const mcpType = mcpField.type.replace("number", "integer");
|
|
193
|
+
const oaType = oaField.type.replace("number", "integer");
|
|
194
|
+
if (mcpType !== oaType && oaType !== "unknown") {
|
|
195
|
+
allIssues.push(`TYPE MISMATCH: ${key} > "${name}": MCP=${mcpField.type}, OpenAPI=${oaField.type} [tool: ${tool.toolName}]`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Partition into known vs new
|
|
201
|
+
const knownSet = new Set(KNOWN_EXCEPTIONS);
|
|
202
|
+
const knownIssues = allIssues.filter((i) => knownSet.has(i));
|
|
203
|
+
const newIssues = allIssues.filter((i) => !knownSet.has(i));
|
|
204
|
+
|
|
205
|
+
// Report
|
|
206
|
+
if (allIssues.length === 0) {
|
|
207
|
+
console.log("PASS: All MCP tools are in sync with the OpenAPI spec. No issues.");
|
|
208
|
+
process.exit(0);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (knownIssues.length > 0) {
|
|
212
|
+
console.log(`Known exceptions (${knownIssues.length}):`);
|
|
213
|
+
knownIssues.forEach((i) => console.log(` [OK] ${i}`));
|
|
214
|
+
console.log();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (newIssues.length === 0) {
|
|
218
|
+
console.log(`PASS: ${knownIssues.length} known exception(s), 0 new issues.`);
|
|
219
|
+
process.exit(0);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
console.log(`FAIL: ${newIssues.length} new issue(s) found:\n`);
|
|
223
|
+
|
|
224
|
+
const buckets: Record<string, string[]> = {
|
|
225
|
+
"Missing Endpoints": [],
|
|
226
|
+
"Extra Endpoints": [],
|
|
227
|
+
"Missing Fields": [],
|
|
228
|
+
"Extra Fields": [],
|
|
229
|
+
"Type/Required Mismatches": [],
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
for (const i of newIssues) {
|
|
233
|
+
if (i.startsWith("MISSING IN MCP")) buckets["Missing Endpoints"].push(i);
|
|
234
|
+
else if (i.startsWith("EXTRA IN MCP")) buckets["Extra Endpoints"].push(i);
|
|
235
|
+
else if (i.startsWith("MISSING FIELD")) buckets["Missing Fields"].push(i);
|
|
236
|
+
else if (i.startsWith("EXTRA FIELD")) buckets["Extra Fields"].push(i);
|
|
237
|
+
else buckets["Type/Required Mismatches"].push(i);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
for (const [label, items] of Object.entries(buckets)) {
|
|
241
|
+
if (items.length === 0) continue;
|
|
242
|
+
console.log(`--- ${label} ---`);
|
|
243
|
+
items.forEach((i) => console.log(` ${i}`));
|
|
244
|
+
console.log();
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
process.exit(1);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
main();
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the MCP tool definitions from our types.ts and outputs a canonical
|
|
3
|
+
* JSON file matching the shape of openapi-endpoints.json for comparison.
|
|
4
|
+
*
|
|
5
|
+
* Usage: npx tsx scripts/extract-mcp-tools.ts
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { TOOL_DEFINITIONS } from "../src/types.js";
|
|
9
|
+
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
10
|
+
|
|
11
|
+
const OUTPUT_PATH = new URL("./mcp-tools.json", import.meta.url).pathname;
|
|
12
|
+
|
|
13
|
+
// Map from MCP tool name to the REST endpoint it wraps.
|
|
14
|
+
// This is the manual mapping — it's the one thing we maintain by hand.
|
|
15
|
+
// The diff script checks everything else automatically.
|
|
16
|
+
// Fields renamed in MCP vs OpenAPI (MCP name → OpenAPI name)
|
|
17
|
+
const FIELD_ALIASES: Record<string, Record<string, string>> = {
|
|
18
|
+
"get-prompt-template": { "prompt_name": "identifier" },
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const TOOL_TO_ENDPOINT: Record<string, { method: string; path: string }> = {
|
|
22
|
+
"get-prompt-template": { method: "POST", path: "/prompt-templates/{identifier}" },
|
|
23
|
+
"get-prompt-template-raw": { method: "GET", path: "/prompt-templates/{identifier}" },
|
|
24
|
+
"list-prompt-templates": { method: "GET", path: "/prompt-templates" },
|
|
25
|
+
"publish-prompt-template": { method: "POST", path: "/rest/prompt-templates" },
|
|
26
|
+
"list-prompt-template-labels":{ method: "GET", path: "/prompt-templates/{identifier}/labels" },
|
|
27
|
+
"create-prompt-label": { method: "POST", path: "/prompts/{prompt_id}/label" },
|
|
28
|
+
"move-prompt-label": { method: "PATCH", path: "/prompt-labels/{prompt_label_id}" },
|
|
29
|
+
"delete-prompt-label": { method: "DELETE", path: "/prompt-labels/{prompt_label_id}" },
|
|
30
|
+
"get-snippet-usage": { method: "GET", path: "/prompt-templates/{identifier}/snippet-usage" },
|
|
31
|
+
"log-request": { method: "POST", path: "/log-request" },
|
|
32
|
+
"create-spans-bulk": { method: "POST", path: "/spans-bulk" },
|
|
33
|
+
"list-datasets": { method: "GET", path: "/api/public/v2/datasets" },
|
|
34
|
+
"create-dataset-group": { method: "POST", path: "/api/public/v2/dataset-groups" },
|
|
35
|
+
"create-dataset-version-from-file": { method: "POST", path: "/api/public/v2/dataset-versions/from-file" },
|
|
36
|
+
"create-dataset-version-from-filter-params": { method: "POST", path: "/api/public/v2/dataset-versions/from-filter-params" },
|
|
37
|
+
"list-evaluations": { method: "GET", path: "/api/public/v2/evaluations" },
|
|
38
|
+
"create-report": { method: "POST", path: "/reports" },
|
|
39
|
+
"run-report": { method: "POST", path: "/reports/{report_id}/run" },
|
|
40
|
+
"get-report": { method: "GET", path: "/reports/{report_id}" },
|
|
41
|
+
"get-report-score": { method: "GET", path: "/reports/{report_id}/score" },
|
|
42
|
+
"update-report-score-card": { method: "PATCH", path: "/reports/{report_id}/score-card" },
|
|
43
|
+
"delete-reports-by-name": { method: "DELETE", path: "/reports/name/{report_name}" },
|
|
44
|
+
"list-workflows": { method: "GET", path: "/workflows" },
|
|
45
|
+
"create-workflow": { method: "POST", path: "/rest/workflows" },
|
|
46
|
+
"patch-workflow": { method: "PATCH", path: "/rest/workflows/{workflow_id_or_name}" },
|
|
47
|
+
"run-workflow": { method: "POST", path: "/workflows/{workflow_name}/run" },
|
|
48
|
+
"get-workflow-version-execution-results": { method: "GET", path: "/workflow-version-execution-results" },
|
|
49
|
+
"get-workflow": { method: "GET", path: "/workflows/{workflow_id_or_name}" },
|
|
50
|
+
"create-folder": { method: "POST", path: "/api/public/v2/folders" },
|
|
51
|
+
"edit-folder": { method: "PATCH", path: "/api/public/v2/folders/{folder_id}" },
|
|
52
|
+
"get-folder-entities": { method: "GET", path: "/api/public/v2/folders/entities" },
|
|
53
|
+
"move-folder-entities": { method: "POST", path: "/api/public/v2/folders/entities" },
|
|
54
|
+
"delete-folder-entities": { method: "DELETE", path: "/api/public/v2/folders/entities" },
|
|
55
|
+
"resolve-folder-id": { method: "GET", path: "/api/public/v2/folders/resolve-id" },
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type ToolEntry = {
|
|
59
|
+
toolName: string;
|
|
60
|
+
method: string;
|
|
61
|
+
path: string;
|
|
62
|
+
description: string;
|
|
63
|
+
fields: { name: string; type: string; required: boolean; enum?: string[] }[];
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
function normalizeType(schema: Record<string, unknown>): string {
|
|
67
|
+
const t = schema.type;
|
|
68
|
+
if (typeof t === "string") return t;
|
|
69
|
+
if (Array.isArray(t)) {
|
|
70
|
+
const nonNull = t.filter((x: unknown) => x !== "null");
|
|
71
|
+
return nonNull.length === 1 ? String(nonNull[0]) : `union(${nonNull.join(",")})`;
|
|
72
|
+
}
|
|
73
|
+
if (schema.anyOf) return "union";
|
|
74
|
+
if (schema.oneOf) return "oneOf";
|
|
75
|
+
return "unknown";
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async function main() {
|
|
79
|
+
const tools: ToolEntry[] = [];
|
|
80
|
+
|
|
81
|
+
for (const [name, def] of Object.entries(TOOL_DEFINITIONS)) {
|
|
82
|
+
const mapping = TOOL_TO_ENDPOINT[name];
|
|
83
|
+
if (!mapping) {
|
|
84
|
+
console.error(`WARNING: No endpoint mapping for tool "${name}"`);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const jsonSchema = zodToJsonSchema(def.inputSchema, { target: "openApi3" }) as Record<string, unknown>;
|
|
89
|
+
const properties = (jsonSchema.properties || {}) as Record<string, Record<string, unknown>>;
|
|
90
|
+
const required = new Set((jsonSchema.required || []) as string[]);
|
|
91
|
+
|
|
92
|
+
const aliases = FIELD_ALIASES[name] || {};
|
|
93
|
+
const fields: ToolEntry["fields"] = [];
|
|
94
|
+
for (const [fieldName, fieldSchema] of Object.entries(properties)) {
|
|
95
|
+
if (fieldName === "api_key") continue; // skip MCP-only field
|
|
96
|
+
fields.push({
|
|
97
|
+
name: aliases[fieldName] || fieldName,
|
|
98
|
+
type: normalizeType(fieldSchema),
|
|
99
|
+
required: required.has(fieldName),
|
|
100
|
+
...(fieldSchema.enum ? { enum: fieldSchema.enum as string[] } : {}),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
tools.push({
|
|
105
|
+
toolName: name,
|
|
106
|
+
method: mapping.method,
|
|
107
|
+
path: mapping.path,
|
|
108
|
+
description: def.description,
|
|
109
|
+
fields,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const fs = await import("fs");
|
|
114
|
+
fs.writeFileSync(OUTPUT_PATH, JSON.stringify(tools, null, 2) + "\n");
|
|
115
|
+
console.error(`Wrote ${tools.length} tools to ${OUTPUT_PATH}`);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
main().catch((e) => { console.error(e); process.exit(1); });
|