Give your AI coding assistant real code understanding — powered by the same engines VS Code uses
Project description
scope-mcp
A tool that gives your AI coding assistant superpowers. Instead of guessing what your code does, it gets real answers straight from the same engines VS Code uses — so it actually understands functions, classes, types, and where things connect.
No setup. No indexing. Just works.
What's the problem?
When you ask an AI to "find where get_lsp is called," most tools do a text search — like Ctrl+Shift+F. That returns everything named get_lsp: the definition, comments, imports, false positives. You have to dig through the noise.
┌─ grep (text search) ─────────────────────┐
│ project.py:75 def get_lsp(self, lang) │ ← definition (not a call)
│ project.py:110 return await get_lsp(lang)│ ← actual call
│ project.py:117 lsp = await get_lsp(lang) │ ← actual call
│ project.py:81 cfg = LSP_REGISTRY... │ ← noise
│ project.py:109 async def get_lsp_for... │ ← noise
│ 5 results · 3 are noise │
└───────────────────────────────────────────┘
┌─ scope (smart search) ────────────────────┐
│ [call site] project.py:110 │
│ [call site] project.py:117 │
│ 2 results · 0 noise │
└───────────────────────────────────────────┘
Scope asks the compiler instead. You get only what you actually asked for.
→ See the benchmarks — up to 25x fewer tokens, 0% false positives.
What you can do with it
| Instead of digging through files... | Just ask scope... | You get |
|---|---|---|
| Grepping for a function name and filtering out junk | find_references("get_lsp") |
Only the places where it's actually called — no noise |
| Reading a whole file to figure out what's in it | explain_file("server.py") |
A clean summary: language, line count, every function and class |
| Hunting through 50 files to find where an interface is used | implementations("IEventHandler") |
One answer with all the implementations |
| Tracing who calls what by hand | call_hierarchy("validate_token") |
A tree of callers and callees, 3 levels deep |
| Scanning a big diff to see what changed | changed_since("HEAD~3") |
Just the changed files and affected symbols |
How it works
- Scope looks at your project — it spots what languages you're using (Python, TypeScript, Rust, Go, C++) from files like
package.jsonorCargo.toml. - It sets up the brain — launches the same language engine your editor uses (pyright, tsserver, rust-analyzer, gopls). If missing, it installs one automatically.
- Your AI asks, scope answers — every question hits that engine live. No stale data, no sync jobs, no waiting.
AI Assistant (Claude, Codex, etc.) ←→ scope ←→ Language Engine
(pyright, tsserver, etc.)
Setup
Choose the path that fits your workflow:
🚀 Auto-install (recommended)
If you have uv installed, uvx will auto-install scope on first run — no pip install needed.
Claude Desktop
File: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"scope": {
"command": "uvx",
"args": ["scope-mcp", "--project", "."]
}
}
}
Cursor
Settings → Cursor Settings → MCP → Add new MCP server
Name: scope
Type: command
Command: uvx scope-mcp --project .
Windsurf
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"scope": {
"command": "uvx",
"args": ["scope-mcp", "--project", "."]
}
}
}
VS Code (GitHub Copilot)
File: .vscode/mcp.json (project-level) or ~/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/mcp.json
{
"servers": {
"scope": {
"command": "uvx",
"args": ["scope-mcp", "--project", "."]
}
}
}
📦 Manual install
pip install scope-mcp
Then use scope instead of uvx scope-mcp in your config:
command: scope
args: ["--project", "."]
🔧 From source
git clone https://github.com/deviprasadshetty-dev/scope.git
cd scope
pip install -e .
Optional extras: rg (ripgrep) for text searches, git for change tracking.
🤖 One-click agent setup
Copy-paste this to your AI coding agent and it will set up scope for you automatically:
Install and configure scope-mcp for this project.
- Check if
uvis installed — if yes, useuvx scope-mcp --project .in the MCP config (it auto-installs on first run). If not,pip install scope-mcpfirst and usescope --project ..- Find my editor's MCP config and add the scope server entry:
- Claude Desktop:
claude_desktop_config.json- Cursor: Cursor Settings → MCP
- Windsurf:
mcp_config.json- VS Code Copilot:
.vscode/mcp.json- Verify — use the
scope_statustool to confirm it's running.Actually do it — don't just show me the config, edit the file.
Languages scope understands
| Language | Detected when it sees... | Scope handles setup |
|---|---|---|
| Python | pyproject.toml · setup.py · requirements.txt |
✅ Installs pyright automatically |
| TypeScript / JavaScript | tsconfig.json · package.json |
✅ Installs tsserver automatically |
| Rust | Cargo.toml |
✅ Installs rust-analyzer automatically |
| Go | go.mod |
✅ Installs gopls automatically |
| C / C++ | CMakeLists.txt · compile_commands.json |
⚠️ You install clangd manually |
Project layout
scope/
├── __init__.py
├── __main__.py # Where scope starts — just runs `scope --project .`
├── server.py # All the commands (tools) your AI can call
├── project.py # Figures out your project and starts language engines
├── lsp_client.py # Talks to language engines behind the scenes
└── lsp_registry.py # Knows which engine to use for each language
Requirements
- Python 3.11 or newer
- ripgrep (optional, for text search)
- git (optional, for change tracking)
License
MIT
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 scope_mcp-0.1.4.tar.gz.
File metadata
- Download URL: scope_mcp-0.1.4.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
139a01f86976cae978a778dd1c600c2600143cbaf1aec1eb14aa4c95f3baad31
|
|
| MD5 |
af6b9c6c3e0aa08c2c2522b60a9d318f
|
|
| BLAKE2b-256 |
a5b1812d9604b7e4dbf1925c581405f49feaa3bebaa7e8e5dc59bbc9a57fd876
|
File details
Details for the file scope_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: scope_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cbd16583e449a885036000bf7c3b92053b9bdba663fa428a61068a019584a87
|
|
| MD5 |
80e967e8341c8aa9e9401d12303b5733
|
|
| BLAKE2b-256 |
6c82a5e331f6dd972992f9faae4862810f4b99763b8b80d1713b9a865557d1bc
|