@promptlayer/mcp-server 1.8.0 → 1.9.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/README.md +28 -3
- package/build/client.d.ts +4 -0
- package/build/client.d.ts.map +1 -1
- package/build/client.js +5 -0
- package/build/client.js.map +1 -1
- package/build/handlers.d.ts.map +1 -1
- package/build/handlers.js +5 -0
- package/build/handlers.js.map +1 -1
- package/build/types.d.ts +144 -0
- package/build/types.d.ts.map +1 -1
- package/build/types.js +48 -0
- package/build/types.js.map +1 -1
- package/gcp/package-lock.json +161 -161
- package/gcp/package.json +13 -0
- package/gcp/src/index.ts +8 -0
- package/package.json +9 -1
- package/src/client.ts +6 -0
- package/src/handlers.ts +12 -0
- package/src/types.ts +54 -0
package/gcp/package.json
CHANGED
|
@@ -22,5 +22,18 @@
|
|
|
22
22
|
},
|
|
23
23
|
"engines": {
|
|
24
24
|
"node": ">=20.0.0"
|
|
25
|
+
},
|
|
26
|
+
"overrides": {
|
|
27
|
+
"hono": "^4.12.14",
|
|
28
|
+
"@hono/node-server": "^1.19.13",
|
|
29
|
+
"express-rate-limit": "^8.2.2",
|
|
30
|
+
"express": {
|
|
31
|
+
"path-to-regexp": "^0.1.13"
|
|
32
|
+
},
|
|
33
|
+
"router": {
|
|
34
|
+
"path-to-regexp": "^8.4.0"
|
|
35
|
+
},
|
|
36
|
+
"qs": "^6.14.2",
|
|
37
|
+
"ajv": "^8.18.0"
|
|
25
38
|
}
|
|
26
39
|
}
|
package/gcp/src/index.ts
CHANGED
|
@@ -90,6 +90,14 @@ const TOOL_HANDLERS: Record<string, ToolHandler> = {
|
|
|
90
90
|
"get-workflow-labels": (c, { workflow_id_or_name }) =>
|
|
91
91
|
c.getWorkflowLabels(workflow_id_or_name as string),
|
|
92
92
|
|
|
93
|
+
// Tool Registry
|
|
94
|
+
"list-tool-registries": (c) => c.listToolRegistries(),
|
|
95
|
+
"get-tool-registry": (c, { api_key: _, identifier, ...p }) =>
|
|
96
|
+
c.getToolRegistry(identifier as string, p),
|
|
97
|
+
"create-tool-registry": (c, a) => c.createToolRegistry(body(a)),
|
|
98
|
+
"create-tool-version": (c, { api_key: _, identifier, ...b }) =>
|
|
99
|
+
c.createToolVersion(identifier as string, b),
|
|
100
|
+
|
|
93
101
|
// Folders
|
|
94
102
|
"create-folder": (c, a) => c.createFolder(body(a)),
|
|
95
103
|
"edit-folder": (c, { api_key: _, folder_id, ...b }) =>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptlayer/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Model Context Protocol server for PromptLayer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -32,5 +32,13 @@
|
|
|
32
32
|
},
|
|
33
33
|
"engines": {
|
|
34
34
|
"node": ">=18.0.0"
|
|
35
|
+
},
|
|
36
|
+
"overrides": {
|
|
37
|
+
"hono": "^4.12.14",
|
|
38
|
+
"@hono/node-server": "^1.19.13",
|
|
39
|
+
"express-rate-limit": "^8.2.2",
|
|
40
|
+
"path-to-regexp": "^8.4.0",
|
|
41
|
+
"qs": "^6.14.2",
|
|
42
|
+
"ajv": "^8.18.0"
|
|
35
43
|
}
|
|
36
44
|
}
|
package/src/client.ts
CHANGED
|
@@ -99,6 +99,12 @@ export class PromptLayerClient {
|
|
|
99
99
|
runWorkflow(name: string, body: Body) { return this.post(`/workflows/${this.enc(name)}/run`, body); }
|
|
100
100
|
getWorkflowVersionExecutionResults(params: Body) { return this.get("/workflow-version-execution-results", params); }
|
|
101
101
|
|
|
102
|
+
// Tool Registry
|
|
103
|
+
listToolRegistries() { return this.get("/api/public/v2/tool-registry"); }
|
|
104
|
+
getToolRegistry(identifier: string, params?: Body) { return this.get(`/api/public/v2/tool-registry/${this.enc(identifier)}`, params); }
|
|
105
|
+
createToolRegistry(body: Body) { return this.post("/api/public/v2/tool-registry", body); }
|
|
106
|
+
createToolVersion(identifier: string, body: Body) { return this.post(`/api/public/v2/tool-registry/${this.enc(identifier)}/versions`, body); }
|
|
107
|
+
|
|
102
108
|
// Folders
|
|
103
109
|
createFolder(body: Body) { return this.post("/api/public/v2/folders", body); }
|
|
104
110
|
editFolder(folderId: number, body: Body) { return this.patch(`/api/public/v2/folders/${folderId}`, body); }
|
package/src/handlers.ts
CHANGED
|
@@ -139,6 +139,18 @@ export function registerAllTools(server: any) {
|
|
|
139
139
|
(c, a) => c.getWorkflowLabels((a as { workflow_id_or_name: string }).workflow_id_or_name),
|
|
140
140
|
(r) => { const labels = (r as { release_labels?: unknown[] }).release_labels; return `${labels?.length ?? 0} label(s) found`; });
|
|
141
141
|
|
|
142
|
+
// Tool Registry
|
|
143
|
+
reg(t["list-tool-registries"], (c) => c.listToolRegistries(),
|
|
144
|
+
(r) => { const tools = (r as { tool_registries?: unknown[] }).tool_registries; return `${tools?.length ?? 0} tool(s)`; });
|
|
145
|
+
reg(t["get-tool-registry"],
|
|
146
|
+
(c, a) => { const { api_key: _, identifier, ...p } = a as { identifier: string; api_key?: string } & Args; return c.getToolRegistry(identifier, p); },
|
|
147
|
+
(r) => { const t_ = (r as { tool_registry?: { name?: string } }).tool_registry; return `Tool "${t_?.name ?? ""}" retrieved`; });
|
|
148
|
+
reg(t["create-tool-registry"], (c, a) => c.createToolRegistry(body(a)),
|
|
149
|
+
(r) => { const t_ = (r as { tool_registry?: { name?: string; id?: number } }).tool_registry; return t_ ? `Tool "${t_.name}" created (ID: ${t_.id})` : "Tool created"; });
|
|
150
|
+
reg(t["create-tool-version"],
|
|
151
|
+
(c, a) => { const { api_key: _, identifier, ...b } = a as { identifier: string; api_key?: string } & Args; return c.createToolVersion(identifier, b); },
|
|
152
|
+
(r) => { const v = (r as { version?: { number?: number } }).version; return v ? `Version ${v.number} created` : "Version created"; });
|
|
153
|
+
|
|
142
154
|
// Folders
|
|
143
155
|
reg(t["create-folder"], (c, a) => c.createFolder(body(a)), () => "Folder created");
|
|
144
156
|
reg(t["edit-folder"],
|
package/src/types.ts
CHANGED
|
@@ -496,6 +496,34 @@ export const GetWorkflowLabelsArgsSchema = z.object({
|
|
|
496
496
|
});
|
|
497
497
|
|
|
498
498
|
|
|
499
|
+
// ── Tool Registry ────────────────────────────────────────────────────
|
|
500
|
+
|
|
501
|
+
export const ListToolRegistriesArgsSchema = z.object({
|
|
502
|
+
api_key: z.string().optional().describe("PromptLayer API key (optional, defaults to PROMPTLAYER_API_KEY env var)"),
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
export const GetToolRegistryArgsSchema = z.object({
|
|
506
|
+
identifier: z.string().describe("Tool ID (numeric) or name"),
|
|
507
|
+
label: z.string().optional().describe("Resolve version by label name (e.g. 'production')"),
|
|
508
|
+
version: z.number().int().optional().describe("Resolve by specific version number"),
|
|
509
|
+
api_key: z.string().optional().describe("PromptLayer API key (optional, defaults to PROMPTLAYER_API_KEY env var)"),
|
|
510
|
+
});
|
|
511
|
+
|
|
512
|
+
export const CreateToolRegistryArgsSchema = z.object({
|
|
513
|
+
name: z.string().describe("Tool name (unique per workspace)"),
|
|
514
|
+
tool_definition: z.record(z.unknown()).describe("Tool definition in OpenAI function-calling format: {type: 'function', function: {name, description, parameters}}"),
|
|
515
|
+
folder_id: z.number().int().optional().describe("Folder ID to place tool in"),
|
|
516
|
+
commit_message: z.string().optional().describe("Commit message for the initial version"),
|
|
517
|
+
api_key: z.string().optional().describe("PromptLayer API key (optional, defaults to PROMPTLAYER_API_KEY env var)"),
|
|
518
|
+
});
|
|
519
|
+
|
|
520
|
+
export const CreateToolVersionArgsSchema = z.object({
|
|
521
|
+
identifier: z.string().describe("Tool ID (numeric) or name"),
|
|
522
|
+
tool_definition: z.record(z.unknown()).describe("Updated tool definition in OpenAI function-calling format"),
|
|
523
|
+
commit_message: z.string().optional().describe("Commit message describing what changed"),
|
|
524
|
+
api_key: z.string().optional().describe("PromptLayer API key (optional, defaults to PROMPTLAYER_API_KEY env var)"),
|
|
525
|
+
});
|
|
526
|
+
|
|
499
527
|
export const CreateFolderArgsSchema = z.object({
|
|
500
528
|
name: z.string().describe("Folder name (unique within parent)"),
|
|
501
529
|
parent_id: z.number().int().optional().describe("Parent folder ID (root if omitted)"),
|
|
@@ -974,6 +1002,32 @@ export const TOOL_DEFINITIONS = {
|
|
|
974
1002
|
annotations: { readOnlyHint: true },
|
|
975
1003
|
},
|
|
976
1004
|
|
|
1005
|
+
// ── Tool Registry ───────────────────────────────────────────────────
|
|
1006
|
+
"list-tool-registries": {
|
|
1007
|
+
name: "list-tool-registries",
|
|
1008
|
+
description: "List all tools in the Tool Registry for the workspace. Returns tool names, IDs, and metadata.",
|
|
1009
|
+
inputSchema: ListToolRegistriesArgsSchema,
|
|
1010
|
+
annotations: { readOnlyHint: true },
|
|
1011
|
+
},
|
|
1012
|
+
"get-tool-registry": {
|
|
1013
|
+
name: "get-tool-registry",
|
|
1014
|
+
description: "Get a tool from the Tool Registry by ID or name. Optionally resolve a specific version by label or version number. Returns the tool definition and metadata.",
|
|
1015
|
+
inputSchema: GetToolRegistryArgsSchema,
|
|
1016
|
+
annotations: { readOnlyHint: true },
|
|
1017
|
+
},
|
|
1018
|
+
"create-tool-registry": {
|
|
1019
|
+
name: "create-tool-registry",
|
|
1020
|
+
description: "Create a new tool in the Tool Registry with an initial version. The tool definition should be in OpenAI function-calling format.",
|
|
1021
|
+
inputSchema: CreateToolRegistryArgsSchema,
|
|
1022
|
+
annotations: { readOnlyHint: false },
|
|
1023
|
+
},
|
|
1024
|
+
"create-tool-version": {
|
|
1025
|
+
name: "create-tool-version",
|
|
1026
|
+
description: "Create a new version of an existing tool in the Tool Registry. Each version is immutable — this adds a new version with the updated definition.",
|
|
1027
|
+
inputSchema: CreateToolVersionArgsSchema,
|
|
1028
|
+
annotations: { readOnlyHint: false },
|
|
1029
|
+
},
|
|
1030
|
+
|
|
977
1031
|
// ── Folders ─────────────────────────────────────────────────────────
|
|
978
1032
|
"create-folder": {
|
|
979
1033
|
name: "create-folder",
|