Repository knowledge graph MCP server for codebase understanding and debugging.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Every function/method the given function calls -- what it depends on to do its job. Use this to understand a function's behavior by seeing what it delegates to, before assuming what it does from its name alone.
The bare function/method name (e.g. "sync_repository").
Every function/method the given function calls -- what it depends on to do its job. Use this to understand a function's behavior by seeing what it delegates to, before assuming what it does from its name alone.
| Argument | Type | Description |
|---|---|---|
| function_name* | string | The bare function/method name (e.g. "sync_repository"). |
{
"type": "object",
"required": [
"function_name"
],
"properties": {
"function_name": {
"type": "string",
"description": "The bare function/method name (e.g. \"sync_repository\")."
}
},
"additionalProperties": false
}Every place in this repo that calls the given function or method -- a COMPLETE list from the parsed call graph, not a best-effort guess. Use this before renaming/changing a function's signature, or when you need to understand a function's blast radius before modifying it.
| Argument | Type | Description |
|---|---|---|
| function_name* | string | The bare function/method name (e.g. "save_user"). If multiple unrelated symbols share this name, results are grouped by which definition they call. |
{
"type": "object",
"required": [
"function_name"
],
"properties": {
"function_name": {
"type": "string",
"description": "The bare function/method name (e.g. \"save_user\").\nIf multiple unrelated symbols share this name, results are\ngrouped by which definition they call."
}
},
"additionalProperties": false
}What a specific file imports/depends on. Use this to understand a file's place in the codebase before assuming what's available to it, or before moving/refactoring it.
| Argument | Type | Description |
|---|---|---|
| file_path* | string | Repo-relative path (e.g. "utils/knowledge_graph/graph_builder.py"). Matches by exact path first, then by suffix if no exact match (so "graph_builder.py" alone will still resolve if unambiguous). |
{
"type": "object",
"required": [
"file_path"
],
"properties": {
"file_path": {
"type": "string",
"description": "Repo-relative path (e.g. \"utils/knowledge_graph/graph_builder.py\").\nMatches by exact path first, then by suffix if no exact match\n(so \"graph_builder.py\" alone will still resolve if unambiguous)."
}
},
"additionalProperties": false
}Finds where a function, class, or method is actually defined in this repo -- exact file, line range, and signature-relevant metadata (async, decorators, docstring if present). Use this before assuming a symbol's location/signature from memory or from a similarly-named symbol in a different file.
| Argument | Type | Description |
|---|---|---|
| name* | string | The bare symbol name (e.g. "get_upstream_impact"), or "ClassName.method_name" for a specific method when the bare name is ambiguous across multiple classes. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The bare symbol name (e.g. \"get_upstream_impact\"), or\n\"ClassName.method_name\" for a specific method when the bare\nname is ambiguous across multiple classes."
}
},
"additionalProperties": false
}Hybrid semantic + keyword search over the connected repository's actual indexed content. Use this for open-ended questions ("where is rate limiting implemented?", "how are uploads validated?") where you don't already know an exact symbol or file name -- for those, use get_symbol_definition or get_dependencies instead, they're more precise.
| Argument | Type | Description |
|---|---|---|
| query* | string | Natural-language or keyword description of what you're looking for. |
| top_k | integer | Max number of results to return (default 8, max 20). |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Natural-language or keyword description of what you're looking for."
},
"top_k": {
"type": "integer",
"default": 8,
"description": "Max number of results to return (default 8, max 20)."
}
},
"additionalProperties": false
}