{"_id":"@awesome-agent/mcp-client","_rev":"3-46a9eceeb978d232f86c0f638c81320e","name":"@awesome-agent/mcp-client","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@awesome-agent/mcp-client","version":"0.1.0","author":{"name":"Kaan Bingol","email":"kaanbingol@outlook.com"},"license":"Apache-2.0","_id":"@awesome-agent/mcp-client@0.1.0","maintainers":[{"name":"kaanbingol","email":"kaanbingol@outlook.com"}],"homepage":"https://github.com/awesome-agent/awesome-agent-sdk#readme","bugs":{"url":"https://github.com/awesome-agent/awesome-agent-sdk/issues"},"dist":{"shasum":"e90a349d0d2a5011363f3e8c9d86785e30233607","tarball":"https://registry.npmjs.org/@awesome-agent/mcp-client/-/mcp-client-0.1.0.tgz","fileCount":15,"integrity":"sha512-DYm9PQldmxPhzNUKzausmpx5qlWFCBsBkIhAKhSXmBBu3dAhWO+262AnqTiJss8029SDp4ApIp/gJ+dmaqEOqg==","signatures":[{"sig":"MEUCIQDpHPkPgA6i5R3LtjBiwgnYKS5GsIcgpHnXQruy54+9iQIgSh5100LOliZ7UQ4Lpc+H6QyPwCyKLAAUQShNyu1gp94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33623},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5253cbc5cd51ec012d1382391cd112c86e19f562","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"kaanbingol","email":"kaanbingol@outlook.com"},"repository":{"url":"git+https://github.com/awesome-agent/awesome-agent-sdk.git","type":"git","directory":"packages/mcp-client"},"_npmVersion":"11.8.0","description":"MCP transport clients (stdio, HTTP) for @awesome-agent/agent-core","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.9.3","@awesome-agent/agent-core":"^0.1.0"},"peerDependencies":{"@awesome-agent/agent-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-client_0.1.0_1773575626117_0.5662146113306599","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@awesome-agent/mcp-client","version":"0.1.1","author":{"name":"Kaan Bingol","email":"kaanbingol@outlook.com"},"license":"Apache-2.0","_id":"@awesome-agent/mcp-client@0.1.1","maintainers":[{"name":"kaanbingol","email":"kaanbingol@outlook.com"}],"homepage":"https://github.com/awesome-agent/awesome-agent-sdk#readme","bugs":{"url":"https://github.com/awesome-agent/awesome-agent-sdk/issues"},"dist":{"shasum":"64311e267553fef3533655bc72efe01d8b37d546","tarball":"https://registry.npmjs.org/@awesome-agent/mcp-client/-/mcp-client-0.1.1.tgz","fileCount":15,"integrity":"sha512-+DIcap5Pz9Aysen0O51vTSLd2j+9Pab7nZo4YvBJEWW6qtAZARvutCM2QK+zbDKsYuZK8czzqz47tQOON7hG2A==","signatures":[{"sig":"MEUCIQCkvKzoI80xLfk5bOaW96Bi4u2SY2TloJakvqeBtGpjHQIgB3MJp5TuHryAbBU/feSzVv42c+gS4IwrKUBHh13jlU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33623},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"79b02b7e77911de8451b39041d5e1332b1f5cbd5","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"kaanbingol","email":"kaanbingol@outlook.com"},"repository":{"url":"git+https://github.com/awesome-agent/awesome-agent-sdk.git","type":"git","directory":"packages/mcp-client"},"_npmVersion":"11.8.0","description":"MCP transport clients (stdio, HTTP) for @awesome-agent/agent-core","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","typescript":"^5.9.3","@awesome-agent/agent-core":"^0.2.0"},"peerDependencies":{"@awesome-agent/agent-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/mcp-client_0.1.1_1773730940731_0.6126321245747957","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@awesome-agent/mcp-client","version":"0.2.0","description":"MCP transport clients (stdio, HTTP) for @awesome-agent/agent-core","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest run","clean":"rm -rf dist","prepublishOnly":"npm run build"},"author":{"name":"Kaan Bingol","email":"kaanbingol@outlook.com"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/awesome-agent/awesome-agent-sdk.git","directory":"packages/mcp-client"},"engines":{"node":">=18.0.0"},"sideEffects":false,"peerDependencies":{"@awesome-agent/agent-core":"*"},"devDependencies":{"@awesome-agent/agent-core":"^0.2.0","typescript":"^5.9.3","vitest":"^4.1.0"},"gitHead":"259452c40af7aa97e706b0da9a565aaac74db82a","_id":"@awesome-agent/mcp-client@0.2.0","bugs":{"url":"https://github.com/awesome-agent/awesome-agent-sdk/issues"},"homepage":"https://github.com/awesome-agent/awesome-agent-sdk#readme","_nodeVersion":"25.6.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-RJgNKCqvKF/yIPsi27qUy3YMDT4dvYZG5+93SVzt7yOzMgUBfNIPdQKifnGdX+RQA3nT9703bWnDGbfVvlZ9xw==","shasum":"e49ebccc9890092fe060ab6b8be381528c09cb57","tarball":"https://registry.npmjs.org/@awesome-agent/mcp-client/-/mcp-client-0.2.0.tgz","fileCount":23,"unpackedSize":46914,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICyPvQ1Px/mvGmiXcV36ZWfoZtYX3eM+Mn74jlNL+gK6AiEA/lAnzNxyrEePB27uisz/X3/P68Y/7BNiU98/v2hmDuw="}]},"_npmUser":{"name":"kaanbingol","email":"kaanbingol@outlook.com"},"directories":{},"maintainers":[{"name":"kaanbingol","email":"kaanbingol@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-client_0.2.0_1774816751394_0.4527264377217848"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T11:53:46.048Z","modified":"2026-03-29T20:39:11.630Z","0.1.0":"2026-03-15T11:53:46.287Z","0.1.1":"2026-03-17T07:02:21.093Z","0.2.0":"2026-03-29T20:39:11.531Z"},"bugs":{"url":"https://github.com/awesome-agent/awesome-agent-sdk/issues"},"author":{"name":"Kaan Bingol","email":"kaanbingol@outlook.com"},"license":"Apache-2.0","homepage":"https://github.com/awesome-agent/awesome-agent-sdk#readme","repository":{"type":"git","url":"git+https://github.com/awesome-agent/awesome-agent-sdk.git","directory":"packages/mcp-client"},"description":"MCP transport clients (stdio, HTTP) for @awesome-agent/agent-core","maintainers":[{"name":"kaanbingol","email":"kaanbingol@outlook.com"}],"readme":"# @awesome-agent/mcp-client\r\n\r\nMCP (Model Context Protocol) transport clients for [@awesome-agent/agent-core](../core).\r\n\r\nConnect to **any MCP server** — fal.ai, GitHub, Slack, filesystem, databases, and hundreds more from the [MCP ecosystem](https://modelcontextprotocol.io).\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @awesome-agent/agent-core @awesome-agent/mcp-client\r\n```\r\n\r\n## Usage — Stdio Transport\r\n\r\nMost MCP servers run as child processes communicating via stdin/stdout:\r\n\r\n```typescript\r\nimport { StdioMCPClient } from \"@awesome-agent/mcp-client\";\r\n\r\n// fal.ai — image & video generation\r\nconst fal = new StdioMCPClient({\r\n  id: \"fal\",\r\n  name: \"fal.ai\",\r\n  command: \"npx\",\r\n  args: [\"-y\", \"mcp-fal\"],\r\n  env: { FAL_KEY: process.env.FAL_KEY },\r\n});\r\n\r\n// GitHub — repos, issues, PRs\r\nconst github = new StdioMCPClient({\r\n  id: \"github\",\r\n  name: \"GitHub\",\r\n  command: \"npx\",\r\n  args: [\"-y\", \"@modelcontextprotocol/server-github\"],\r\n  env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN },\r\n});\r\n\r\n// Filesystem — read/write files\r\nconst fs = new StdioMCPClient({\r\n  id: \"fs\",\r\n  name: \"Filesystem\",\r\n  command: \"npx\",\r\n  args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/allowed/dir\"],\r\n});\r\n```\r\n\r\n## With AgenticLoop\r\n\r\nTools are auto-discovered and registered:\r\n\r\n```typescript\r\nimport {\r\n  AgenticLoop, DefaultToolRegistry, DefaultToolExecutor,\r\n  DefaultHookManager, DefaultContextBuilder,\r\n} from \"@awesome-agent/agent-core\";\r\nimport { OpenAIAdapter } from \"@awesome-agent/adapter-openai\";\r\nimport { StdioMCPClient } from \"@awesome-agent/mcp-client\";\r\n\r\nconst tools = new DefaultToolRegistry();\r\n\r\nconst loop = new AgenticLoop({\r\n  llm: new OpenAIAdapter({ baseURL: \"...\", apiKey: \"...\" }),\r\n  agent: { id: \"agent\", name: \"Agent\", prompt: \"You can use tools.\" },\r\n  tools,\r\n  executor: new DefaultToolExecutor(tools),\r\n  hooks: new DefaultHookManager(),\r\n  context: new DefaultContextBuilder(),\r\n  mcpClients: [\r\n    new StdioMCPClient({\r\n      id: \"fal\",\r\n      name: \"fal.ai\",\r\n      command: \"npx\",\r\n      args: [\"-y\", \"mcp-fal\"],\r\n      env: { FAL_KEY: process.env.FAL_KEY },\r\n    }),\r\n  ],\r\n  // Tools auto-discovered: fal_generate_image, fal_generate_video, etc.\r\n});\r\n\r\nconst result = await loop.run(\"Generate an image of a sunset\", \"s1\");\r\n```\r\n\r\n## Multiple MCP Servers\r\n\r\nConnect as many servers as you need — tools are prefixed with the server ID:\r\n\r\n```typescript\r\nconst loop = new AgenticLoop({\r\n  ...config,\r\n  mcpClients: [\r\n    new StdioMCPClient({ id: \"fal\", name: \"fal.ai\", command: \"npx\", args: [\"-y\", \"mcp-fal\"] }),\r\n    new StdioMCPClient({ id: \"github\", name: \"GitHub\", command: \"npx\", args: [\"-y\", \"@modelcontextprotocol/server-github\"] }),\r\n    new StdioMCPClient({ id: \"fs\", name: \"FS\", command: \"npx\", args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \".\"] }),\r\n  ],\r\n});\r\n\r\n// Available tools: fal_generate_image, github_create_issue, fs_read_file, ...\r\n```\r\n\r\n## Configuration\r\n\r\n| Option | Type | Default | Description |\r\n|--------|------|---------|-------------|\r\n| `id` | `string` | (required) | Unique server ID (used as tool prefix) |\r\n| `name` | `string` | (required) | Display name |\r\n| `command` | `string` | (required) | Command to spawn (npx, node, python) |\r\n| `args` | `string[]` | `[]` | Command arguments |\r\n| `env` | `Record<string, string>` | `{}` | Environment variables |\r\n| `cwd` | `string` | (process cwd) | Working directory |\r\n| `timeout` | `number` | `30000` | Request timeout in ms |\r\n\r\n## How It Works\r\n\r\n```\r\nYour app                        MCP Server (child process)\r\n   │                                    │\r\n   │── spawn(\"npx mcp-fal\") ──────────►│ (process starts)\r\n   │── stdin: initialize ─────────────►│\r\n   │◄── stdout: { capabilities } ──────│\r\n   │── stdin: tools/list ─────────────►│\r\n   │◄── stdout: { tools: [...] } ──────│\r\n   │── stdin: tools/call ─────────────►│\r\n   │◄── stdout: { result: \"...\" } ─────│\r\n   │── kill() ─────────────────────────►│ (process ends)\r\n```\r\n\r\n## Exports\r\n\r\n| Export | Description |\r\n|--------|-------------|\r\n| `StdioMCPClient` | Stdio transport — spawns MCP server as child process |\r\n| `StdioMCPClientConfig` | Configuration type |\r\n| `JsonRpcClient` | Low-level JSON-RPC 2.0 client (advanced) |\r\n\r\n## License\r\n\r\nApache-2.0\r\n","readmeFilename":"README.md"}