{"_id":"@backendkit-labs/mcp-server","_rev":"4-70077ca1c0969b6dd09872d997cf86d7","name":"@backendkit-labs/mcp-server","dist-tags":{"latest":"0.16.1"},"versions":{"0.14.0":{"name":"@backendkit-labs/mcp-server","version":"0.14.0","_id":"@backendkit-labs/mcp-server@0.14.0","maintainers":[{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"}],"homepage":"https://github.com/BackendKit-labs/backendkit-agent-framework#readme","bugs":{"url":"https://github.com/BackendKit-labs/backendkit-agent-framework/issues"},"bin":{"bk-mcp":"dist/server.js"},"dist":{"shasum":"45fcf490ca956ba32be24942cb62733fe5395b46","tarball":"https://registry.npmjs.org/@backendkit-labs/mcp-server/-/mcp-server-0.14.0.tgz","fileCount":81,"integrity":"sha512-BSHSRvFud0jamJtdxq7CVNsU8Pz9TOdoPmu3dSaCQj6E4SQjfU9aaD4BKjixdoGJcTLHyflvJhXqcc651R5R6w==","signatures":[{"sig":"MEQCIFD6Ph6njgFOLxFhD6zJhCTmo2YCUtfPODorJwFrrCNzAiAWs9QMoPBV7s6eKGkt4PA8mYltBC3ZtF0TMHFlHdPHag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133791},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b0a8e3d030a878d68ea7cd840b53893aaea64b60","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"},"repository":{"url":"git+https://github.com/BackendKit-labs/backendkit-agent-framework.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.8.0","description":"MCP server for agent-framework — skills, code intelligence, agent context","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chokidar":"^5.0.0","better-sqlite3":"^12.10.0","web-tree-sitter":"^0.20.8","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.12.0","@backendkit-labs/agent-core":"*","@backendkit-labs/agent-coding":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.0.0","@types/chokidar":"^1.7.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.14.0_1780608913658_0.343744370488968","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@backendkit-labs/mcp-server","version":"0.15.0","_id":"@backendkit-labs/mcp-server@0.15.0","maintainers":[{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"}],"homepage":"https://github.com/BackendKit-labs/backendkit-agent-framework#readme","bugs":{"url":"https://github.com/BackendKit-labs/backendkit-agent-framework/issues"},"bin":{"bk-mcp":"dist/server.js"},"dist":{"shasum":"a2b9a9d9bdf1ab9b272d25a5fe7268be68846b7e","tarball":"https://registry.npmjs.org/@backendkit-labs/mcp-server/-/mcp-server-0.15.0.tgz","fileCount":82,"integrity":"sha512-Yj12Co1dRwZki/ES2W0sjdYa6vPffpI1o4vnFTqGijvcOQBgdZEo0cmt7BkssZtmY+UJGd1SF1tA6FI1YeSgmQ==","signatures":[{"sig":"MEUCIQC88eUhNyA773ojELYErSQ0oTwm6vWmIScn/ldr1US8/gIgaNphOWf6jnvLlISwB5i7kXvcMudFquPXz1hf08YQT/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135273},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4496f7e277c8535e1627bcce989ece55c9cef380","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"},"repository":{"url":"git+https://github.com/BackendKit-labs/backendkit-agent-framework.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.8.0","description":"MCP server for agent-framework — skills, code intelligence, agent context","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chokidar":"^5.0.0","better-sqlite3":"^12.10.0","web-tree-sitter":"^0.20.8","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.12.0","@backendkit-labs/agent-core":"*","@backendkit-labs/agent-coding":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.0.0","@types/chokidar":"^1.7.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.15.0_1780610523155_0.3287700274018901","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@backendkit-labs/mcp-server","version":"0.16.0","_id":"@backendkit-labs/mcp-server@0.16.0","maintainers":[{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"}],"homepage":"https://github.com/BackendKit-labs/backendkit-agent-framework#readme","bugs":{"url":"https://github.com/BackendKit-labs/backendkit-agent-framework/issues"},"bin":{"bk-mcp":"dist/server.js"},"dist":{"shasum":"003a3306a601abe7f8365c3babe85420ac14b831","tarball":"https://registry.npmjs.org/@backendkit-labs/mcp-server/-/mcp-server-0.16.0.tgz","fileCount":82,"integrity":"sha512-VmLHTtSpG8T8xgi8PWt/1tmzLGC6CC4UHw77pNCDTebMGV/IL983puX4VaPLzvSOK/t6ebdr0FaDUlUfWfEAjw==","signatures":[{"sig":"MEYCIQDmzJ8kC8wvzALBfObIpEJykvyvoMw+UvhvtH3XA3k1zwIhAMm6N9pxdU+jrGk83F3MwKhd73sIspmjztj+DEGZpFXm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135315},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"09027c1bcfac441b510475f3af2cd84454a32fba","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"},"repository":{"url":"git+https://github.com/BackendKit-labs/backendkit-agent-framework.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.8.0","description":"MCP server for agent-framework — skills, code intelligence, agent context","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chokidar":"^5.0.0","better-sqlite3":"^12.10.0","web-tree-sitter":"^0.20.8","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.12.0","@backendkit-labs/agent-core":"*","@backendkit-labs/agent-coding":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.0.0","@types/chokidar":"^1.7.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.16.0_1780681824787_0.6802110860369472","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@backendkit-labs/mcp-server","version":"0.16.1","description":"MCP server for agent-framework — skills, code intelligence, agent context","main":"dist/index.js","types":"dist/index.d.ts","bin":{"bk-mcp":"dist/server.js"},"repository":{"type":"git","url":"git+https://github.com/BackendKit-labs/backendkit-agent-framework.git","directory":"packages/mcp-server"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","dev":"tsc --watch","typecheck":"tsc --noEmit","start":"node dist/server.js","prepublishOnly":"npm run build"},"dependencies":{"@backendkit-labs/agent-core":"*","@backendkit-labs/agent-coding":"*","@modelcontextprotocol/sdk":"^1.12.0","better-sqlite3":"^12.10.0","chokidar":"^5.0.0","tree-sitter-wasms":"^0.1.13","web-tree-sitter":"^0.20.8"},"devDependencies":{"@types/better-sqlite3":"^7.6.13","@types/chokidar":"^1.7.5","@types/node":"^20.0.0","typescript":"^5.4.0"},"engines":{"node":">=20.0.0"},"gitHead":"34c3a9ecdd1f90b38ff468ec087a0871029f96de","_id":"@backendkit-labs/mcp-server@0.16.1","bugs":{"url":"https://github.com/BackendKit-labs/backendkit-agent-framework/issues"},"homepage":"https://github.com/BackendKit-labs/backendkit-agent-framework#readme","_nodeVersion":"24.16.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-1J2PCqkubn2uPjOp4HmBw3eZKcGRCB0nMXaK45t7hl1L03iwQGbhfnDnTmbhDGFzHXO2dBLlWZ3NRitExidbtw==","shasum":"c87de9731324889f69e8d3f7281ddff86a3e483f","tarball":"https://registry.npmjs.org/@backendkit-labs/mcp-server/-/mcp-server-0.16.1.tgz","fileCount":82,"unpackedSize":140664,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPFOOTJZFf5k6Wadh0Q4sQLzYe8IOzANdiOSIXl8An9wIhAP03PmhsqlNCN4GCrv3XTKhgL29u2TDhcuzNOqidj/ti"}]},"_npmUser":{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"},"directories":{},"maintainers":[{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.16.1_1781194618273_0.45200239733519787"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-04T21:35:13.499Z","modified":"2026-06-11T16:16:58.561Z","0.14.0":"2026-06-04T21:35:13.787Z","0.15.0":"2026-06-04T22:02:03.297Z","0.16.0":"2026-06-05T17:50:24.994Z","0.16.1":"2026-06-11T16:16:58.441Z"},"bugs":{"url":"https://github.com/BackendKit-labs/backendkit-agent-framework/issues"},"homepage":"https://github.com/BackendKit-labs/backendkit-agent-framework#readme","repository":{"type":"git","url":"git+https://github.com/BackendKit-labs/backendkit-agent-framework.git","directory":"packages/mcp-server"},"description":"MCP server for agent-framework — skills, code intelligence, agent context","maintainers":[{"name":"backendkit.dev","email":"backendkit.dev@gmail.com"}],"readme":"# @backendkit-labs/mcp-server\n\nMCP (Model Context Protocol) server that exposes code intelligence, skills management, and project context as tools for any MCP-compatible AI client (Claude Desktop, agent-core, Cursor, etc.).\n\n[![npm](https://img.shields.io/npm/v/@backendkit-labs/mcp-server)](https://www.npmjs.com/package/@backendkit-labs/mcp-server)\n\n## Table of contents\n\n- [Installation](#installation)\n- [Running the server](#running-the-server)\n- [Tools reference](#tools-reference)\n- [Code intelligence index](#code-intelligence-index)\n- [Connecting via agent-core](#connecting-via-agent-core)\n- [Connecting via Claude Desktop](#connecting-via-claude-desktop)\n- [HTTP mode](#http-mode)\n- [Environment variables](#environment-variables)\n\n---\n\n## Installation\n\n```bash\nnpm install -g @backendkit-labs/mcp-server\n# or use via npx:\nnpx @backendkit-labs/mcp-server\n```\n\nBinary: `bk-mcp`\n\n---\n\n## Running the server\n\n### Stdio mode (default — for Claude Desktop, agent-core)\n\n```bash\nbk-mcp\n\n# Against a specific project\nBK_CWD=/my-project bk-mcp\n\n# With a custom app name\nBK_APP_NAME=my-app BK_CWD=/my-project bk-mcp\n```\n\n### HTTP mode (multi-session)\n\n```bash\nbk-mcp --http --port 3100\n```\n\n---\n\n## Tools reference\n\n### `stack_detect`\n\nDetect the project's technology stack using file detection and the code index.\n\n```\nArgs:\n  cwd  string?  Project directory (defaults to server cwd)\n```\n\n**Example:**\n```\nWhat stack does this project use?\n→ stack_detect()\n→ \"Detected stack: typescript, node, react, docker\"\n```\n\n---\n\n### `code_index`\n\nIndex the codebase into a SQLite graph database. Incremental — only re-indexes changed files.\n\n```\nArgs:\n  cwd    string?   Project directory\n  watch  boolean?  Enable file watcher for live updates (default: false)\n```\n\n**Example:**\n```\nIndex this codebase\n→ code_index({ watch: true })\n→ \"Indexed 234 files, 4,821 symbols. File watcher enabled.\"\n```\n\n**What gets indexed:** functions, classes, interfaces, types, enums from TypeScript/JS/Go/Python/Java/Kotlin. Callers and callees are recorded for each symbol (call graph).\n\n---\n\n### `code_search`\n\nSearch for symbols by name or keyword.\n\n```\nArgs:\n  query  string   Symbol name or keyword\n  limit  number?  Max results (default 20)\n```\n\n**Example:**\n```\nWhere is TokenValidator defined?\n→ code_search({ query: \"TokenValidator\" })\n→ \"**TokenValidator** (class) — src/auth/token-validator.ts:15\n     class TokenValidator { validate(token: string): DecodedToken | null }\"\n```\n\n**Fuzzy search:**\n```\nAll functions related to payment\n→ code_search({ query: \"payment\", limit: 30 })\n→ PaymentProcessor, processPayment, validatePayment, createPaymentIntent, ...\n```\n\n---\n\n### `code_context`\n\nGiven a task description, find the most relevant symbols and return their code, callers, and callees. Bootstraps context for a coding task without manual file reading.\n\n```\nArgs:\n  task        string   Task or feature description\n  max_symbols number?  Max symbols (default 10)\n```\n\n**Example:**\n```\nI need to add rate limiting to the login endpoint\n→ code_context({ task: \"add rate limiting to login endpoint\" })\n→ \n### loginHandler (function) — src/routes/auth.ts:67-89\n> calledBy: router.post | calls: validateCredentials, createSession\n\\`\\`\\`typescript\nasync function loginHandler(req: Request, res: Response) {\n  const { email, password } = req.body;\n  ...\n}\n\\`\\`\\`\n```\n\nThe agent immediately knows which files and symbols are relevant.\n\n---\n\n### `skills_search`\n\nSearch available skills by query.\n\n```\nArgs:\n  query  string   Search term\n  cwd    string?  Project directory for stack detection\n```\n\n**Example:**\n```\nFind skills for TypeScript testing\n→ skills_search({ query: \"typescript testing\" })\n→ \"- **ts-jest-setup** ✓ [global, typescript, ACTIVE]\n     Configure Jest for TypeScript with proper transforms\n   - **vitest-config** [node, typescript]\n     Set up Vitest for unit testing\"\n```\n\n`✓` means the skill matches the detected stack.\n\n---\n\n### `skills_install`\n\nInstall a skill pack from GitHub or a local path.\n\n```\nArgs:\n  source  string   GitHub URL or local path\n  skill   string?  Install only a specific skill\n  pack    string?  Override the derived pack name\n```\n\n**Example:**\n```\nInstall our company skills repo\n→ skills_install({ source: \"https://github.com/my-org/agent-skills\" })\n→ \"Installed pack \"backend\" with 12 skill(s).\"\n```\n\n---\n\n### `skills_list`\n\nList all installed skill packs.\n\n```\nArgs: (none)\n```\n\n**Example:**\n```\nWhat packs are installed?\n→ skills_list()\n→ \"**global** (builtin)\n     Skills: code-review, refactor-pattern, ...\n   **my-org-backend** (installed 2026-06-01)\n     Skills: stripe-integration, postgres-pattern, ...\"\n```\n\n---\n\n## Code intelligence index\n\nThe indexer uses **Tree-sitter** (WASM) to parse source code into a SQLite graph with symbols and their relationships. Storage location:\n\n```\n~/.{BK_APP_NAME}/code-index/{base64url(CWD)}.db\n```\n\nDefault: `~/.deepseek-code/code-index/{hash}.db`\n\nSupported languages: TypeScript, JavaScript, Go, Python, Java, Kotlin, Rust.\n\n---\n\n## Connecting via agent-core\n\n```typescript\nimport { createCodingEngine } from '@backendkit-labs/agent-coding';\n\nconst engine = createCodingEngine({\n  providers:       { deepseek: { apiKey: process.env.DEEPSEEK_API_KEY! } },\n  defaultProvider: 'deepseek',\n  mcpServers: [\n    {\n      name:    'code-intelligence',\n      command: 'bk-mcp',\n      args:    [],\n      env: {\n        BK_APP_NAME: 'my-app',\n        BK_CWD:      process.cwd(),\n      },\n    },\n  ],\n  subAgentContextMessages: 20,\n});\n\n// Index then query\nawait engine.run('Index this codebase');\nawait engine.run('Find all functions that directly access the database without using the repository layer');\n```\n\n---\n\n## Connecting via Claude Desktop\n\nAdd to your Claude Desktop config:\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`  \n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"bk-code\": {\n      \"command\": \"bk-mcp\",\n      \"env\": {\n        \"BK_APP_NAME\": \"claude-code\",\n        \"BK_CWD\":      \"/path/to/your/project\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop — the tools will appear in the tool picker.\n\n### Multiple projects\n\n```json\n{\n  \"mcpServers\": {\n    \"bk-api\": {\n      \"command\": \"bk-mcp\",\n      \"env\": { \"BK_CWD\": \"/projects/api-server\", \"BK_APP_NAME\": \"claude-code\" }\n    },\n    \"bk-frontend\": {\n      \"command\": \"bk-mcp\",\n      \"env\": { \"BK_CWD\": \"/projects/frontend\", \"BK_APP_NAME\": \"claude-code\" }\n    }\n  }\n}\n```\n\n---\n\n## HTTP mode\n\n```bash\nBK_CWD=/my-project bk-mcp --http --port 3100\n```\n\nConnect:\n\n```typescript\nawait mcp.connectStreamableHTTP({\n  name:    'code-intelligence',\n  baseUrl: 'http://localhost:3100',\n});\n```\n\n---\n\n## Environment variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `BK_APP_NAME` | `deepseek-code` | App name — determines `~/.{name}/` storage |\n| `BK_CWD` | `process.cwd()` | Project directory to index and serve |\n","readmeFilename":"README.md"}