CodeFundi MCP server for codebase mapping and blast-radius analysis.
A production-grade Model Context Protocol (MCP) server for the Code-Fundi 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.
Built with FastMCP (TypeScript) and Zod for schema validation.
If 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.
| Situation | Action |
|---|---|
CODEFUNDI_API_KEY is set in MCP config | Use any tool immediately — the server sends it as X-API-Key on every request |
| No API key configured | Run the OTP self-auth flow below (recommended) or password sign-in |
You can start the MCP server without CODEFUNDI_API_KEY and authenticate at runtime:
{
"mcpServers": {
"code-fundi": {
"command": "npx",
"args": ["-y", "@codefundi/code-fundi-mcp"]
}
}
}
Code-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.
code-fundi-auth-authenticate with:
auth_mode: "otp"email: the user's emailshould_create_user: true for a new account, false for a returning userverification_required: true and api_key.key_state: "agent_pending" until verification completes.code-fundi-auth-verify with the same email and the token (6 digits).If the code expired or was not received, call code-fundi-auth-resend with the same email, then repeat step 5.
Example dialogue:
Agent: What email should I use to sign in to Code-Fundi?
User: dev@example.com
Agent: [calls code-fundi-auth-authenticate] I've sent a 6-digit code to dev@example.com. Please paste it here.
User: 482913
Agent: [calls code-fundi-auth-verify] You're signed in. I can now search and index your repositories.
For 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.
CODEFUNDI_API_KEY so future sessions start authenticated.| HTTP status | What to do |
|---|---|
| 401 Unauthorized | No valid key — run the OTP flow above, or set CODEFUNDI_API_KEY |
| 429 Too many requests | Auth endpoints are rate-limited per IP; wait for Retry-After seconds, then retry |
Every tool below is backed by the same codebase map: structural dependencies, call graph, and blast radius, indexed once and queried in milliseconds.
Install 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:
npm install -g @codefundi/code-fundi-mcp
Or add it to a project:
npm install @codefundi/code-fundi-mcp
git clone https://github.com/Code-Fundi/code-fundi-mcp.git
cd code-fundi-mcp
npm install
npm run build
Option A — API key (fastest): set your key as an environment variable:
export CODEFUNDI_API_KEY=your_api_key_here
Option B — no API key: skip the env var and let the agent self-authenticate at runtime. See Getting started for AI agents.
Zero-config MCP example (no env block):
{
"mcpServers": {
"code-fundi": {
"command": "npx",
"args": ["-y", "@codefundi/code-fundi-mcp"]
}
}
}
After a global install (npm i -g @codefundi/code-fundi-mcp), point MCP at the published binary (no path to dist/index.js required):
{
"mcpServers": {
"code-fundi": {
"command": "@codefundi/code-fundi-mcp",
"env": {
"CODEFUNDI_API_KEY": "your_api_key_here"
}
}
}
}
If the binary is not on your PATH, use npx (downloads or uses the local package and runs the same entrypoint):
{
"mcpServers": {
"code-fundi": {
"command": "npx",
"args": ["-y", "@codefundi/code-fundi-mcp"],
"env": {
"CODEFUNDI_API_KEY": "your_api_key_here"
}
}
}
}
Same pattern as Claude: command plus optional args only, no manual path to the repo:
{
"mcpServers": {
"code-fundi": {
"command": "npx",
"args": ["-y", "@codefundi/code-fundi-mcp"],
"env": {
"CODEFUNDI_API_KEY": "your_api_key_here"
}
}
}
}
When developing inside this repo, you can run npm run dev or npx tsx src/index.ts without building first.
npm run dev # Run with tsx (no build needed)
npx fastmcp inspect src/index.ts # Open MCP Inspector UI
npx fastmcp dev src/index.ts # Test with MCP CLI
Covers 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).
| Tool | Description |
|---|---|
code-fundi-search | Semantic and grep search across your indexed codebase map, with filters |
code-fundi-research | Search plus AI-synthesized analysis of matching code |
| Tool | Description |
|---|---|
code-fundi-list-repos | List indexed repositories with pagination |
code-fundi-index-repo | Index a new GitHub repository into your codebase map |
code-fundi-repo-status | Check repository indexing status |
code-fundi-repo-readme | Get repository README documentation (deprecated, prefer blueprint) |
code-fundi-list-public-repos | Browse the global catalog of indexed public repositories (no key needed) |
| Tool | Description |
|---|---|
code-fundi-repo-map | Cross-repository dependency map: how services and packages actually connect |
code-fundi-repo-blueprint | README plus dependency and convention overview (successor to repo-readme) |
code-fundi-repo-radius | Blast-Radius Guard: every file and function that breaks before you merge (PRO+) |
| Tool | Description |
|---|---|
code-fundi-list-files | List files in a repository |
code-fundi-file-docs | Get AI-generated file documentation |
| Tool | Description |
|---|---|
code-fundi-list-history | List query history with filters |
code-fundi-history-item | Get full details of a history entry |
code-fundi-conversation | Get conversation thread messages |
| Tool | Description |
|---|---|
code-fundi-usage-stats | Query-type usage breakdown |
code-fundi-activity-stats | Daily activity statistics |
code-fundi-language-stats | Programming language usage |
| Tool | Description |
|---|---|
code-fundi-auth-authenticate | Start OTP/password auth flow (no key needed) |
code-fundi-auth-verify | Verify OTP code and obtain API key |
code-fundi-auth-resend | Resend OTP verification email |
code-fundi-list-api-keys | List API keys (masked) |
code-fundi-regenerate-api-key | Regenerate API key |
code-fundi-disable-api-key | Disable an API key by ID (DELETE /v2/keys/{key_id}) |
| Tool | Description |
|---|---|
code-fundi-chat | Fundi AI chat (POST /v1/fundi/chat; streamed responses are collected to text) |
code-fundi-list-models | List the curated chat model catalog (GET /v2/models) |
code-fundi-model-limits | Get AI model limits and tier configuration (GET /v2/models/limits) |
Two 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 at the top of this README.
| Variable | Required | Default | Description |
|---|---|---|---|
CODEFUNDI_API_KEY | No* | — | API key for authentication |
CODEFUNDI_BASE_URL | No | https://api.codefundi.app | API base URL override |
* Required unless using agent-driven auth tools.
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @codefundi/code-fundi-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-felixwaweru-code-fundi-mcp": {
"command": "npx",
"args": [
"-y",
"@codefundi/code-fundi-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@codefundi/code-fundi-mcpnpmio.github.FelixWaweru/code-fundi-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.