# MCP Tools and Prompts Exposed by the Code-Review-Graph Server: Complete Reference

> Discover MCP tools and prompts exposed by the code-review-graph server. Explore 14+ endpoints and 5 prompt templates for efficient code review workflows.

- Repository: [Tirth Kanani/code-review-graph](https://github.com/tirth8205/code-review-graph)
- Tags: api-reference
- Published: 2026-08-11

---

**The Code-Review-Graph server exposes 14+ MCP tool endpoints and 5 prompt templates for code review workflows, all registered via FastMCP decorators in [`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py).**

The **Code-Review-Graph** repository (`tirth8205/code-review-graph`) provides an **MCP (Model-Centric Programming)** service built on FastMCP. When you run `code-review-graph serve`, the server registers a comprehensive set of tool and prompt endpoints that LLM clients can invoke for intelligent code review. This article catalogs every MCP tool and prompt template exposed by the server, with source file references and usage examples.

---

## Graph Lifecycle and Change Detection Tools

### `build_or_update_graph_tool`

(Re)builds the knowledge graph for a repository. Supports **incremental updates** or **full rebuilds** via the `force` parameter.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 99-119](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L99-L119)

```python

# Example: Incremental update

client.call("build_or_update_graph_tool", repo_root="/path/to/repo", force=False)

# Example: Force full rebuild

client.call("build_or_update_graph_tool", repo_root="/path/to/repo", force=True)

```

### `detect_changes_tool`

Detects git changes, scores risk, and produces a **prioritized review guide**. This is the entry point for automated PR review workflows.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 632-667](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L632-L667)

---

## Impact Analysis and Query Tools

### `get_impact_radius_tool`

Traverses the graph to show which nodes and files are affected by a set of changed files. Essential for understanding **blast radius** of modifications.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 219-241](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L219-L241)

```python
resp = client.call(
    "get_impact_radius_tool",
    changed_files=["src/auth.py", "src/models/user.py"],
    max_depth=2,
    detail_level="minimal"  # or "full"

)
print(resp["affected_files"])
print(resp["risk_score"])

```

### `query_graph_tool`

Executes **predefined query patterns**: `callers_of`, `callees_of`, `tests_for`, `implements`, `depends_on`, and more.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 246-285](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L246-L285)

---

## Search and Statistics Tools

### `semantic_search_nodes_tool`

Performs **hybrid keyword + embedding search** over graph nodes. Combines SQLite FTS with vector similarity for accurate code discovery.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 307-354](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L307-L354)

```python
results = client.call(
    "semantic_search_nodes_tool",
    query="user authentication middleware",
    kind="Function",  # or "Class", "Module", "File"

    limit=10,
    hybrid_weight=0.7  # 0=keyword only, 1=embedding only

)

```

### `list_graph_stats_tool`

Returns repository-wide statistics: total nodes, edges, languages detected, last update timestamp, and storage size.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 408-420](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L408-L420)

---

## Community, Flow, and Traversal Tools

| Tool | Purpose | Source |
|------|---------|--------|
| `list_communities_tool` | Enumerate **code communities** (clusters of related modules) | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 546-560](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L546-L560) |
| `list_flows_tool` | List execution flows extracted from call graphs | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 561-575](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L561-L575) |
| `get_flow_tool` | Retrieve detailed steps for a specific flow | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 576-590](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L576-L590) |
| `get_affected_flows_tool` | Find flows impacted by file changes | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 591-605](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L591-L605) |
| `traverse_graph_tool` | Free-form **BFS/DFS traversal** with custom filters | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 546-605](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L546-L605) |

---

## Architectural Insight Tools

These tools analyze **structural properties** of the codebase to identify hotspots and technical debt:

- **`get_architecture_overview_tool`** — High-level module dependency map
- **`get_hub_nodes_tool`** — Nodes with highest centrality (critical files)
- **`get_bridge_nodes_tool`** — Chokepoints between communities
- **`get_knowledge_gaps_tool`** — Areas with low test coverage or documentation
- **`get_surprising_connections_tool`** — Unexpected cross-module dependencies

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 609-686](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L609-L686)

```python

# Find the most critical files in the codebase

hubs = client.call("get_hub_nodes_tool", top_n=20, metric="betweenness")
for node in hubs["nodes"]:
    print(f"{node['name']}: {node['risk_score']}")

```

---

## Refactoring and Wiki Generation Tools

### `refactor_tool` and `apply_refactor_tool`

Graph-driven refactoring support:

- **Rename preview** — Simulate renames and detect broken references
- **Dead code detection** — Find unreachable functions and classes
- **Apply edits** — Execute safe refactoring operations

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 698-746](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L698-L746)

### `generate_wiki_tool` and `get_wiki_page_tool`

Auto-generate **markdown documentation** per community and serve individual pages for developer wikis.

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 717-763](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L717-L763)

---

## Repository Registry and Multi-Repo Tools

| Tool | Purpose | Source |
|------|---------|--------|
| `list_repos_tool` | Enumerate registered repositories in the global registry | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 738-750](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L738-L750) |
| `cross_repo_search_tool` | **Semantic search across multiple repositories** | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 751-767](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L751-L767) |

---

## Embedding Management

### `embed_graph_tool`

Generates **vector embeddings** for every node in the graph. Supports local inference and cloud providers (OpenAI, Cohere, etc.).

Source: [[`code_review_graph/main.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py), lines 362-401](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L362-L401)

```python

# Local embedding with sentence-transformers

client.call("embed_graph_tool", provider="local", model="all-MiniLM-L6-v2")

# Cloud embedding

client.call("embed_graph_tool", provider="openai", model="text-embedding-3-small")

```

---

## MCP Prompt Templates Exposed

The server registers **5 prompt templates** via `@mcp.prompt()` decorators. These return token-efficient message sequences that guide LLM workflows.

| Prompt Template | Use Case | Source |
|-----------------|----------|--------|
| `review_changes` | Automated PR review with risk scoring | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 968-985](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L968-L985) |
| `architecture_map` | Generate visual/textual architecture overviews | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 986-994](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L986-L994) |
| `debug_issue` | Root-cause analysis for bugs using graph traversal | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 995-1003](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L995-L1003) |
| `onboard_developer` | Interactive codebase exploration for new team members | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 1004-1012](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L1004-L1012) |
| `pre_merge_check` | Final validation before merging to main | [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 1013-1020](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L1013-L1020) |

The prompt implementations delegate to [`code_review_graph/prompts.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/prompts.py), which contains the actual message templates (e.g., `review_changes_prompt()`, `architecture_map_prompt()`).

```python

# Use a prompt template

messages = client.call_prompt("review_changes", base="main", head="feature-branch")
for msg in messages:
    print(f"[{msg.role}] {msg.content[:100]}...")

```

---

## Server Startup and Tool Filtering

The MCP tool set can be **filtered at startup** via CLI flag or environment variable.

```bash

# Only expose core review tools

code-review-graph serve --tools detect_changes_tool,get_impact_radius_tool,semantic_search_nodes_tool

# Or via environment

export CRG_TOOLS="detect_changes_tool,get_impact_radius_tool"
code-review-graph serve

```

The filtering logic is implemented in `_apply_tool_filter` at [[`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), lines 1022-1055](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/main.py#L1022-L1055).

---

## HTTP Transport and Security

When started with `--http`, the server exposes a **JSON-RPC endpoint** with origin validation:

```bash
code-review-graph serve --http --host 127.0.0.1 --port 5555 --allowed-origins "https://my-ide.example.com"

```

The `http_origin_guard` middleware ([[`http_origin_guard.py`](https://github.com/tirth8205/code-review-graph/blob/main/http_origin_guard.py)](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/http_origin_guard.py)) protects against DNS-rebinding attacks by validating `Host` and `Origin` headers.

---

## Complete Tool Reference Table

| Category | Tool Name | Line Range in [`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py) |
|----------|-----------|------------------------|
| Graph lifecycle | `build_or_update_graph_tool` | 99-119 |
| Change detection | `detect_changes_tool` | 632-667 |
| Impact analysis | `get_impact_radius_tool` | 219-241 |
| Query | `query_graph_tool` | 246-285 |
| Search | `semantic_search_nodes_tool` | 307-354 |
| Statistics | `list_graph_stats_tool` | 408-420 |
| Communities | `list_communities_tool` | 546-560 |
| Flows | `list_flows_tool`, `get_flow_tool`, `get_affected_flows_tool` | 561-605 |
| Traversal | `traverse_graph_tool` | 546-605 |
| Architecture | `get_architecture_overview_tool`, `get_hub_nodes_tool`, `get_bridge_nodes_tool`, `get_knowledge_gaps_tool`, `get_surprising_connections_tool` | 609-686 |
| Refactoring | `refactor_tool`, `apply_refactor_tool` | 698-746 |
| Wiki | `generate_wiki_tool`, `get_wiki_page_tool` | 717-763 |
| Registry | `list_repos_tool`, `cross_repo_search_tool` | 738-767 |
| Embedding | `embed_graph_tool` | 362-401 |

---

## Summary

- **14 MCP tools** are exposed via `@mcp.tool()` decorators in [`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py), covering graph building, change detection, impact analysis, semantic search, architectural insights, and refactoring.
- **5 prompt templates** (`review_changes`, `architecture_map`, `debug_issue`, `onboard_developer`, `pre_merge_check`) provide token-efficient LLM workflows.
- All tools honor the global `--repo` flag or per-call `repo_root` parameter via `_resolve_repo_helper`.
- Tool exposure can be filtered with `--tools` or `CRG_TOOLS` for security and performance.
- The actual implementations live in `code_review_graph/tools/*.py`, with [`analysis_tools.py`](https://github.com/tirth8205/code-review-graph/blob/main/analysis_tools.py), [`query.py`](https://github.com/tirth8205/code-review-graph/blob/main/query.py), and [`_common.py`](https://github.com/tirth8205/code-review-graph/blob/main/_common.py) containing the core logic.

---

## Frequently Asked Questions

### What transport protocols does the Code-Review-Graph MCP server support?

The server supports **stdio** (default for CLI integration) and **HTTP** (`--http` flag) transports. The HTTP transport includes `http_origin_guard` middleware for request validation against DNS-rebinding attacks, configured via `--allowed-origins`.

### How do I call MCP tools programmatically from Python?

Use `fastmcp.FastMCPClient` to connect via stdio or HTTP, then call `client.call(tool_name, **kwargs)`. For prompt templates, use `client.call_prompt(prompt_name, **kwargs)` to receive a list of `Message` objects ready for LLM consumption.

### Where are the actual tool implementations located?

While [`main.py`](https://github.com/tirth8205/code-review-graph/blob/main/main.py) contains the MCP wrapper decorators, the **concrete implementations** reside in `code_review_graph/tools/`: [`analysis_tools.py`](https://github.com/tirth8205/code-review-graph/blob/main/analysis_tools.py) for architectural insights, [`query.py`](https://github.com/tirth8205/code-review-graph/blob/main/query.py) for graph traversal and search, and [`_common.py`](https://github.com/tirth8205/code-review-graph/blob/main/_common.py) for shared helpers like store access and builtin call lists.

### Can I restrict which tools are exposed to clients?

Yes. Pass `--tools comma,tool,names` at startup or set the `CRG_TOOLS` environment variable. The `_apply_tool_filter` function (lines 1022-1055) selectively registers only the specified tools with the FastMCP server instance.