@pincerpay/mcp 0.1.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.
Files changed (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +131 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +30 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/client.d.ts +28 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +60 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/index.d.ts +5 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +3 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/prompts/debug-transaction.d.ts +3 -0
  16. package/dist/prompts/debug-transaction.d.ts.map +1 -0
  17. package/dist/prompts/debug-transaction.js +31 -0
  18. package/dist/prompts/debug-transaction.js.map +1 -0
  19. package/dist/prompts/get-started.d.ts +3 -0
  20. package/dist/prompts/get-started.d.ts.map +1 -0
  21. package/dist/prompts/get-started.js +40 -0
  22. package/dist/prompts/get-started.js.map +1 -0
  23. package/dist/prompts/index.d.ts +3 -0
  24. package/dist/prompts/index.d.ts.map +1 -0
  25. package/dist/prompts/index.js +11 -0
  26. package/dist/prompts/index.js.map +1 -0
  27. package/dist/prompts/integrate-agent.d.ts +3 -0
  28. package/dist/prompts/integrate-agent.d.ts.map +1 -0
  29. package/dist/prompts/integrate-agent.js +41 -0
  30. package/dist/prompts/integrate-agent.js.map +1 -0
  31. package/dist/prompts/integrate-merchant.d.ts +3 -0
  32. package/dist/prompts/integrate-merchant.d.ts.map +1 -0
  33. package/dist/prompts/integrate-merchant.js +39 -0
  34. package/dist/prompts/integrate-merchant.js.map +1 -0
  35. package/dist/resources/chain-config.d.ts +3 -0
  36. package/dist/resources/chain-config.d.ts.map +1 -0
  37. package/dist/resources/chain-config.js +29 -0
  38. package/dist/resources/chain-config.js.map +1 -0
  39. package/dist/resources/docs.d.ts +3 -0
  40. package/dist/resources/docs.d.ts.map +1 -0
  41. package/dist/resources/docs.js +460 -0
  42. package/dist/resources/docs.js.map +1 -0
  43. package/dist/resources/index.d.ts +4 -0
  44. package/dist/resources/index.d.ts.map +1 -0
  45. package/dist/resources/index.js +9 -0
  46. package/dist/resources/index.js.map +1 -0
  47. package/dist/resources/openapi-spec.d.ts +4 -0
  48. package/dist/resources/openapi-spec.d.ts.map +1 -0
  49. package/dist/resources/openapi-spec.js +28 -0
  50. package/dist/resources/openapi-spec.js.map +1 -0
  51. package/dist/server.d.ts +18 -0
  52. package/dist/server.d.ts.map +1 -0
  53. package/dist/server.js +48 -0
  54. package/dist/server.js.map +1 -0
  55. package/dist/tools/check-transaction.d.ts +4 -0
  56. package/dist/tools/check-transaction.d.ts.map +1 -0
  57. package/dist/tools/check-transaction.js +50 -0
  58. package/dist/tools/check-transaction.js.map +1 -0
  59. package/dist/tools/estimate-gas.d.ts +3 -0
  60. package/dist/tools/estimate-gas.d.ts.map +1 -0
  61. package/dist/tools/estimate-gas.js +88 -0
  62. package/dist/tools/estimate-gas.js.map +1 -0
  63. package/dist/tools/generate-ucp.d.ts +3 -0
  64. package/dist/tools/generate-ucp.d.ts.map +1 -0
  65. package/dist/tools/generate-ucp.js +103 -0
  66. package/dist/tools/generate-ucp.js.map +1 -0
  67. package/dist/tools/index.d.ts +4 -0
  68. package/dist/tools/index.d.ts.map +1 -0
  69. package/dist/tools/index.js +19 -0
  70. package/dist/tools/index.js.map +1 -0
  71. package/dist/tools/list-chains.d.ts +4 -0
  72. package/dist/tools/list-chains.d.ts.map +1 -0
  73. package/dist/tools/list-chains.js +56 -0
  74. package/dist/tools/list-chains.js.map +1 -0
  75. package/dist/tools/scaffold-agent.d.ts +3 -0
  76. package/dist/tools/scaffold-agent.d.ts.map +1 -0
  77. package/dist/tools/scaffold-agent.js +93 -0
  78. package/dist/tools/scaffold-agent.js.map +1 -0
  79. package/dist/tools/scaffold-middleware.d.ts +3 -0
  80. package/dist/tools/scaffold-middleware.d.ts.map +1 -0
  81. package/dist/tools/scaffold-middleware.js +160 -0
  82. package/dist/tools/scaffold-middleware.js.map +1 -0
  83. package/dist/tools/validate-config.d.ts +3 -0
  84. package/dist/tools/validate-config.d.ts.map +1 -0
  85. package/dist/tools/validate-config.js +105 -0
  86. package/dist/tools/validate-config.js.map +1 -0
  87. package/dist/transport/http.d.ts +7 -0
  88. package/dist/transport/http.d.ts.map +1 -0
  89. package/dist/transport/http.js +34 -0
  90. package/dist/transport/http.js.map +1 -0
  91. package/package.json +70 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 PincerPay
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,131 @@
1
+ # @pincerpay/mcp
2
+
3
+ MCP server for [PincerPay](https://pincerpay.com) — on-chain USDC payment gateway for AI agents using the [x402 protocol](https://x402.org).
4
+
5
+ Works with Claude, Cursor, Windsurf, GitHub Copilot, Replit, and any MCP-compatible client.
6
+
7
+ ## Quick Start
8
+
9
+ ### Claude Code
10
+
11
+ ```bash
12
+ claude mcp add pincerpay -- npx -y @pincerpay/mcp
13
+ ```
14
+
15
+ ### Claude Desktop
16
+
17
+ Add to `claude_desktop_config.json`:
18
+
19
+ ```json
20
+ {
21
+ "mcpServers": {
22
+ "pincerpay": {
23
+ "command": "npx",
24
+ "args": ["-y", "@pincerpay/mcp"],
25
+ "env": {
26
+ "PINCERPAY_API_KEY": "pp_live_your_key_here"
27
+ }
28
+ }
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### Cursor
34
+
35
+ Settings > Tools & MCP > Add Server:
36
+
37
+ ```json
38
+ {
39
+ "mcpServers": {
40
+ "pincerpay": {
41
+ "command": "npx",
42
+ "args": ["-y", "@pincerpay/mcp"],
43
+ "env": {
44
+ "PINCERPAY_API_KEY": "pp_live_your_key_here"
45
+ }
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ### Windsurf
52
+
53
+ Add via the Cascade MCP panel or `mcp.json`:
54
+
55
+ ```json
56
+ {
57
+ "mcpServers": {
58
+ "pincerpay": {
59
+ "command": "npx",
60
+ "args": ["-y", "@pincerpay/mcp"],
61
+ "env": {
62
+ "PINCERPAY_API_KEY": "pp_live_your_key_here"
63
+ }
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ ### Remote (Streamable HTTP)
70
+
71
+ ```bash
72
+ npx @pincerpay/mcp --transport=http --port=3100 --api-key=pp_live_your_key
73
+ ```
74
+
75
+ ## Tools
76
+
77
+ | Tool | Description | Auth Required |
78
+ |------|-------------|:---:|
79
+ | `list-supported-chains` | List supported chains and USDC configs | No |
80
+ | `estimate-gas-cost` | Estimate gas fees per chain | No |
81
+ | `validate-payment-config` | Validate merchant config with route pattern checks | No |
82
+ | `scaffold-x402-middleware` | Generate Express/Hono/Next.js middleware | No |
83
+ | `scaffold-agent-client` | Generate agent fetch wrapper with spending policies | No |
84
+ | `generate-ucp-manifest` | Create commerce discovery manifest | No |
85
+ | `check-transaction-status` | Query transaction status | Yes |
86
+
87
+ ## Resources
88
+
89
+ | Resource | URI | Description |
90
+ |----------|-----|-------------|
91
+ | Chain configs | `chain://{shorthand}` | Config for any of the 6 supported chains |
92
+ | OpenAPI spec | `pincerpay://openapi` | Live facilitator OpenAPI spec |
93
+ | Documentation | `docs://pincerpay/{topic}` | Embedded docs (5 topics — see below) |
94
+
95
+ ### Doc Topics
96
+
97
+ | Topic | URI | Content |
98
+ |-------|-----|---------|
99
+ | Getting Started | `docs://pincerpay/getting-started` | Prerequisites, Choose Your Path (merchant vs agent), devnet/mainnet, key concepts |
100
+ | Merchant Guide | `docs://pincerpay/merchant` | Express, Hono, and Next.js middleware setup, multi-chain routes, config reference |
101
+ | Agent Guide | `docs://pincerpay/agent` | Agent setup, spending policies (base units), runtime management, properties |
102
+ | Troubleshooting | `docs://pincerpay/troubleshooting` | Common issues table, devnet funding, debugging tips |
103
+ | Reference | `docs://pincerpay/reference` | Chain shorthands, USDC amounts, package exports, API methods |
104
+
105
+ ## Prompts
106
+
107
+ | Prompt | Description |
108
+ |--------|-------------|
109
+ | `get-started` | Interactive onboarding — determines your role and guides you to the right flow |
110
+ | `integrate-merchant` | Step-by-step merchant SDK integration (Express, Hono, or Next.js) |
111
+ | `integrate-agent` | Agent SDK setup with spending policies and gas estimates |
112
+ | `debug-transaction` | Transaction troubleshooting by hash/signature |
113
+
114
+ ## CLI Options
115
+
116
+ ```
117
+ --api-key=KEY PincerPay API key (or PINCERPAY_API_KEY env var)
118
+ --facilitator-url=URL Custom facilitator URL (or PINCERPAY_FACILITATOR_URL)
119
+ --transport=stdio|http Transport type (default: stdio)
120
+ --port=PORT HTTP port (default: 3100, only with --transport=http)
121
+ ```
122
+
123
+ ## API Key
124
+
125
+ Get your API key from [pincerpay.com/dashboard/settings](https://pincerpay.com/dashboard/settings).
126
+
127
+ Developer tools (scaffolding, gas estimates, chain listing, config validation) work without an API key. Operations tools (transaction status) require one.
128
+
129
+ ## License
130
+
131
+ MIT
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { createPincerPayMcpServer } from "./server.js";
4
+ const args = process.argv.slice(2);
5
+ function getArg(name) {
6
+ const prefix = `--${name}=`;
7
+ const found = args.find((a) => a.startsWith(prefix));
8
+ return found?.slice(prefix.length);
9
+ }
10
+ const apiKey = getArg("api-key") ?? process.env.PINCERPAY_API_KEY;
11
+ const facilitatorUrl = getArg("facilitator-url") ?? process.env.PINCERPAY_FACILITATOR_URL;
12
+ const transport = getArg("transport") ?? "stdio";
13
+ const server = createPincerPayMcpServer({
14
+ apiKey,
15
+ facilitatorUrl,
16
+ });
17
+ if (transport === "stdio") {
18
+ const stdioTransport = new StdioServerTransport();
19
+ await server.connect(stdioTransport);
20
+ }
21
+ else if (transport === "http") {
22
+ const { startHttpTransport } = await import("./transport/http.js");
23
+ const port = parseInt(getArg("port") ?? process.env.PORT ?? "3100", 10);
24
+ await startHttpTransport(server, { port });
25
+ }
26
+ else {
27
+ console.error(`Unknown transport: "${transport}". Use "stdio" or "http".`);
28
+ process.exit(1);
29
+ }
30
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAClE,MAAM,cAAc,GAClB,MAAM,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;AACrE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC;AAEjD,MAAM,MAAM,GAAG,wBAAwB,CAAC;IACtC,MAAM;IACN,cAAc;CACf,CAAC,CAAC;AAEH,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAClD,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC;KAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;IAChC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,kBAAkB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,2BAA2B,CAAC,CAAC;IAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,28 @@
1
+ export interface FacilitatorClientConfig {
2
+ /** PincerPay API key (pp_live_... or pp_test_...) */
3
+ apiKey?: string;
4
+ /** Facilitator URL (defaults to https://facilitator.pincerpay.com) */
5
+ facilitatorUrl?: string;
6
+ }
7
+ /**
8
+ * Lightweight HTTP client for the PincerPay facilitator API.
9
+ * Follows the same pattern as PincerPayClient in @pincerpay/merchant
10
+ * but without requiring merchantAddress — designed for MCP server use.
11
+ */
12
+ export declare class FacilitatorClient {
13
+ readonly facilitatorUrl: string;
14
+ readonly apiKey?: string;
15
+ constructor(config: FacilitatorClientConfig);
16
+ get isAuthenticated(): boolean;
17
+ /**
18
+ * Throws if no API key is configured. Call before operations
19
+ * that require authentication.
20
+ */
21
+ requireAuth(): void;
22
+ request<T>(path: string, body?: unknown): Promise<T>;
23
+ getSupported(): Promise<unknown>;
24
+ getStatus(txHash: string): Promise<unknown>;
25
+ getHealth(): Promise<unknown>;
26
+ getOpenApiSpec(): Promise<unknown>;
27
+ }
28
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEb,MAAM,EAAE,uBAAuB;IAK3C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;OAGG;IACH,WAAW,IAAI,IAAI;IASb,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAuBpD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAGzC"}
package/dist/client.js ADDED
@@ -0,0 +1,60 @@
1
+ import { DEFAULT_FACILITATOR_URL, FACILITATOR_ROUTES, API_KEY_HEADER, } from "@pincerpay/core";
2
+ /**
3
+ * Lightweight HTTP client for the PincerPay facilitator API.
4
+ * Follows the same pattern as PincerPayClient in @pincerpay/merchant
5
+ * but without requiring merchantAddress — designed for MCP server use.
6
+ */
7
+ export class FacilitatorClient {
8
+ facilitatorUrl;
9
+ apiKey;
10
+ constructor(config) {
11
+ this.facilitatorUrl = config.facilitatorUrl ?? DEFAULT_FACILITATOR_URL;
12
+ this.apiKey = config.apiKey;
13
+ }
14
+ get isAuthenticated() {
15
+ return !!this.apiKey;
16
+ }
17
+ /**
18
+ * Throws if no API key is configured. Call before operations
19
+ * that require authentication.
20
+ */
21
+ requireAuth() {
22
+ if (!this.apiKey) {
23
+ throw new Error("This operation requires a PincerPay API key. " +
24
+ "Set PINCERPAY_API_KEY environment variable or pass --api-key to the MCP server.");
25
+ }
26
+ }
27
+ async request(path, body) {
28
+ const url = `${this.facilitatorUrl}${path}`;
29
+ const headers = {
30
+ "Content-Type": "application/json",
31
+ };
32
+ if (this.apiKey) {
33
+ headers[API_KEY_HEADER] = this.apiKey;
34
+ }
35
+ const res = await fetch(url, {
36
+ method: body ? "POST" : "GET",
37
+ headers,
38
+ body: body ? JSON.stringify(body) : undefined,
39
+ });
40
+ if (!res.ok) {
41
+ const text = await res.text().catch(() => "Unknown error");
42
+ throw new Error(`Facilitator ${path} failed (${res.status}): ${text}`);
43
+ }
44
+ return res.json();
45
+ }
46
+ async getSupported() {
47
+ return this.request(FACILITATOR_ROUTES.supported);
48
+ }
49
+ async getStatus(txHash) {
50
+ this.requireAuth();
51
+ return this.request(`${FACILITATOR_ROUTES.status}/${txHash}`);
52
+ }
53
+ async getHealth() {
54
+ return this.request(FACILITATOR_ROUTES.health);
55
+ }
56
+ async getOpenApiSpec() {
57
+ return this.request("/openapi.json");
58
+ }
59
+ }
60
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AASzB;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACnB,cAAc,CAAS;IACvB,MAAM,CAAU;IAEzB,YAAY,MAA+B;QACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,+CAA+C;gBAC7C,iFAAiF,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,IAAc;QAC3C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;QAC5C,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC7B,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export { createPincerPayMcpServer } from "./server.js";
2
+ export type { PincerPayMcpConfig } from "./server.js";
3
+ export { FacilitatorClient } from "./client.js";
4
+ export type { FacilitatorClientConfig } from "./client.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { createPincerPayMcpServer } from "./server.js";
2
+ export { FacilitatorClient } from "./client.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerDebugPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=debug-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-transaction.d.ts","sourceRoot":"","sources":["../../src/prompts/debug-transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAiCpD"}
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ export function registerDebugPrompt(server) {
3
+ server.prompt("debug-transaction", "Investigate a PincerPay transaction's status and diagnose issues. " +
4
+ "Fetches transaction details from the facilitator and provides analysis.", {
5
+ txHash: z
6
+ .string()
7
+ .describe("Transaction hash (EVM) or Solana signature."),
8
+ }, ({ txHash }) => ({
9
+ messages: [
10
+ {
11
+ role: "user",
12
+ content: {
13
+ type: "text",
14
+ text: `Debug this PincerPay transaction: ${txHash}
15
+
16
+ Please:
17
+ 1. Use check-transaction-status to fetch the transaction details
18
+ 2. Analyze the status (pending/mempool/optimistic/confirmed/failed)
19
+ 3. If failed, explain common failure reasons:
20
+ - Insufficient USDC balance
21
+ - Wrong chain/network
22
+ - Expired transaction timeout
23
+ - RPC connectivity issues
24
+ 4. Provide the block explorer link for the transaction
25
+ 5. Suggest next steps to resolve any issues`,
26
+ },
27
+ },
28
+ ],
29
+ }));
30
+ }
31
+ //# sourceMappingURL=debug-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-transaction.js","sourceRoot":"","sources":["../../src/prompts/debug-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,MAAM,CACX,mBAAmB,EACnB,oEAAoE;QAClE,yEAAyE,EAC3E;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CAAC,6CAA6C,CAAC;KAC3D,EACD,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACf,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,qCAAqC,MAAM;;;;;;;;;;;4CAWjB;iBACjC;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerGetStartedPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=get-started.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-started.d.ts","sourceRoot":"","sources":["../../src/prompts/get-started.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QA2CzD"}
@@ -0,0 +1,40 @@
1
+ export function registerGetStartedPrompt(server) {
2
+ server.prompt("get-started", "Interactive onboarding for PincerPay. Determines whether you're a merchant " +
3
+ "(accept USDC payments) or agent developer (make USDC payments) and guides " +
4
+ "you through the appropriate integration flow.", {}, () => ({
5
+ messages: [
6
+ {
7
+ role: "user",
8
+ content: {
9
+ type: "text",
10
+ text: `I want to integrate PincerPay into my project.
11
+
12
+ Please help me get started by determining which integration I need:
13
+
14
+ 1. **Merchant** — I have an API and want to accept USDC payments from AI agents.
15
+ → Ask me about my web framework (Express, Hono, or Next.js), which endpoints to paywall, and my wallet address.
16
+ → Then use the integrate-merchant workflow: scaffold-x402-middleware → validate-payment-config → generate-ucp-manifest.
17
+
18
+ 2. **Agent Developer** — I'm building an AI agent that needs to pay for API access with USDC.
19
+ → Ask me about my preferred chain and spending budget.
20
+ → Then use the integrate-agent workflow: scaffold-agent-client → estimate-gas-cost.
21
+
22
+ 3. **Both** — I need both merchant and agent integration.
23
+ → Walk me through merchant first, then agent.
24
+
25
+ 4. **Troubleshooting** — I already have PincerPay integrated and need help debugging.
26
+ → Ask for my transaction hash and use debug-transaction.
27
+
28
+ Please ask me which of these describes my situation, then guide me through the appropriate flow step by step.
29
+
30
+ Key things to keep in mind throughout:
31
+ - My project needs "type": "module" in package.json (PincerPay SDKs are ESM-only)
32
+ - .env files must be in .gitignore — never commit API keys or private keys
33
+ - For development, use devnet chains (solana-devnet, base-sepolia)
34
+ - Route prices use human-readable USDC (e.g., "0.01"), but agent spending policies use base units (e.g., "10000")`,
35
+ },
36
+ },
37
+ ],
38
+ }));
39
+ }
40
+ //# sourceMappingURL=get-started.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-started.js","sourceRoot":"","sources":["../../src/prompts/get-started.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,MAAM,CACX,aAAa,EACb,6EAA6E;QAC3E,4EAA4E;QAC5E,+CAA+C,EACjD,EAAE,EACF,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;kHAwBgG;iBACvG;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerPrompts(server: McpServer): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAKhD"}
@@ -0,0 +1,11 @@
1
+ import { registerGetStartedPrompt } from "./get-started.js";
2
+ import { registerMerchantPrompt } from "./integrate-merchant.js";
3
+ import { registerAgentPrompt } from "./integrate-agent.js";
4
+ import { registerDebugPrompt } from "./debug-transaction.js";
5
+ export function registerPrompts(server) {
6
+ registerGetStartedPrompt(server);
7
+ registerMerchantPrompt(server);
8
+ registerAgentPrompt(server);
9
+ registerDebugPrompt(server);
10
+ }
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerAgentPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=integrate-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrate-agent.d.ts","sourceRoot":"","sources":["../../src/prompts/integrate-agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QA8CpD"}
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ export function registerAgentPrompt(server) {
3
+ server.prompt("integrate-agent", "Guide for building an AI agent that automatically pays for API access with USDC. " +
4
+ "Covers wallet setup, spending policies, and the x402 payment flow.", {
5
+ chain: z
6
+ .string()
7
+ .default("solana")
8
+ .describe("Primary chain."),
9
+ maxBudget: z
10
+ .string()
11
+ .optional()
12
+ .describe("Daily USDC budget in human-readable format, e.g. '5.00'. " +
13
+ "Will be converted to base units (× 1,000,000) for spending policies."),
14
+ }, ({ chain, maxBudget }) => {
15
+ const budgetLine = maxBudget
16
+ ? `Daily budget: $${maxBudget} USDC (= ${Math.round(Number(maxBudget) * 1_000_000)} base units for maxPerDay)`
17
+ : "No budget limit set";
18
+ return {
19
+ messages: [
20
+ {
21
+ role: "user",
22
+ content: {
23
+ type: "text",
24
+ text: `I want to build an AI agent that can pay for APIs using USDC via PincerPay.
25
+
26
+ Chain: ${chain}
27
+ ${budgetLine}
28
+
29
+ Please:
30
+ 1. Use scaffold-agent-client to generate the agent code${maxBudget ? ` — pass maxPerDay as "${Math.round(Number(maxBudget) * 1_000_000)}" (base units, NOT "${maxBudget}")` : ""}
31
+ 2. Use estimate-gas-cost to explain the gas costs on ${chain}
32
+ 3. Explain how the x402 payment flow works (402 challenge -> sign -> settle)
33
+ 4. Show how to set up wallet key management securely
34
+ 5. Explain spending policies — IMPORTANT: policies use base units (6 decimals), NOT human-readable amounts. $1.00 = "1000000", $0.10 = "100000". Using "0.10" will cause BigInt() to throw at runtime.`,
35
+ },
36
+ },
37
+ ],
38
+ };
39
+ });
40
+ }
41
+ //# sourceMappingURL=integrate-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrate-agent.js","sourceRoot":"","sources":["../../src/prompts/integrate-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,MAAM,CACX,iBAAiB,EACjB,mFAAmF;QACjF,oEAAoE,EACtE;QACE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,gBAAgB,CAAC;QAC7B,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2DAA2D;YACzD,sEAAsE,CACzE;KACJ,EACD,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,SAAS;YAC1B,CAAC,CAAC,kBAAkB,SAAS,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,4BAA4B;YAC9G,CAAC,CAAC,qBAAqB,CAAC;QAE1B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE;;SAEX,KAAK;EACZ,UAAU;;;yDAG6C,SAAS,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,uBAAuB,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE;uDACzH,KAAK;;;uMAG2I;qBAC1L;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerMerchantPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=integrate-merchant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrate-merchant.d.ts","sourceRoot":"","sources":["../../src/prompts/integrate-merchant.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QA6CvD"}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ export function registerMerchantPrompt(server) {
3
+ server.prompt("integrate-merchant", "Step-by-step guide for adding x402 USDC paywalls to your API. " +
4
+ "Generates middleware code, environment setup, and testing instructions.", {
5
+ framework: z
6
+ .enum(["express", "hono", "nextjs"])
7
+ .describe("Web framework to use. Use 'nextjs' for Next.js App Router (Hono adapter)."),
8
+ chain: z
9
+ .string()
10
+ .default("solana")
11
+ .describe("Primary chain."),
12
+ endpoints: z
13
+ .string()
14
+ .describe("Comma-separated list of endpoints with prices, e.g. " +
15
+ "'GET /api/weather:0.01, GET /api/premium:0.10'"),
16
+ }, ({ framework, chain, endpoints }) => ({
17
+ messages: [
18
+ {
19
+ role: "user",
20
+ content: {
21
+ type: "text",
22
+ text: `I want to add PincerPay USDC paywalls to my ${framework} API.
23
+
24
+ Chain: ${chain}
25
+ Endpoints: ${endpoints}
26
+
27
+ Please:
28
+ 1. Use the scaffold-x402-middleware tool to generate the middleware code
29
+ 2. Use validate-payment-config to verify the configuration
30
+ 3. Use list-supported-chains to confirm the chain is valid
31
+ 4. Use generate-ucp-manifest to create a discovery manifest
32
+ 5. Explain how to get an API key from pincerpay.com/dashboard
33
+ 6. Show how to test with the agent SDK on a testnet chain`,
34
+ },
35
+ },
36
+ ],
37
+ }));
38
+ }
39
+ //# sourceMappingURL=integrate-merchant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrate-merchant.js","sourceRoot":"","sources":["../../src/prompts/integrate-merchant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,MAAM,CACX,oBAAoB,EACpB,gEAAgE;QAC9D,yEAAyE,EAC3E;QACE,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aACnC,QAAQ,CACP,2EAA2E,CAC5E;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,gBAAgB,CAAC;QAC7B,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,CACP,sDAAsD;YACpD,gDAAgD,CACnD;KACJ,EACD,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+CAA+C,SAAS;;SAEjE,KAAK;aACD,SAAS;;;;;;;;0DAQoC;iBAC/C;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerChainResources(server: McpServer): void;
3
+ //# sourceMappingURL=chain-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-config.d.ts","sourceRoot":"","sources":["../../src/resources/chain-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QA+BvD"}
@@ -0,0 +1,29 @@
1
+ import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { CHAINS } from "@pincerpay/core";
3
+ export function registerChainResources(server) {
4
+ server.resource("chain-config", new ResourceTemplate("chain://{shorthand}", {
5
+ list: async () => ({
6
+ resources: Object.values(CHAINS).map((c) => ({
7
+ uri: `chain://${c.shorthand}`,
8
+ name: `${c.name} (${c.shorthand})`,
9
+ description: `${c.testnet ? "Testnet" : "Mainnet"} — USDC: ${c.usdcAddress.slice(0, 10)}...`,
10
+ mimeType: "application/json",
11
+ })),
12
+ }),
13
+ }), async (uri, { shorthand }) => {
14
+ const chain = CHAINS[shorthand];
15
+ if (!chain) {
16
+ throw new Error(`Unknown chain: "${shorthand}". Valid: ${Object.keys(CHAINS).join(", ")}`);
17
+ }
18
+ return {
19
+ contents: [
20
+ {
21
+ uri: uri.href,
22
+ text: JSON.stringify(chain, null, 2),
23
+ mimeType: "application/json",
24
+ },
25
+ ],
26
+ };
27
+ });
28
+ }
29
+ //# sourceMappingURL=chain-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-config.js","sourceRoot":"","sources":["../../src/resources/chain-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,QAAQ,CACb,cAAc,EACd,IAAI,gBAAgB,CAAC,qBAAqB,EAAE;QAC1C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,GAAG,EAAE,WAAW,CAAC,CAAC,SAAS,EAAE;gBAC7B,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,GAAG;gBAClC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;gBAC5F,QAAQ,EAAE,kBAA2B;aACtC,CAAC,CAAC;SACJ,CAAC;KACH,CAAC,EACF,KAAK,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAmB,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,aAAa,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpC,QAAQ,EAAE,kBAAkB;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerDocsResources(server: McpServer): void;
3
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/resources/docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAobzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAgCtD"}