From e5eb067dd85510de2e9a232e71151e2515552610 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 23:25:29 +0000 Subject: [PATCH 1/3] Initial plan From 4858cc2445f157c97eb791a94b0c3b8dd3308835 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 23:26:50 +0000 Subject: [PATCH 2/3] Initial setup - dependencies installed Co-authored-by: Andrew-Paystack <78197464+Andrew-Paystack@users.noreply.github.com> --- package-lock.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccec6cd..b1768f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "paystack-mcp", - "version": "1.0.0", + "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "paystack-mcp", - "version": "1.0.0", + "version": "0.0.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/inspector": "^0.18.0", @@ -1821,6 +1821,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.0.tgz", "integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -2664,6 +2665,7 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", + "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -3039,6 +3041,7 @@ "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.7.tgz", "integrity": "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==", "license": "MIT", + "peer": true, "engines": { "node": ">=16.9.0" } @@ -3564,7 +3567,8 @@ "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/p-limit": { "version": "3.1.0", @@ -3767,6 +3771,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -3779,6 +3784,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -4527,6 +4533,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4905,6 +4912,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } From 29e69f3d99e8a89273164488ccecb2c64c98cdeb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 23:27:35 +0000 Subject: [PATCH 3/3] Remove get_operation_guided tool and its registration Co-authored-by: Andrew-Paystack <78197464+Andrew-Paystack@users.noreply.github.com> --- src/tools/get-operation-guided.ts | 90 ------------------------------- src/tools/index.ts | 2 - 2 files changed, 92 deletions(-) delete mode 100644 src/tools/get-operation-guided.ts diff --git a/src/tools/get-operation-guided.ts b/src/tools/get-operation-guided.ts deleted file mode 100644 index 2dd6741..0000000 --- a/src/tools/get-operation-guided.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; -import { CreateMessageResultSchema } from "@modelcontextprotocol/sdk/types.js"; -import { OpenAPIParser } from "../openapi-parser"; - -export function registerGetOperationGuidedTool( - server: McpServer, - openapi: OpenAPIParser -) { - server.registerTool( - "get_paystack_operation_guided", - { - description: "Get Paystack API operation details from user input", - annotations: { - title: "Get endpoint details from user input", - readOnlyHint: true, - destructiveHint: false, - idempotentHint: false, - openWorldHint: false, - }, - }, - async () => { - const res = await server.server.request({ - method: "sampling/createMessage", - params: { - messages: [{ - role: "user", - content: [ - { - type: "text", - text: `Review the OpenAPI specification and infer the operation ID of the - Paystack API endpoint from the user input. - For example if the user's input is: 'I want to create a new customer in Paystack.' - review the OpenAPI spec and respond with the most logical operationId: - which is 'customer_create'. Return just the operationId in your response.`, - }, - ], - }], - maxTokens: 1024, - } - }, CreateMessageResultSchema) - - if (res.content.type !== "text") { - return { - content: [ - { - type: "text", - text: `Could not infer operation ID from user input.`, - } - ] - } - } - - try { - const operation_id = res.content.text.trim(); - const operation = openapi.getOperationById(operation_id); - - if (!operation) { - return { - content: [ - { - type: "text", - text: `Operation with ID ${operation_id} not found.`, - }, - ], - isError: true, - } - } - - return { - content: [ - { - type: "text", - text: JSON.stringify(operation, null, 2), - mimeType: "application/json", - }, - ] - } - } catch { - return { - content: [ - { - type: "text", - text: `Operation with ID cannot be infered.`, - }, - ] - } - } - } - ); -} diff --git a/src/tools/index.ts b/src/tools/index.ts index 9100200..194c20a 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -2,7 +2,6 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { OpenAPIParser } from "../openapi-parser"; import { registerGetPaystackOperationTool } from "./get-paystack-operation"; import { registerMakePaystackRequestTool } from "./make-paystack-request"; -import { registerGetOperationGuidedTool } from "./get-operation-guided"; export function registerAllTools( server: McpServer, @@ -10,5 +9,4 @@ export function registerAllTools( ) { registerGetPaystackOperationTool(server, openapi); registerMakePaystackRequestTool(server); - registerGetOperationGuidedTool(server, openapi); }