{"_id":"@codefundi/code-fundi-mcp","_rev":"5-88f61619584097b1afc0e1fd9f0d36cf","name":"@codefundi/code-fundi-mcp","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@codefundi/code-fundi-mcp","version":"0.1.0","keywords":["mcp","code-fundi","codefundi","ai","code-search","fastmcp"],"author":{"name":"Code Fundi"},"license":"MIT","_id":"@codefundi/code-fundi-mcp@0.1.0","maintainers":[{"name":"whyweru","email":"wawerufelixprojects@gmail.com"}],"homepage":"https://codefundi.app","bugs":{"url":"https://github.com/Code-Fundi/code-fundi-mcp/issues"},"bin":{"code-fundi-mcp":"dist/index.js"},"dist":{"shasum":"b858dc6d695989f8681bb6b4f019bef34fe604da","tarball":"https://registry.npmjs.org/@codefundi/code-fundi-mcp/-/code-fundi-mcp-0.1.0.tgz","fileCount":46,"integrity":"sha512-aZCKngDUbL8xsjTjLXM+VoXxX32kFVOzsm9oF99pjowZkzO2vjpkblinS0y/f+wLjdTAQ1Dw7ayCtauCqLul+g==","signatures":[{"sig":"MEQCIGqYPiQ5Z2vEyrHtPVMjOwzmTs2wtIjx1h7hUNvJ0eQPAiBso2ao3FxjlC41MRt2rXkNTYjZfz96HyDsXNj4QEp7eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codefundi%2fcode-fundi-mcp@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162388},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"97f9307cf493d06dbed5f1724780c86a8ad41d9f","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","inspect":"npx fastmcp inspect src/index.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"whyweru","email":"wawerufelixprojects@gmail.com"},"repository":{"url":"git+https://github.com/Code-Fundi/code-fundi-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for the Code-Fundi API — search, research, index, and manage code repositories via any MCP-compatible AI assistant.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.0","fastmcp":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^4.1.5","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/code-fundi-mcp_0.1.0_1778237619546_0.43836870183688403","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@codefundi/code-fundi-mcp","version":"0.1.1","keywords":["mcp","code-fundi","codefundi","ai","code-search","fastmcp"],"author":{"name":"Code Fundi"},"license":"MIT","_id":"@codefundi/code-fundi-mcp@0.1.1","maintainers":[{"name":"whyweru","email":"wawerufelixprojects@gmail.com"}],"homepage":"https://codefundi.app","bugs":{"url":"https://github.com/Code-Fundi/code-fundi-mcp/issues"},"bin":{"code-fundi-mcp":"dist/index.js"},"dist":{"shasum":"e4d32caf154ef073f203de06549ff30c64e72369","tarball":"https://registry.npmjs.org/@codefundi/code-fundi-mcp/-/code-fundi-mcp-0.1.1.tgz","fileCount":46,"integrity":"sha512-4x8/0/hEsAez2MCO6buyywawkJs/n0yBg7Gd0vHq9VCuds4XuBWbD8d57uvUwqj83tDkQ+vEPR6P2aBiJ/Xszw==","signatures":[{"sig":"MEQCIGmBUKwyIcydTnk5ho0Rq2LGw9ApnI5CEeJghttzrPyYAiBGJkkthAYhgcHsaZhpPsaztiAXN5CGufwaeTE4BnAERQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codefundi%2fcode-fundi-mcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162453},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"6d8a4034788d14508a891294ec52392ae7c11288","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","inspect":"npx fastmcp inspect src/index.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"whyweru","email":"wawerufelixprojects@gmail.com"},"repository":{"url":"git+https://github.com/Code-Fundi/code-fundi-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for the Code-Fundi API — search, research, index, and manage code repositories via any MCP-compatible AI assistant.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.0.0","fastmcp":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^4.1.5","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/code-fundi-mcp_0.1.1_1778239025334_0.272211313912206","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@codefundi/code-fundi-mcp","version":"0.1.2","keywords":["mcp","code-fundi","codefundi","ai","code-search","fastmcp"],"author":{"name":"Code Fundi"},"license":"MIT","_id":"@codefundi/code-fundi-mcp@0.1.2","maintainers":[{"name":"whyweru","email":"wawerufelixprojects@gmail.com"}],"homepage":"https://codefundi.app","bugs":{"url":"https://github.com/Code-Fundi/code-fundi-mcp/issues"},"bin":{"code-fundi-mcp":"dist/index.js"},"dist":{"shasum":"6b3a426e1504dea05544b01fdccfde86eab98468","tarball":"https://registry.npmjs.org/@codefundi/code-fundi-mcp/-/code-fundi-mcp-0.1.2.tgz","fileCount":46,"integrity":"sha512-6Lmw+UIJOI6hbiFMuPPNChLli1iX5Kp+oMxdRYaGfy55z4SxfEmWpCqBH2oJmM21hVoVKhZttVjaDtv9PL9u8w==","signatures":[{"sig":"MEYCIQDPUjyndvVFwW+OUGkyHWyQac1xP/b2MZVAjkNCZMhZOwIhALF4Xh3PlVhI9LLjnBJOFbfhbHAZ/5eISy8/lWhBhHox","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codefundi%2fcode-fundi-mcp@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162454},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"fa8b847248992ab8ea18512b329d57eeb3a0f6c3","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","inspect":"npx fastmcp inspect src/index.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"whyweru","email":"wawerufelixprojects@gmail.com"},"repository":{"url":"git+https://github.com/Code-Fundi/code-fundi-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for the Code-Fundi API — search, research, index, and manage code repositories via any MCP-compatible AI assistant.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.0","fastmcp":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^4.1.5","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/code-fundi-mcp_0.1.2_1778239848772_0.2952233111028144","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@codefundi/code-fundi-mcp","version":"0.1.3","keywords":["mcp","mcp-server","model-context-protocol","fastmcp","code-fundi","codefundi","codebase-map","blast-radius","code-intelligence","call-graph","dependency-graph","code-search","context-api","rag","llm-context","ai-agent","ai-coding-agent","claude-code","cursor","github-copilot"],"author":{"name":"Code Fundi","email":"hi@codefundi.app"},"license":"MIT","_id":"@codefundi/code-fundi-mcp@0.1.3","maintainers":[{"name":"whyweru","email":"wawerufelixprojects@gmail.com"}],"homepage":"https://codefundi.app","bugs":{"url":"https://github.com/Code-Fundi/code-fundi-mcp/issues"},"bin":{"code-fundi-mcp":"dist/index.js"},"dist":{"shasum":"b4852a8480bd28675f179c0f543d48708fc3fcc0","tarball":"https://registry.npmjs.org/@codefundi/code-fundi-mcp/-/code-fundi-mcp-0.1.3.tgz","fileCount":50,"integrity":"sha512-KwOu258NhMX6zzkiH/VX+Sh3rWwpIdnajoeJKN8c9hBpAdtGiq+1J/QbOPw0e+Vhlef45+cMM5T6OgHHG8mmSw==","signatures":[{"sig":"MEYCIQCmDtNumtollnCZ399OF1AOvi2HBNM4jAGL2HU4TS5w6gIhAKhwbsu2ypBfgjvzLXm5Z84XoMzBNZheBhWMNWMtSA5/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codefundi%2fcode-fundi-mcp@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218606},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"58111847dfa63a7018b0bb8cdaea0f12dc77abc6","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","inspect":"npx fastmcp inspect src/index.ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"whyweru","email":"wawerufelixprojects@gmail.com"},"repository":{"url":"git+https://github.com/Code-Fundi/code-fundi-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for CodeFundi: the codebase map and blast-radius guard for AI coding agents like Claude Code, Cursor, and Copilot.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.0.0","fastmcp":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^4.1.5","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/code-fundi-mcp_0.1.3_1784754552300_0.3797811919775087","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@codefundi/code-fundi-mcp","version":"0.1.4","mcpName":"io.github.FelixWaweru/code-fundi-mcp","description":"MCP server for CodeFundi: the codebase map and blast-radius guard for AI coding agents like Claude Code, Cursor, and Copilot.","keywords":["mcp","mcp-server","model-context-protocol","fastmcp","code-fundi","codefundi","codebase-map","blast-radius","code-intelligence","call-graph","dependency-graph","code-search","context-api","rag","llm-context","ai-agent","ai-coding-agent","claude-code","cursor","github-copilot"],"homepage":"https://codefundi.app","bugs":{"url":"https://github.com/Code-Fundi/code-fundi-mcp/issues"},"repository":{"type":"git","url":"git+https://github.com/Code-Fundi/code-fundi-mcp.git"},"license":"MIT","author":{"name":"Code Fundi","email":"hi@codefundi.app"},"type":"module","main":"dist/index.js","bin":{"code-fundi-mcp":"dist/index.js"},"scripts":{"build":"tsc","prepublishOnly":"npm run build","dev":"tsx src/index.ts","inspect":"npx fastmcp inspect src/index.ts","typecheck":"tsc --noEmit","test":"vitest"},"dependencies":{"fastmcp":"^4.0.0","zod":"^4.0.0"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.7.0","vitest":"^4.1.5"},"engines":{"node":">=20.0.0"},"gitHead":"58111847dfa63a7018b0bb8cdaea0f12dc77abc6","types":"./dist/index.d.ts","_id":"@codefundi/code-fundi-mcp@0.1.4","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-bLvEdBwqn/4maOCTypzxw6JCTv1vq+Y1NK8Pseim0q5U17QlnFiit22JtpYGiZMxaXCba+lVz7To3rvdrGoyKA==","shasum":"62567b2e1f087eb7bc83d54ae14b0413313ecd9d","tarball":"https://registry.npmjs.org/@codefundi/code-fundi-mcp/-/code-fundi-mcp-0.1.4.tgz","fileCount":50,"unpackedSize":218659,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCTe7TLAh83wEH5BWWE31k/F0P9kUdIe80ObAhGlP+GHAIhAOI2F/BHqAxf4SKt53E5YhSANb5kqL4midE0jZie/Kdv"}]},"_npmUser":{"name":"whyweru","email":"wawerufelixprojects@gmail.com"},"directories":{},"maintainers":[{"name":"whyweru","email":"wawerufelixprojects@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/code-fundi-mcp_0.1.4_1785343914773_0.5595740637071853"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T10:53:39.417Z","modified":"2026-07-29T16:51:55.152Z","0.1.0":"2026-05-08T10:53:39.720Z","0.1.1":"2026-05-08T11:17:05.463Z","0.1.2":"2026-05-08T11:30:48.913Z","0.1.3":"2026-07-22T21:09:12.449Z","0.1.4":"2026-07-29T16:51:54.935Z"},"bugs":{"url":"https://github.com/Code-Fundi/code-fundi-mcp/issues"},"author":{"name":"Code Fundi","email":"hi@codefundi.app"},"license":"MIT","homepage":"https://codefundi.app","keywords":["mcp","mcp-server","model-context-protocol","fastmcp","code-fundi","codefundi","codebase-map","blast-radius","code-intelligence","call-graph","dependency-graph","code-search","context-api","rag","llm-context","ai-agent","ai-coding-agent","claude-code","cursor","github-copilot"],"repository":{"type":"git","url":"git+https://github.com/Code-Fundi/code-fundi-mcp.git"},"description":"MCP server for CodeFundi: the codebase map and blast-radius guard for AI coding agents like Claude Code, Cursor, and Copilot.","maintainers":[{"name":"whyweru","email":"wawerufelixprojects@gmail.com"}],"readme":"<p align=\"center\">\n <h2 align=\"center\"><b>Code Fundi</b></h2>\n <p align=\"center\">The Codebase Map for AI Agents, Teams and Applications.</p>\n</p>\n</p>\n<p align=\"center\">\n <img width=\"200px\" src=\"https://github.com/Code-Fundi/.github/blob/main/media/logo-text(colour).png?raw=true\" align=\"center\" alt=\"Code Fundi\" />\n </br>\n</p>\n</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/static/v1?label=Stage&message=Alpha&color=0071f3\" />\n  <a href=\"https://www.gnu.org/licenses/agpl-3.0\">\n    <img src=\"https://img.shields.io/static/v1?label=Licence&message=AGPL%20v3&color=000\" />\n  </a>\n  <br />\n  <a href=\"https://discord.gg/6RJTWCuWZj\">\n    <img src=\"https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white\" />\n  </a>\n  <a href=\"https://twitter.com/code_fundi\">\n    <img src=\"https://img.shields.io/badge/Twitter-00acee?logo=twitter&logoColor=white\" />\n  </a>\n  <a href=\"https://www.tiktok.com/@codefundi\">\n    <img src=\"https://img.shields.io/badge/TikTok-000000?logo=tiktok&logoColor=white\" />\n  </a>\n<br />\n</p>\n\n# Code-Fundi MCP Server\n\nA production-grade [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the [Code-Fundi](https://api.codefundi.app) API: a codebase map and blast-radius engine for AI coding agents. Enables any MCP-compatible AI assistant (Claude, Claude Code, Cursor, Windsurf, VS Code Copilot, and more) to search, research, index, and scan code repositories through natural language, and see what a change breaks before it ships.\n\nBuilt with [FastMCP](https://github.com/punkpeye/fastmcp) (TypeScript) and [Zod](https://zod.dev) for schema validation.\n\n## Getting started for AI agents\n\nIf you are an AI agent (or configuring one) and **no `CODEFUNDI_API_KEY` is set**, you must self-authenticate before using search, repos, chat, or other authenticated tools. The auth tools (`code-fundi-auth-*`) work without a pre-existing key.\n\n### Which path to use\n\n| Situation | Action |\n|-----------|--------|\n| `CODEFUNDI_API_KEY` is set in MCP config | Use any tool immediately — the server sends it as `X-API-Key` on every request |\n| No API key configured | Run the **OTP self-auth flow** below (recommended) or **password sign-in** |\n\n### Zero-config MCP setup (no API key)\n\nYou can start the MCP server without `CODEFUNDI_API_KEY` and authenticate at runtime:\n\n```json\n{\n  \"mcpServers\": {\n    \"code-fundi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@codefundi/code-fundi-mcp\"]\n    }\n  }\n}\n```\n\n### Self-authenticate with OTP (recommended)\n\nCode-Fundi uses Supabase-backed auth (`POST /v2/auth/authenticate`, `/v2/auth/verify`, `/v2/auth/resend`). OTP emails contain a **6-digit code** — magic links are not supported on this path.\n\n1. **Ask the human user for their email address.**\n2. Call **`code-fundi-auth-authenticate`** with:\n   - `auth_mode`: `\"otp\"`\n   - `email`: the user's email\n   - `should_create_user`: `true` for a **new** account, `false` for a **returning** user\n3. Tell the user to check their inbox for a 6-digit code. The API may return `verification_required: true` and `api_key.key_state: \"agent_pending\"` until verification completes.\n4. **Ask the user for the 6-digit OTP** (human-in-the-loop — you cannot guess or bypass this step).\n5. Call **`code-fundi-auth-verify`** with the same `email` and the `token` (6 digits).\n6. On success, the MCP server **automatically configures the API key in memory** for all subsequent tool calls in this session.\n\nIf the code expired or was not received, call **`code-fundi-auth-resend`** with the same `email`, then repeat step 5.\n\n**Example dialogue:**\n\n```\nAgent: What email should I use to sign in to Code-Fundi?\nUser:  dev@example.com\nAgent: [calls code-fundi-auth-authenticate] I've sent a 6-digit code to dev@example.com. Please paste it here.\nUser:  482913\nAgent: [calls code-fundi-auth-verify] You're signed in. I can now search and index your repositories.\n```\n\n### Password sign-in (alternative)\n\nFor existing accounts with a password, call **`code-fundi-auth-authenticate`** with `auth_mode: \"password\"`, the user's `email`, `should_create_user: false`, and the `password` parameter. The MCP client sends the password only in the `X-CodeFundi-Auth-Password` header (never in the JSON body). Production requires HTTPS. Returning users may receive an active API key immediately without a separate verify step.\n\n### After authentication\n\n- The API key is held **in memory** for the lifetime of the MCP server process. It is **not** persisted across IDE or MCP restarts.\n- Recommend the user add the key to their MCP config as `CODEFUNDI_API_KEY` so future sessions start authenticated.\n- A FREE-tier account and API key are created automatically on first signup.\n\n### Errors\n\n| HTTP status | What to do |\n|-------------|------------|\n| **401** Unauthorized | No valid key — run the OTP flow above, or set `CODEFUNDI_API_KEY` |\n| **429** Too many requests | Auth endpoints are rate-limited per IP; wait for `Retry-After` seconds, then retry |\n\n## Features\n\nEvery tool below is backed by the same codebase map: structural dependencies, call graph, and blast radius, indexed once and queried in milliseconds.\n\n- 🔍 **Semantic & grep code search** across your indexed codebase map\n- 🧠 **AI-powered research**: search plus AI analysis in a single call\n- 📦 **Repository management**: index, status, README, listing, public catalog\n- 🛰️ **Repository intelligence**: cross-repo dependency map, blueprint, Blast-Radius Guard (impact analysis before you merge)\n- 📄 **File documentation**: AI-generated docs for any indexed file\n- 📊 **Usage statistics**: query usage, activity, language breakdowns\n- 🔐 **Agent-driven authentication**: sign up/sign in via OTP without pre-configured keys\n- 💬 **AI chat & model insight**: direct conversation with Code-Fundi AI, model catalog, and per-tier limits\n\n## Quick Start\n\n### Install from npm (recommended)\n\nInstall the package (includes a pre-built `dist/`). The `code-fundi-mcp` binary is on your `PATH` when installed globally, or available via `npx` without cloning the repo:\n\n```bash\nnpm install -g @codefundi/code-fundi-mcp\n```\n\nOr add it to a project:\n\n```bash\nnpm install @codefundi/code-fundi-mcp\n```\n\n### Install from source (this repository)\n\n```bash\ngit clone https://github.com/Code-Fundi/code-fundi-mcp.git\ncd code-fundi-mcp\nnpm install\nnpm run build\n```\n\n### Configure\n\n**Option A — API key (fastest):** set your key as an environment variable:\n\n```bash\nexport CODEFUNDI_API_KEY=your_api_key_here\n```\n\n**Option B — no API key:** skip the env var and let the agent self-authenticate at runtime. See [Getting started for AI agents](#getting-started-for-ai-agents).\n\nZero-config MCP example (no `env` block):\n\n```json\n{\n  \"mcpServers\": {\n    \"code-fundi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@codefundi/code-fundi-mcp\"]\n    }\n  }\n}\n```\n\n### Use with Claude Desktop\n\nAfter a global install (`npm i -g @codefundi/code-fundi-mcp`), point MCP at the published binary (no path to `dist/index.js` required):\n\n```json\n{\n  \"mcpServers\": {\n    \"code-fundi\": {\n      \"command\": \"@codefundi/code-fundi-mcp\",\n      \"env\": {\n        \"CODEFUNDI_API_KEY\": \"your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\nIf the binary is not on your `PATH`, use `npx` (downloads or uses the local package and runs the same entrypoint):\n\n```json\n{\n  \"mcpServers\": {\n    \"code-fundi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@codefundi/code-fundi-mcp\"],\n      \"env\": {\n        \"CODEFUNDI_API_KEY\": \"your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Use with Cursor\n\nSame pattern as Claude: `command` plus optional `args` only, no manual path to the repo:\n\n```json\n{\n  \"mcpServers\": {\n    \"code-fundi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@codefundi/code-fundi-mcp\"],\n      \"env\": {\n        \"CODEFUNDI_API_KEY\": \"your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\nWhen developing **inside this repo**, you can run `npm run dev` or `npx tsx src/index.ts` without building first.\n\n### Development Mode\n\n```bash\nnpm run dev                          # Run with tsx (no build needed)\nnpx fastmcp inspect src/index.ts    # Open MCP Inspector UI\nnpx fastmcp dev src/index.ts        # Test with MCP CLI\n```\n\n## Tools Reference (27 tools)\n\nCovers the Code-Fundi **V2** API for codebase mapping and blast-radius analysis: search (including search-with-chat / research), repositories (list, index, status, readme, public catalog), repository intelligence (map, blueprint, radius), files, history, statistics, API keys, authentication, plus **Fundi chat** (`POST /v1/fundi/chat`) and the V2 model catalog / limits (`GET /v2/models`, `GET /v2/models/limits`).\n\n### Search\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-search` | Semantic and grep search across your indexed codebase map, with filters |\n| `code-fundi-research` | Search plus AI-synthesized analysis of matching code |\n\n### Repositories\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-list-repos` | List indexed repositories with pagination |\n| `code-fundi-index-repo` | Index a new GitHub repository into your codebase map |\n| `code-fundi-repo-status` | Check repository indexing status |\n| `code-fundi-repo-readme` | Get repository README documentation (deprecated, prefer blueprint) |\n| `code-fundi-list-public-repos` | Browse the global catalog of indexed public repositories (no key needed) |\n\n### Repository Intelligence\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-repo-map` | Cross-repository dependency map: how services and packages actually connect |\n| `code-fundi-repo-blueprint` | README plus dependency and convention overview (successor to repo-readme) |\n| `code-fundi-repo-radius` | Blast-Radius Guard: every file and function that breaks before you merge (PRO+) |\n\n### Files\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-list-files` | List files in a repository |\n| `code-fundi-file-docs` | Get AI-generated file documentation |\n\n### History\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-list-history` | List query history with filters |\n| `code-fundi-history-item` | Get full details of a history entry |\n| `code-fundi-conversation` | Get conversation thread messages |\n\n### Statistics\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-usage-stats` | Query-type usage breakdown |\n| `code-fundi-activity-stats` | Daily activity statistics |\n| `code-fundi-language-stats` | Programming language usage |\n\n### Authentication\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-auth-authenticate` | Start OTP/password auth flow (no key needed) |\n| `code-fundi-auth-verify` | Verify OTP code and obtain API key |\n| `code-fundi-auth-resend` | Resend OTP verification email |\n| `code-fundi-list-api-keys` | List API keys (masked) |\n| `code-fundi-regenerate-api-key` | Regenerate API key |\n| `code-fundi-disable-api-key` | Disable an API key by ID (`DELETE /v2/keys/{key_id}`) |\n\n### Chat & Models\n\n| Tool | Description |\n|------|-------------|\n| `code-fundi-chat` | Fundi AI chat (`POST /v1/fundi/chat`; streamed responses are collected to text) |\n| `code-fundi-list-models` | List the curated chat model catalog (`GET /v2/models`) |\n| `code-fundi-model-limits` | Get AI model limits and tier configuration (`GET /v2/models/limits`) |\n\n## Authentication\n\nTwo modes: **pre-configured API key** (`CODEFUNDI_API_KEY` in MCP config) or **agent-driven OTP/password auth** at runtime. Full step-by-step instructions, tool names, and error handling are in [Getting started for AI agents](#getting-started-for-ai-agents) at the top of this README.\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `CODEFUNDI_API_KEY` | No* | — | API key for authentication |\n| `CODEFUNDI_BASE_URL` | No | `https://api.codefundi.app` | API base URL override |\n\n\\* Required unless using agent-driven auth tools.\n\n## License\n\nMIT","readmeFilename":"README.md"}