The External Brain for AI Coding Agents — see what your LLM can't see. Provides instant, structured intelligence about your entire codebase without reading files into the AI's context window.
Project description
Blindspot MCP
Blindspot is a local, general-purpose context engine for AI coding agents.
It exists for one job:
- help the agent understand a project
- help the agent understand symbols and relationships
- help the agent estimate change impact before editing
- do this across different languages and project layouts
Blindspot is intentionally small. It is not trying to be a deployment system, policy engine, rollout manager, or autonomous edit platform.
Why
Most agents can edit files, search text, and run commands. What they usually lack is a compact, reusable understanding layer for:
- project structure
- symbol ownership
- callers and references
- inheritance and composition
- likely blast radius of a change
That is the gap Blindspot fills.
Paid context engines already proved this model is useful. Blindspot is the local and reusable alternative.
Design Goals
- Small MCP surface
- Works across languages and frameworks
- Gives structured context instead of file dumps
- Helps any agent write better code with fewer blind edits
- Stays useful even when framework-specific intelligence is missing
Language Coverage
Blindspot keeps one public API and improves the engine underneath it.
- Strong support: Python, PHP, JavaScript, TypeScript, Go
- Solid project-structure and syntax-aware support: Dart / Flutter, React Native, Node.js
- Additional generic support: Java, Kotlin, C#, Ruby, Rust, mixed repos
The contract does not change per language. get_context(...) stays the same; only the quality of the internal enrichment improves.
Core Tools
Blindspot now exposes only the core context-engine surface:
set_project_path: call once to bind Blindspot to the repoget_project_snapshot: one-shot repo overview at session startget_context: main entrypoint for file, symbol, relationship, and impact contextget_symbol_body: exact symbol metadata or bounded source excerptget_edit_region: small numbered excerpt around a symbol or line rangesearch_code: fallback text search when structured context is not enoughfind_files: locate candidate files before drilling into one withget_contextrefresh_index: rebuild the shallow file index if discovery gets stalebuild_deep_index: rebuild the deep symbol index for richer relationship analysis
Main Workflow
- Call
set_project_path(...) - Call
get_project_snapshot()once at the start of a session - Before any important edit, call
get_context(target=..., intent="before_edit", symbol=...) - If exact source is needed, call
get_symbol_body(...)orget_edit_region(...) - If the returned context is still insufficient, use
search_code(...)
Tool Selection Rule
Agents should default to get_context.
- Use
get_project_snapshotfor orientation - use
get_contextfor understanding and edit planning - use
get_symbol_bodyfor one symbol - use
get_edit_regionfor a tight excerpt - use
find_filesto locate candidates - use
search_codeonly as fallback - use index rebuild tools only when index data is missing or stale
The Main Idea
The agent should not decide between 40 different analysis tools.
Instead, it should call one entrypoint and receive a normalized context envelope:
projecttargetoverviewfile_contextsymbol_contextrelationship_contextimpact_contextdirect_callersindirect_dependentsblast_radiusrisk_reasonssafe_edit_hintsrelated_filesrelated_file_reasonsmissing_contextconfidenceconfidence_detailsedit_plansuggested_next_steps
That is what get_context(...) returns.
Supported Intents
get_context(...) supports these intents:
projectfilesymbolbefore_editimpact
This keeps the public API small while still covering the main agent workflows.
get_context(...) also accepts change_type:
modifyrenamedeletesignature_changecontract_change
Use a stronger change_type when you want Blindspot to plan a coordinated refactor instead of a local edit.
Install
pip install blindspot-mcp
Claude Code
Add this to ~/.claude/settings.json:
{
"mcpServers": {
"blindspot": {
"command": "blindspot-mcp",
"args": ["--project-path", "/path/to/your/project"]
}
}
}
Cursor / VS Code
Add this to .cursor/mcp.json:
{
"mcpServers": {
"blindspot": {
"command": "blindspot-mcp",
"args": ["--project-path", "."]
}
}
}
Example
Developer: Change the User status behavior
Agent:
1. get_project_snapshot()
2. get_context(target="app/models/user.py", intent="before_edit", symbol="is_active")
3. get_symbol_body("app/models/user.py", "is_active")
4. edit with full awareness of related files and likely impact
What Blindspot Does Not Try To Be
- a code editor
- a release gate system
- a deployment orchestrator
- a policy approval workflow
- a giant framework tool catalog
Those concerns make the product noisier and make agents choose tools instead of understanding code.
Local-First
Blindspot runs locally and analyzes the codebase on your machine.
Current Product Direction
Blindspot should become:
- a stable context layer any AI agent can use
- easy to plug into different editors and agent runtimes
- reliable across Python, PHP, TypeScript, JavaScript, Go, Java, Ruby, Rust, C#, and mixed repos
- reliable across Dart / Flutter, React Native, Node.js, and mixed monorepos
- useful even in plain projects with no heavy framework detection
The standard for success is simple:
- fewer blind edits
- better relationship awareness
- better change impact awareness
- better code written by the agent
Development
Run the core test suite:
python3 -m unittest tests.test_context_engine_service -v
Run the lightweight context evaluation harness:
.venv/bin/python evals/run_context_eval.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blindspot_mcp-0.2.0.tar.gz.
File metadata
- Download URL: blindspot_mcp-0.2.0.tar.gz
- Upload date:
- Size: 171.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c84d95acef869365e0d5372b71acd0666b4037b911335f2fbe4b772258229378
|
|
| MD5 |
817c77d9385879d3d336a07348713c2b
|
|
| BLAKE2b-256 |
9a5ed02e54868b290cd1c26cefe5dc1a263f8b240d7a3c385fe1309f37009530
|
File details
Details for the file blindspot_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: blindspot_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 189.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28a5987787ec55e1d140333d37a477f9e1e101198ad85ad3cea6fe1755513eb4
|
|
| MD5 |
6c61cfd7d94d4ebf00038509c8b607af
|
|
| BLAKE2b-256 |
a38f5002462fba222e8d60164cb68348cc578c985f4d38ecaa1fc14b425da577
|