Ferret MCP
An MCP server that extracts complete knowledge from any codebase — architecture, patterns, dependencies, API surface. Combines static analysis with AI-powered deep interpretation.
Works with any MCP client: Claude Code, Claude Desktop, Cursor, and more.
Give it a repo, get a senior engineer's analysis in 30 seconds for ~$0.09.
Quickstart
Install & run with uvx (no clone needed)
uvx ferret-mcp
Or install with pip
pip install ferret-mcp
MCP Client Setup
Claude Code
claude mcp add ferret -- uvx ferret-mcp
To enable AI-powered tools (deep, ask), set your API key:
claude mcp add ferret -e FERRET_LLM_API_KEY=sk-ant-... -- uvx ferret-mcp
Claude Desktop / Cursor / Windsurf / any MCP client
Add to your MCP config file (claude_desktop_config.json, .cursor/mcp.json, etc.):
{
"mcpServers": {
"ferret": {
"command": "uvx",
"args": ["ferret-mcp"],
"env": {
"FERRET_LLM_API_KEY": "sk-ant-..."
}
}
}
}
Local development
git clone https://github.com/fabdendev/ferret-mcp.git
cd ferret-mcp
cp .env.example .env # Add your API key
uv sync
uv run ferret-mcp
Tools
Static Analysis (free, no LLM required)
| Tool | Description |
|---|---|
scan |
Repository overview — languages, structure, entry points, config files |
dependencies |
External packages + internal import graph with core modules |
architecture |
Layers, architectural patterns, module breakdown |
patterns |
Design patterns, naming conventions, testing, error handling |
api_surface |
REST endpoints, MCP tools, CLI commands, GraphQL, gRPC, exports |
full_extraction |
All of the above in one comprehensive report |
AI-Powered (~$0.09/report with Haiku)
| Tool | Description |
|---|---|
deep |
Comprehensive Knowledge Extraction Report — 10-section expert analysis covering architecture, data flow, strengths, risks, and learning takeaways |
ask |
Ask any question about a repo, answered with full codebase context |
All tools take a path argument — the absolute path to the repository root directory.
Configuration
AI-powered tools (deep, ask) require an LLM. Configure via environment variables:
| Env Var | Default | Description |
|---|---|---|
FERRET_LLM_PROVIDER |
anthropic |
anthropic or openai (for Ollama, vLLM, LM Studio) |
FERRET_LLM_MODEL |
claude-haiku-4-5-20251001 |
Model name |
FERRET_LLM_API_KEY |
— | API key (required for Anthropic; ollama for local) |
FERRET_LLM_BASE_URL |
http://localhost:11434/v1 |
Base URL for OpenAI-compatible providers |
Use with a local LLM (Ollama)
claude mcp add ferret \
-e FERRET_LLM_PROVIDER=openai \
-e FERRET_LLM_BASE_URL=http://localhost:11434/v1 \
-e FERRET_LLM_MODEL=qwen3:8b \
-- uvx ferret-mcp
Example Output
The deep tool produces a ~1000-line Knowledge Extraction Report covering:
- Executive Summary — what it is, what stage, honest assessment
- Architecture Deep Dive — patterns, modules, dependency direction, God Objects
- Technology Stack & Rationale — why each choice was made
- Data & Control Flow — ASCII diagrams, execution model
- Design Patterns & Conventions — with file references
- API & Interface Contracts — REST, CLI, MCP, auth model
- Key Files Reading Guide — ordered reading path for new contributors
- Strengths — what's genuinely well-designed
- Risks & Technical Debt — brutal, specific, with fixes
- Learning Takeaways — what to steal, what to avoid
Limitations
.gitignoreparsing only reads the root-level file (nested.gitignorefiles are not honored)- Maximum 15,000 files scanned per repository
- File content analysis limited to files under 512 KB
- AI analysis quality depends on the LLM model used (Haiku is fast/cheap, Sonnet/Opus for deeper analysis)
License
MIT
Release files for ferret-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ferret_mcp-0.1.1.tar.gz | 89.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ferret_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.5 kB
Release files / ferret_mcp-0.1.1.tar.gz
| Download URL | ferret_mcp-0.1.1.tar.gz |
|---|---|
| Size | 89.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8fbeec28301c3e269ee277717ce1d5ed6dc4640b677bc1e0c4b619a7e2fec7dc
|
|
BLAKE2b-256 checksum How to use checksums |
e9f8de56896218cc53da348517b932311d578b3704fc134e47b0ec2df0a10992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 3, 2026.
Transparency logRelease files / ferret_mcp-0.1.1-py3-none-any.whl
| Download URL | ferret_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 29.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e20781e4f61d2ba283cfcd5cce904bb5f1b331f07237fb5a59e6df264b8677ba
|
|
BLAKE2b-256 checksum How to use checksums |
04efe326db566df8fe189a888ee6aca7877bcb4717772a4e8d4dc96779d0175f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 3, 2026.
Transparency log