git-project-xray-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| explore_repoA | πΊοΈ STEP 1: Map the codebase structure - start simple, then zoom in! PROGRESSIVE DISCOVERY WORKFLOW:
INPUTS:
EXAMPLE 1 - Initial exploration (directory only): explore_repo("/Users/john/project") Returns:/Users/john/project/βββ src/βββ tests/βββ docs/βββ README.mdEXAMPLE 2 - Zoom into src/ with symbols: explore_repo("/Users/john/project", focus_dirs=["src"], include_symbols=True) Returns:/Users/john/project/βββ src/βββ auth.pyβ βββ class AuthService: # Handles user authenticationβ βββ def authenticate(username, password): # Validates credentialsβ βββ def logout(session_id): # Ends user sessionβββ models.pyβββ class User(BaseModel): # User account modelβββ ... and 3 moreEXAMPLE 3 - Limited depth exploration: explore_repo("/Users/john/project", max_depth=1, include_symbols=True) Shows only top-level dirs and files with their symbolsπ‘ PRO TIP: Start with include_symbols=False to see structure, then set it to True for areas you want to examine in detail. This prevents information overload! β‘ PERFORMANCE: Symbol extraction is cached per git commit - subsequent calls are instant! WHAT TO DO NEXT:
|
| find_symbolA | π STEP 2: Find specific functions, classes, or methods in the codebase. USE THIS AFTER explore_repo() when you need to locate a specific piece of code. Uses fuzzy matching - you don't need the exact name! INPUTS:
EXAMPLE INPUTS: find_symbol("/Users/john/awesome-project", "authenticate") find_symbol("/Users/john/awesome-project", "user model") # Fuzzy matches "UserModel" EXAMPLE OUTPUT: [ { "name": "authenticate_user", "type": "function", "path": "/Users/john/awesome-project/src/auth.py", "start_line": 45, "end_line": 67 }, { "name": "AuthService", "type": "class", "path": "/Users/john/awesome-project/src/services.py", "start_line": 12, "end_line": 89 } ] RETURNS: List of symbol objects (dictionaries). Save these objects - you'll pass them to what_breaks()! Empty list if no matches found. WHAT TO DO NEXT: Pick a symbol from the results and pass THE ENTIRE SYMBOL OBJECT to what_breaks() to see where it's used in the codebase. |
| what_breaksA | π₯ STEP 3: See what code might break if you change this symbol. USE THIS AFTER find_symbol() to understand the impact of changing a function/class. Shows you every place in the codebase where this symbol name appears. INPUT:
EXAMPLE INPUT: First, get a symbol from find_symbol():symbols = find_symbol("/Users/john/project", "authenticate") symbol = symbols[0] # Pick the first result Then pass THE WHOLE SYMBOL OBJECT:what_breaks(symbol) or directly:what_breaks({ "name": "authenticate_user", "type": "function", "path": "/Users/john/project/src/auth.py", "start_line": 45, "end_line": 67 }) EXAMPLE OUTPUT: { "references": [ { "file": "/Users/john/project/src/api.py", "line": 23, "text": " user = authenticate_user(username, password)" }, { "file": "/Users/john/project/tests/test_auth.py", "line": 45, "text": "def test_authenticate_user():" } ], "total_count": 2, "note": "Found 2 potential references based on a text search for the name 'authenticate_user'. This may include comments, strings, or other unrelated symbols." } β οΈ IMPORTANT: This does a text search for the name, so it might find:
Review each reference to determine if it's actually affected. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a distinct, non-overlapping purpose: explore_repo for directory structure, find_symbol for locating code symbols, and what_breaks for impact analysis. The workflow is clearly sequenced, so an agent can easily select the right tool for each step.
All tool names follow a consistent verb_noun pattern (explore_repo, find_symbol, what_breaks). The names are descriptive and align with their functions, with 'what_breaks' being a slight phrase but still fitting the pattern.
With only 3 tools, the server is tightly scoped to a progressive discovery workflow. Each tool earns its place, and the count is ideal for the focused purpose of code exploration and impact analysis.
The tools cover the core workflow of exploring structure, finding symbols, and checking references. Missing features like direct file content reading or diff analysis are minor given the stated use case, but they are not critical gaps.