| name | explore-source |
| description | Explore and understand source code using graph_mcp. Always start with semantic_search for fast relevance, then trace call graphs. Default db=neo4j, project_id=hyperdev. |
| version | 1.0.0 |
| last_updated | "2026-05-25T00:00:00.000Z" |
Explore Source Code — graph_mcp
Always-on defaults: db="neo4j", project_id="hyperdev"
Activate once per session to set session-wide defaults:
activate_project(database_name="neo4j")
1. Find — Always Start with semantic_search
semantic_search uses vector embeddings — it matches meaning, not just keywords.
semantic_search(query="<describe what the code does>", db="neo4j", project_id="hyperdev", top_k=10)
explore_graph(query="<natural language>", mode="hybrid", db="neo4j", top_k=10)
search_functions(query="ClassName|funcName", db="neo4j")
search_by_code(query="exact_string_in_code", db="neo4j")
2. Inspect
get_symbol(node_id="<id>", db="neo4j")
get_node_details(node_ids=["id1", "id2"], db="neo4j")
3. Call Graph (who calls whom)
query_subgraph(function_id="<id>", direction="both", max_depth=2, db="neo4j")
find_paths(start_function_id="<id_a>", end_function_id="<id_b>", db="neo4j")
trace_flow(start_id="<id>", end_id="<id>", rel_types=["CALLS", "POSSIBLE_CALLS"], db="neo4j")
4. Module / File Level
listup_symbols_matching_file_path(modules=["path/fragment"], db="neo4j")
list_up_entrypoint(modules=["path/fragment"], db="neo4j")
find_path_between_module(source_modules=["A"], target_modules=["B"], db="neo4j")
5. Impact & API Chain
analyze_workflow_impact(function_id="<id>", db="neo4j")
find_callers_of_endpoint(endpoint_path="/api/path", db="neo4j")
get_api_call_chain(component_name="ScreenName", db="neo4j")
Quick Decision Table
| Goal | Tool |
|---|
| Find by meaning/description | semantic_search ← start here |
| Find by name (fuzzy) | search_functions |
| Find by code text | search_by_code |
| Who calls function X? | query_subgraph(direction="in") |
| What does X call? | query_subgraph(direction="out") |
| Path from A to B | find_paths |
| All symbols in a file | listup_symbols_matching_file_path |
| Module A → Module B paths | find_path_between_module |
| Blast radius before change | analyze_workflow_impact |
| FE → BE → DB chain | get_api_call_chain |
Extended patterns: references/query-patterns.md