Maps & Geo
filescope-mcp - Claude MCP Skill
Codebase intelligence via FileScopeMCP — symbol lookup, dependency mapping, importance ranking, and semantic search. Use when navigating unfamiliar code, planning refactors, assessing change impact, or finding entry points in a large project.
SEO Guide: Enhance your AI agent with the filescope-mcp tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to codebase intelligence via filescopemcp — symbol lookup, dependency mapping, importance ranking, and ... Download and configure this skill to unlock new capabilities for your AI workflow.
🌟291 stars • 32 forks
📥0 downloads
Documentation
SKILL.md# FileScopeMCP Tool Guide
FileScopeMCP is an MCP server that indexes your codebase and exposes it as tools. This skill teaches you when and how to use each tool effectively.
## Getting Oriented in a New Codebase
Start here when you enter an unfamiliar project:
1. **`status()`** — verify FileScopeMCP is initialized and healthy. Check file count, broker state, last update time.
2. **`find_important_files(maxItems: 10)`** — see the top 10 most critical files. These are your entry points.
3. **`get_file_summary(filepath)`** — read the summary of each important file. Gives you: what it does, what it depends on, what depends on it, exported symbols.
This three-step sequence gives you a working mental model in seconds.
## Tool Reference
### Navigation Tools
**`find_symbol(name, kind?, exportedOnly?)`**
Resolve a symbol name to its file + line range. Exact case-sensitive match. Trailing `*` enables prefix match.
- Use when you know a function/class name but not where it lives
- `kind` accepts: function, class, interface, type, enum, const, module, struct
- `exportedOnly` defaults true — pass false to find private helpers
- Example: `find_symbol("processFile")` → `{path: "src/coordinator.ts", startLine: 142, endLine: 198}`
**`search(query, maxItems?)`**
Semantic search across symbols, summaries, purposes, and paths. Ranked results.
- Use when you have a concept ("authentication", "rate limiting") but no exact name
- Searches LLM-generated summaries, so it understands intent not just strings
- Example: `search("dependency cycle detection")` → files related to circular imports
**`get_file_summary(filepath)`**
Full intelligence on one file: summary, importance, dependencies (with edge types), dependents (with import lines), exported symbols, concepts, change impact, staleness.
- Use before editing any file to understand its role and blast radius
- `importLines` in dependents tells you exactly where each consumer imports from this file
### Dependency Analysis
**`find_callers(name, filePath?, maxItems?)`**
Every symbol that calls the named symbol. Case-sensitive exact match.
- Use before renaming or changing a function's signature
- `filePath` disambiguates when multiple files define the same name
- Currently supports TS/JS call-site edges
**`find_callees(name, filePath?, maxItems?)`**
Every symbol the named symbol calls.
- Use to understand what a function depends on before modifying it
- Helps trace execution flow through the codebase
**`detect_cycles()`**
All circular dependency groups in the project.
- Use to identify tightly-coupled modules before refactoring
- Returns cycle groups (arrays of file paths)
**`get_cycles_for_file(filepath)`**
Cycles involving one specific file.
- Use when you suspect a file is part of a circular dependency
**`get_communities(file_path?)`**
Louvain-clustered file communities — groups of tightly coupled files.
- Use to understand module boundaries and which files change together
- Filter to one file's community to see its neighborhood
### Project-Level Tools
**`list_files(maxItems?)`**
All tracked files. Without maxItems: nested directory tree. With maxItems: flat list sorted by importance.
- Use for broad project overview
- Prefer `find_important_files` when you only need the top N
**`find_important_files(maxItems?, minImportance?)`**
Top files by importance with dependency counts and staleness flags.
- Use to find critical files and check if their metadata is stale
**`list_changed_since(since, maxItems?)`**
Files changed since a timestamp or git SHA.
- Use after multi-file edits to see what changed
- Accepts ISO-8601 (`2026-04-23T10:00:00Z`) or git SHA (`860fe61`)
### Mutation Tools
**`set_base_directory(path)`**
Point FileScopeMCP at a different project directory. Re-initializes everything.
- Use when switching between projects in one session
**`set_file_importance(filepath, importance)`**
Override auto-calculated importance (0-10).
- Use when the algorithm undervalues a critical config or entrypoint
**`set_file_summary(filepath, summary)`**
Override LLM-generated summary.
- Use when auto-summary is wrong or you want custom annotations
**`scan_all(min_importance?, remaining_only?)`**
Queue files for LLM summarization. Requires active broker + LLM backend.
- `remaining_only: true` skips already-summarized files (incremental scan)
- Use after first setup or major codebase changes
**`exclude_and_remove(filepath)`**
Permanently exclude a file/pattern from tracking. DESTRUCTIVE — cannot be undone without re-scan.
- Use for generated files, build artifacts, false positives
- Adds pattern to `.filescopeignore`
## Common Workflows
### "What calls this function and what would break if I change it?"
```
find_callers("functionName") → list of callers
get_file_summary("path/to/file") → see dependents with import lines
```
### "I need to understand this module before editing it"
```
get_file_summary("src/coordinator.ts") → summary, deps, dependents, exports
find_callees("mainExportedFn") → what it calls internally
get_communities("src/coordinator.ts") → its architectural neighborhood
```
### "Where should I add this new feature?"
```
search("authentication middleware") → find related files by concept
find_important_files(maxItems: 5) → see the highest-traffic files
get_file_summary("likely-file.ts") → verify it's the right place
```
### "What changed since my last session?"
```
list_changed_since("abc1234") → files changed since that commit
status() → check for stale summaries
scan_all(remaining_only: true) → refresh any unsummarized files
```
### "Is there a circular dependency problem?"
```
detect_cycles() → all cycle groups
get_cycles_for_file("suspect.ts") → cycles involving one file
```
## Tips
- Call `status()` first if tools return `NOT_INITIALIZED` — the server may need `set_base_directory`.
- `find_symbol` is faster than grep for finding where something is defined.
- `search` understands concepts because it searches LLM summaries, not just text.
- `get_file_summary` is your single best tool — use it before editing anything.
- `unresolvedCount` in caller/callee results means stale edges exist — run `scan_all` to refresh.
- The broker must be connected for `scan_all` to work. Check `status()` for broker state.Signals
Avg rating⭐ 0.0
Reviews0
Favorites0
Information
- Repository
- admica/FileScopeMCP
- Author
- admica
- Last Sync
- 5/10/2026
- Repo Updated
- 5/9/2026
- Created
- 4/26/2026
Reviews (0)
No reviews yet. Be the first to review this skill!