157 lines
5.5 KiB
Python
157 lines
5.5 KiB
Python
"""MCP tool definitions for the Code Review Graph server.
|
|
|
|
Exposes 27 tools:
|
|
1. build_or_update_graph - full or incremental build
|
|
2. get_impact_radius - blast radius from changed files
|
|
3. query_graph - predefined graph queries
|
|
4. get_review_context - focused subgraph + review prompt
|
|
5. semantic_search_nodes - keyword + vector search across nodes
|
|
6. list_graph_stats - aggregate statistics
|
|
7. embed_graph - compute vector embeddings for semantic search
|
|
8. get_docs_section - token-optimized documentation retrieval
|
|
9. find_large_functions - find oversized functions/classes by line count
|
|
10. list_flows - list execution flows sorted by criticality
|
|
11. get_flow - get details of a single execution flow
|
|
12. get_affected_flows - find flows affected by changed files
|
|
13. list_communities - list detected code communities
|
|
14. get_community - get details of a single community
|
|
15. get_architecture_overview - architecture overview from community structure
|
|
16. detect_changes - risk-scored change impact analysis for code review
|
|
17. refactor_tool - unified refactoring (rename preview, dead code, suggestions)
|
|
18. apply_refactor_tool - apply a previously previewed refactoring
|
|
19. generate_wiki - generate markdown wiki from community structure
|
|
20. get_wiki_page - retrieve a specific wiki page
|
|
21. list_repos - list registered repositories
|
|
22. cross_repo_search - search across all registered repositories
|
|
23. get_hub_nodes - find most connected nodes (architectural hotspots)
|
|
24. get_bridge_nodes - find architectural chokepoints (betweenness centrality)
|
|
25. get_knowledge_gaps - identify structural weaknesses
|
|
26. get_surprising_connections - find unexpected architectural coupling
|
|
27. get_suggested_questions - auto-generated review questions from graph analysis
|
|
28. traverse_graph - BFS/DFS traversal from best-matching node
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
# Re-export names that external code may patch via "code_review_graph.tools.*"
|
|
from ..changes import parse_diff_ranges as parse_diff_ranges
|
|
from ..changes import parse_git_diff_ranges as parse_git_diff_ranges
|
|
from ..changes import parse_svn_diff_ranges as parse_svn_diff_ranges
|
|
from ..incremental import (
|
|
get_changed_files as get_changed_files,
|
|
)
|
|
from ..incremental import (
|
|
get_staged_and_unstaged as get_staged_and_unstaged,
|
|
)
|
|
|
|
# -- _common ----------------------------------------------------------------
|
|
from ._common import (
|
|
_BUILTIN_CALL_NAMES,
|
|
_get_store,
|
|
_validate_repo_root,
|
|
)
|
|
|
|
# -- analysis_tools ---------------------------------------------------------
|
|
from .analysis_tools import (
|
|
get_bridge_nodes_func,
|
|
get_hub_nodes_func,
|
|
get_knowledge_gaps_func,
|
|
get_suggested_questions_func,
|
|
get_surprising_connections_func,
|
|
)
|
|
|
|
# -- build ------------------------------------------------------------------
|
|
from .build import build_or_update_graph, run_postprocess
|
|
|
|
# -- community_tools --------------------------------------------------------
|
|
from .community_tools import (
|
|
get_architecture_overview_func,
|
|
get_community_func,
|
|
list_communities_func,
|
|
)
|
|
|
|
# -- context ----------------------------------------------------------------
|
|
from .context import get_minimal_context
|
|
|
|
# -- docs -------------------------------------------------------------------
|
|
from .docs import embed_graph, generate_wiki_func, get_docs_section, get_wiki_page_func
|
|
|
|
# -- flows_tools ------------------------------------------------------------
|
|
from .flows_tools import get_flow, list_flows
|
|
|
|
# -- query ------------------------------------------------------------------
|
|
from .query import (
|
|
find_large_functions,
|
|
get_impact_radius,
|
|
list_graph_stats,
|
|
query_graph,
|
|
semantic_search_nodes,
|
|
traverse_graph_func,
|
|
)
|
|
|
|
# -- refactor_tools ---------------------------------------------------------
|
|
from .refactor_tools import apply_refactor_func, refactor_func
|
|
|
|
# -- registry_tools ---------------------------------------------------------
|
|
from .registry_tools import cross_repo_search_func, list_repos_func
|
|
|
|
# -- review -----------------------------------------------------------------
|
|
from .review import (
|
|
detect_changes_func,
|
|
get_affected_flows_func,
|
|
get_review_context,
|
|
)
|
|
|
|
__all__ = [
|
|
# _common
|
|
"_BUILTIN_CALL_NAMES",
|
|
"_get_store",
|
|
"_validate_repo_root",
|
|
# build
|
|
"build_or_update_graph",
|
|
"run_postprocess",
|
|
# context
|
|
"get_minimal_context",
|
|
# community_tools
|
|
"get_architecture_overview_func",
|
|
"get_community_func",
|
|
"list_communities_func",
|
|
# docs
|
|
"embed_graph",
|
|
"generate_wiki_func",
|
|
"get_docs_section",
|
|
"get_wiki_page_func",
|
|
# flows_tools
|
|
"get_flow",
|
|
"list_flows",
|
|
# query
|
|
"find_large_functions",
|
|
"get_impact_radius",
|
|
"list_graph_stats",
|
|
"query_graph",
|
|
"semantic_search_nodes",
|
|
"traverse_graph_func",
|
|
# refactor_tools
|
|
"apply_refactor_func",
|
|
"refactor_func",
|
|
# registry_tools
|
|
"cross_repo_search_func",
|
|
"list_repos_func",
|
|
# review
|
|
"detect_changes_func",
|
|
"get_affected_flows_func",
|
|
"get_review_context",
|
|
# analysis_tools
|
|
"get_bridge_nodes_func",
|
|
"get_hub_nodes_func",
|
|
"get_knowledge_gaps_func",
|
|
"get_suggested_questions_func",
|
|
"get_surprising_connections_func",
|
|
# re-exported for backward compat (used in test patches)
|
|
"get_changed_files",
|
|
"get_staged_and_unstaged",
|
|
"parse_git_diff_ranges",
|
|
"parse_svn_diff_ranges",
|
|
"parse_diff_ranges",
|
|
]
|