{"_id":"@divinci-ai/mcp","_rev":"6-95f4be26a0903b9dbfd5dbd2864f7692","name":"@divinci-ai/mcp","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@divinci-ai/mcp","version":"0.1.0","keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","_id":"@divinci-ai/mcp@0.1.0","maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"homepage":"https://sdk.divinci.ai/mcp","bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"dist":{"shasum":"5c30375ac39d393489b6dcc808ec96d30ef6286e","tarball":"https://registry.npmjs.org/@divinci-ai/mcp/-/mcp-0.1.0.tgz","fileCount":35,"integrity":"sha512-3xjo43vhymkcUyaMhKd7UECnnMagv1HK6enZog1ursUI8QLtylkA3pQvpMzectvdQ0q5UGUqdNZDk0hJoxiG7w==","signatures":[{"sig":"MEYCIQDpMjhaa/iiIdBHwJjgVapx/FXzcl2AfsW0lP5es9go3AIhANO/K3i4c4/OhPFvjiHHvCXxE1ut9QXHhU5N2q9Avyco","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105690},"main":"./dist/index.js","type":"module","_from":"file:divinci-ai-mcp-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./tools":{"types":"./dist/tools/index.d.ts","import":"./dist/tools/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mike-divinci","email":"mike@divinci.ai"},"_resolved":"/private/var/folders/sw/_w_lmwt94_n56fb8fp4dbhjh0000gn/T/07a8119d34d96de096a857f47329e392/divinci-ai-mcp-0.1.0.tgz","_integrity":"sha512-3xjo43vhymkcUyaMhKd7UECnnMagv1HK6enZog1ursUI8QLtylkA3pQvpMzectvdQ0q5UGUqdNZDk0hJoxiG7w==","repository":{"url":"git+https://github.com/Divinci-AI/sdk.git","type":"git","directory":"packages/mcp"},"_npmVersion":"11.12.1","description":"Divinci AI MCP (Model Context Protocol) SDK","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"@divinci-ai/types":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.9","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.19.10","@peculiar/webcrypto":"^1.5.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1779436720877_0.6984220367038059","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@divinci-ai/mcp","version":"0.1.1","keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","_id":"@divinci-ai/mcp@0.1.1","maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"homepage":"https://sdk.divinci.ai/mcp","bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"dist":{"shasum":"ba89a2e1a39514b4cf3348a1e3e7498a09511883","tarball":"https://registry.npmjs.org/@divinci-ai/mcp/-/mcp-0.1.1.tgz","fileCount":34,"integrity":"sha512-Q1t0qiCoi14+12YUI7jWkRR29TWmhinaGyIcEpwGSsGRyspMfDY+eXfscaXHo9Oj2dIA5DN8tjxvgR50LiFG1A==","signatures":[{"sig":"MEYCIQCrzw8BPtF6HU+CTBdUG1cL5ReUcm6kOYXk1toL68ZXbwIhAJnLtqWcKvsnEN1TQre7ypHPVZd5z+zKtwVnoNDyR8Fu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104715},"main":"./dist/index.js","type":"module","_from":"file:divinci-ai-mcp-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./tools":{"types":"./dist/tools/index.d.ts","import":"./dist/tools/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"node ../../scripts/assert-packed-deps.mjs && pnpm run build"},"_npmUser":{"name":"mike-divinci","email":"mike@divinci.ai"},"_resolved":"/Users/mikeumus/Documents/server/workspace/sdk/packages/mcp/divinci-ai-mcp-0.1.1.tgz","_integrity":"sha512-Q1t0qiCoi14+12YUI7jWkRR29TWmhinaGyIcEpwGSsGRyspMfDY+eXfscaXHo9Oj2dIA5DN8tjxvgR50LiFG1A==","repository":{"url":"git+https://github.com/Divinci-AI/sdk.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.8","description":"Divinci AI MCP (Model Context Protocol) SDK","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@divinci-ai/types":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.9","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.19.10","@peculiar/webcrypto":"^1.5.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1782962682867_0.19494262137512353","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@divinci-ai/mcp","version":"0.1.2","keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","_id":"@divinci-ai/mcp@0.1.2","maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"homepage":"https://sdk.divinci.ai/mcp","bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"dist":{"shasum":"fe82ca020644cde8a6370e7c14576503807fe01a","tarball":"https://registry.npmjs.org/@divinci-ai/mcp/-/mcp-0.1.2.tgz","fileCount":35,"integrity":"sha512-AG3AQzB1DlYEcXKT/jjef1KzFWfrrKpt5RPDMq6/gbRFR7xw7Xu6a8n0Vtg6LnZTcwX8Gv3wUvpQ9Yq6am9rXQ==","signatures":[{"sig":"MEYCIQDZIBqUTLcTmdBegbfzgM6D9u1y68OB26ZKqCPsgoHe3AIhAJBrfxY4oUTIZZ2a8I0me4tSRoTg6PYRqSSWsEYp9STX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105691},"main":"./dist/index.js","type":"module","_from":"file:divinci-ai-mcp-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./tools":{"types":"./dist/tools/index.d.ts","import":"./dist/tools/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mike-divinci","email":"mike@divinci.ai"},"_resolved":"/Users/mikeumus/Documents/server/workspace/sdk/packages/mcp/divinci-ai-mcp-0.1.2.tgz","_integrity":"sha512-AG3AQzB1DlYEcXKT/jjef1KzFWfrrKpt5RPDMq6/gbRFR7xw7Xu6a8n0Vtg6LnZTcwX8Gv3wUvpQ9Yq6am9rXQ==","repository":{"url":"git+https://github.com/Divinci-AI/sdk.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.8","description":"Divinci AI MCP (Model Context Protocol) SDK","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@divinci-ai/types":"0.1.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.9","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.19.10","@peculiar/webcrypto":"^1.5.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.2_1782971580036_0.03892296745321433","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@divinci-ai/mcp","version":"0.1.4","keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","_id":"@divinci-ai/mcp@0.1.4","maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"homepage":"https://sdk.divinci.ai/mcp","bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"dist":{"shasum":"ad7fe20cd9da5d1573e8f46856535e2f2a4e9933","tarball":"https://registry.npmjs.org/@divinci-ai/mcp/-/mcp-0.1.4.tgz","fileCount":43,"integrity":"sha512-k92EaGFKUkHOSCbrxp7v071hoUZhGpAObHyyUVWLPr8CCMVMu4/aurCKQJpm/FxM7ItwtquH+KzXcEmn6jGPIA==","signatures":[{"sig":"MEUCIQCNvzswX+A2DuoKvFOHtXVc2r3AmlGnRjAjzAuL4NAhIwIgECedGVycK/S7E2jgYRUQWdLUL3+na/JRlkYMB0UCYhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126275},"main":"./dist/index.js","type":"module","_from":"file:divinci-ai-mcp-0.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./tools":{"types":"./dist/tools/index.d.ts","import":"./dist/tools/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mike-divinci","email":"mike@divinci.ai"},"_resolved":"/private/var/folders/q4/pl30pmhs0qn8m30_d_pby9_40000gn/T/7241dd02e8c893d72fb030c8afba73b0/divinci-ai-mcp-0.1.4.tgz","_integrity":"sha512-k92EaGFKUkHOSCbrxp7v071hoUZhGpAObHyyUVWLPr8CCMVMu4/aurCKQJpm/FxM7ItwtquH+KzXcEmn6jGPIA==","repository":{"url":"git+https://github.com/Divinci-AI/sdk.git","type":"git","directory":"packages/mcp"},"_npmVersion":"12.0.2","description":"Divinci AI MCP (Model Context Protocol) SDK","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@divinci-ai/types":"0.1.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.9","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.19.10","@peculiar/webcrypto":"^1.5.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.4_1786592676429_0.12026014799393359","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@divinci-ai/mcp","version":"0.1.5","keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","_id":"@divinci-ai/mcp@0.1.5","maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"homepage":"https://sdk.divinci.ai/mcp","bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"dist":{"shasum":"983d574d0293a25a731d95a745bb6ffbee40fc58","tarball":"https://registry.npmjs.org/@divinci-ai/mcp/-/mcp-0.1.5.tgz","fileCount":43,"integrity":"sha512-RFVeF3noPUU+DiZ1IdI6tdWlBzZZLcac6b2SW1LAUA76fnss0mF9A4E3u1nPIZqbGRBZWWrO0HwNFOsWqlPrOg==","signatures":[{"sig":"MEYCIQDfs0BEjNBdgpM9r/hcBpHrzp2Wnh/bJvSTLGzppoOKpAIhAKp/fy8YXeOHdjiEO7v1osl+/M43FuCJRg+Ln8VoZUjT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126242},"main":"./dist/index.js","type":"module","_from":"file:divinci-ai-mcp-0.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./tools":{"types":"./dist/tools/index.d.ts","import":"./dist/tools/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f4eac9-9965-4002-9639-2bc69f41497c"}},"_resolved":"/tmp/af8822dba2d17b9b364426b441de2710/divinci-ai-mcp-0.1.5.tgz","_integrity":"sha512-RFVeF3noPUU+DiZ1IdI6tdWlBzZZLcac6b2SW1LAUA76fnss0mF9A4E3u1nPIZqbGRBZWWrO0HwNFOsWqlPrOg==","repository":{"url":"git+https://github.com/Divinci-AI/sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"Divinci AI MCP (Model Context Protocol) SDK","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@divinci-ai/types":"0.1.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.9","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.19.10","@peculiar/webcrypto":"^1.5.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.5_1787141467825_0.8741284645009701","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@divinci-ai/mcp","version":"0.1.6","description":"Divinci AI MCP (Model Context Protocol) SDK","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js"},"./tools":{"types":"./dist/tools/index.d.ts","import":"./dist/tools/index.js"}},"dependencies":{"@divinci-ai/types":"0.1.15"},"devDependencies":{"@peculiar/webcrypto":"^1.5.0","@types/node":"^22.19.10","@vitest/coverage-v8":"^3.2.4","msw":"^2.12.9","typescript":"^5.9.3","vitest":"^3.2.4"},"peerDependencies":{"typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Divinci-AI/sdk.git"},"bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"homepage":"https://sdk.divinci.ai/mcp","publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"sideEffects":false,"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_id":"@divinci-ai/mcp@0.1.6","_integrity":"sha512-jRyxuAMHLuLhePM/UUado1cO/mDcM0FgC6ViAa2BNWLOZqFSYQNn7CocGgGBBI9cjQiXMkwr+KabqSKO8Akg7A==","_resolved":"/tmp/5cc4cf057df18399b69ea34b80228167/divinci-ai-mcp-0.1.6.tgz","_from":"file:divinci-ai-mcp-0.1.6.tgz","_nodeVersion":"22.23.2","_npmVersion":"11.19.1","dist":{"integrity":"sha512-jRyxuAMHLuLhePM/UUado1cO/mDcM0FgC6ViAa2BNWLOZqFSYQNn7CocGgGBBI9cjQiXMkwr+KabqSKO8Akg7A==","shasum":"b98259e05d0500a6797df37e0a3d0af3ff684b78","tarball":"https://registry.npmjs.org/@divinci-ai/mcp/-/mcp-0.1.6.tgz","fileCount":43,"unpackedSize":126242,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCM3F/hrKVJI9S0sSow5XrSTbgnfZ9wvCnl5otSayGCEwIhAI8/V2G09Bq0f3873V7J3EwkDzQpGQKS61s2mWSbJ5nX"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f4eac9-9965-4002-9639-2bc69f41497c"}},"directories":{},"maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.6_1788686556758_0.2936228420907998"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-22T07:58:40.692Z","modified":"2026-09-06T09:22:37.066Z","0.1.0":"2026-05-22T07:58:41.054Z","0.1.1":"2026-07-02T03:24:43.018Z","0.1.2":"2026-07-02T05:53:00.222Z","0.1.4":"2026-08-13T03:44:36.856Z","0.1.5":"2026-08-19T12:11:07.952Z","0.1.6":"2026-09-06T09:22:36.893Z"},"bugs":{"url":"https://github.com/Divinci-AI/sdk/issues"},"author":{"name":"Divinci AI","email":"engineering@divinci.app"},"license":"MIT","homepage":"https://sdk.divinci.ai/mcp","keywords":["divinci","ai","sdk","mcp","model-context-protocol","anthropic"],"repository":{"type":"git","url":"git+https://github.com/Divinci-AI/sdk.git"},"description":"Divinci AI MCP (Model Context Protocol) SDK","maintainers":[{"name":"mike-divinci","email":"mike@divinci.ai"}],"readme":"# @divinci-ai/mcp\n\n> MCP (Model Context Protocol) SDK for integrating with AI assistants like Claude Desktop and Cursor\n\n[![npm version](https://img.shields.io/npm/v/@divinci-ai/mcp.svg)](https://www.npmjs.com/package/@divinci-ai/mcp)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![MCP](https://img.shields.io/badge/MCP-1.0-purple.svg)](https://modelcontextprotocol.io/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\n## Installation\n\n```bash\nnpm install @divinci-ai/mcp\n# or\npnpm add @divinci-ai/mcp\n# or\nyarn add @divinci-ai/mcp\n```\n\n## Quick Start\n\n```typescript\nimport { McpClient } from \"@divinci-ai/mcp\";\n\nconst client = new McpClient({\n  serverUrl: \"https://mcp.divinci.app\",\n  apiKey: \"divinci_key_...\",\n});\n\n// Connect to the MCP server\nawait client.connect();\n\n// List available tools\nconst tools = await client.listTools();\n\n// Call a tool\nconst result = await client.callTool(\"search_knowledge\", {\n  query: \"return policy\",\n});\n```\n\n## Features\n\n- **SSE Transport** - Real-time server-sent events for MCP communication\n- **Auth0 Integration** - PKCE OAuth flow for browser authentication\n- **Tool Invocation** - Call MCP tools with typed arguments\n- **x402 Payments** - Automatic payment handling for premium tools\n- **Reconnection** - Automatic reconnection with exponential backoff\n- **TypeScript** - Full type safety with comprehensive type definitions\n\n## Usage\n\n### Connecting to MCP Server\n\n```typescript\nconst client = new McpClient({\n  serverUrl: \"https://mcp.divinci.app\",\n  apiKey: \"divinci_key_...\",\n});\n\n// Listen for connection events\nclient.on(\"connected\", () => console.log(\"Connected!\"));\nclient.on(\"disconnected\", () => console.log(\"Disconnected\"));\nclient.on(\"error\", (error) => console.error(\"Error:\", error));\n\nawait client.connect();\n```\n\n### Tool Operations\n\n```typescript\n// List all available tools\nconst tools = await client.listTools();\nfor (const tool of tools) {\n  console.log(`${tool.name}: ${tool.description}`);\n  if (tool.pricing) {\n    console.log(`  Price: $${tool.pricing.priceUsd}`);\n  }\n}\n\n// Call a tool\nconst result = await client.callTool(\"search_knowledge\", {\n  query: \"How do I reset my password?\",\n  limit: 5,\n});\nconsole.log(result.content);\n\n// Get a specific tool's details\nconst tool = await client.getTool(\"send_message\");\n```\n\n### Building Custom Tools\n\n```typescript\nimport { ToolBuilder } from \"@divinci-ai/mcp\";\n\nconst searchTool = new ToolBuilder(\"advanced_search\")\n  .describe(\"Search with advanced filters\")\n  .addString(\"query\", { required: true, description: \"Search query\" })\n  .addNumber(\"limit\", { description: \"Max results\", default: 10 })\n  .addBoolean(\"exact\", { description: \"Exact match only\" })\n  .addArray(\"categories\", \"string\", { description: \"Filter categories\" })\n  .build();\n\nconsole.log(searchTool.inputSchema);\n```\n\n### x402 Payment Handling\n\n```typescript\nimport { McpClient, PaymentRequiredError } from \"@divinci-ai/mcp\";\n\nconst client = new McpClient({\n  serverUrl: \"https://mcp.divinci.app\",\n  apiKey: \"divinci_key_...\",\n  x402: {\n    autoPayment: true,\n    maxPaymentUsd: 1.0,\n    wallet: {\n      getAddress: async () => \"0x...\",\n      pay: async (details) => {\n        // Execute payment\n        return { transactionHash: \"0x...\", signature: \"...\" };\n      },\n    },\n  },\n});\n\n// Tool calls automatically handle payment\nconst result = await client.callTool(\"premium_search\", { query: \"test\" });\n```\n\n### Manual Payment Flow\n\n```typescript\ntry {\n  await client.callTool(\"premium_search\", { query: \"test\" });\n} catch (error) {\n  if (error instanceof PaymentRequiredError) {\n    console.log(`Payment required: $${error.paymentDetails.amountUsd}`);\n    console.log(`Recipient: ${error.paymentDetails.recipient}`);\n    console.log(`Network: ${error.paymentDetails.network}`);\n\n    // Handle payment manually\n    const receipt = await processPayment(error.paymentDetails);\n\n    // Retry with payment proof\n    const result = await client.callTool(\"premium_search\", {\n      query: \"test\",\n      _payment: receipt,\n    });\n  }\n}\n```\n\n### Auth0 Browser Authentication\n\n```typescript\nimport { Auth0Handler } from \"@divinci-ai/mcp\";\n\nconst auth = new Auth0Handler({\n  domain: \"auth.divinci.app\",\n  clientId: \"your-client-id\",\n  redirectUri: window.location.origin + \"/callback\",\n  audience: \"https://api.divinci.app\",\n});\n\n// Start login flow\nawait auth.login();\n\n// Handle callback (on redirect URI)\nconst tokens = await auth.handleCallback();\n\n// Use tokens with MCP client\nconst client = new McpClient({\n  serverUrl: \"https://mcp.divinci.app\",\n  getToken: () => auth.getAccessToken(),\n});\n```\n\n### Streamable HTTP Transport (default)\n\n`McpClient` uses Streamable HTTP at `{serverUrl}/mcp`. Divinci retired the\nlegacy HTTP+SSE transport (`/sse` + `/message`) on 2026-08-07 — those paths\nreturn HTTP 410.\n\n```typescript\nimport { StreamableHttpTransport } from \"@divinci-ai/mcp\";\n\nconst transport = new StreamableHttpTransport({\n  mcpUrl: \"https://mcp.divinci.app/mcp\",\n});\ntransport.setAuthToken(apiKey);\nawait transport.connect();\nconst tools = await transport.request(\"tools/list\");\n```\n\n`SseTransport` remains exported for third-party MCP servers that still speak\nHTTP+SSE, but it will not connect to `mcp.divinci.app` / `mcp.stage.divinci.app`.\n\n## Configuration\n\n```typescript\nconst client = new McpClient({\n  // Required\n  serverUrl: \"https://mcp.divinci.app\",\n\n  // Authentication (one of these)\n  apiKey: \"divinci_key_...\",\n  getToken: async () => await fetchAccessToken(),\n\n  // Optional\n  timeout: 30000,\n  reconnect: true,\n  maxReconnectAttempts: 5,\n\n  // x402 Payment Configuration\n  x402: {\n    autoPayment: false,\n    maxPaymentUsd: 1.0,\n    network: \"base\",\n    wallet: myWallet,\n  },\n});\n```\n\n## API Reference\n\n### McpClient\n\n| Method | Description |\n|--------|-------------|\n| `connect()` | Connect to MCP server |\n| `disconnect()` | Disconnect from server |\n| `listTools()` | List available tools |\n| `getTool(name)` | Get tool by name |\n| `callTool(name, args)` | Call a tool |\n| `on(event, handler)` | Listen for events |\n| `off(event, handler)` | Remove event listener |\n\n### McpClient Events\n\n| Event | Description |\n|-------|-------------|\n| `connected` | Connected to server |\n| `disconnected` | Disconnected from server |\n| `reconnecting` | Attempting reconnection |\n| `error` | Error occurred |\n| `message` | Message received |\n\n### StreamableHttpTransport\n\n| Method | Description |\n|--------|-------------|\n| `connect()` | Mark ready (stateless; no long-lived socket) |\n| `disconnect()` | Mark disconnected |\n| `request(method, params?)` | POST JSON-RPC to `/mcp` |\n| `notify(method, params?)` | POST notification |\n| `setAuthToken(token)` | Bearer token for subsequent requests |\n| `getState()` | Get connection state |\n\n### Auth0Handler\n\n| Method | Description |\n|--------|-------------|\n| `login()` | Start login flow |\n| `logout()` | Clear tokens and logout |\n| `handleCallback()` | Handle OAuth callback |\n| `getAccessToken()` | Get current access token |\n| `refreshToken()` | Refresh access token |\n| `getUserInfo()` | Get authenticated user info |\n\n### ToolBuilder\n\n| Method | Description |\n|--------|-------------|\n| `describe(description)` | Set tool description |\n| `addString(name, options?)` | Add string parameter |\n| `addNumber(name, options?)` | Add number parameter |\n| `addBoolean(name, options?)` | Add boolean parameter |\n| `addArray(name, itemType, options?)` | Add array parameter |\n| `build()` | Build tool schema |\n\n### Error Types\n\n| Error | Description |\n|-------|-------------|\n| `PaymentRequiredError` | x402 payment required for tool |\n\n## MCP Client Configuration\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"divinci\": {\n      \"url\": \"https://mcp.divinci.app/mcp\",\n      \"transport\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your-api-key\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to Cursor settings:\n\n```json\n{\n  \"mcp.servers\": {\n    \"divinci\": {\n      \"url\": \"https://mcp.divinci.app/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your-api-key\"\n      }\n    }\n  }\n}\n```\n\n## What is MCP?\n\nThe Model Context Protocol (MCP) is an open standard introduced by Anthropic that standardizes how AI systems integrate with external tools and data sources. It enables AI assistants to:\n\n- Call external tools with structured arguments\n- Access resources and data from external systems\n- Maintain context across conversations\n- Support payment for premium tools via x402\n\nLearn more at [modelcontextprotocol.io](https://modelcontextprotocol.io)\n\n## Related Packages\n\n- [`@divinci-ai/client`](../client) - Browser SDK for chat integration\n- [`@divinci-ai/server`](../server) - Node.js SDK for server-side operations\n- [`@divinci-ai/types`](../types) - Shared TypeScript type definitions\n\n## Documentation\n\nFull documentation available at [sdk.divinci.ai](https://sdk.divinci.ai)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}