Deep Code Reasoning MCP Server
The Deep Code Reasoning MCP Server intelligently routes code analysis tasks between Claude Code and Google's Gemini AI, leveraging each model's strengths for comprehensive software analysis.
Intelligent Multi-Model Routing: Delegates tasks between Claude (local context, incremental patches) and Gemini (large context analysis, synthetic test execution)
Deep Semantic Analysis: Performs execution path tracing, cross-system impact analysis, and sophisticated debugging beyond syntactic patterns
Conversational Problem-Solving: Enables AI-to-AI dialogues between Claude and Gemini for iterative investigations
Hypothesis Testing & Validation: Tests specific theories about code behavior with evidence-based validation, including competitive "hypothesis tournaments" to find root causes
Performance Analysis: Identifies bottlenecks, N+1 patterns, memory leaks, and algorithmic inefficiencies
Large Context Handling: Leverages Gemini's 1M token context window for analyzing extensive codebases, logs, and distributed systems
Distributed System Debugging: Specializes in correlating failures and hunting performance regressions across complex multi-service environments
Leverages Gemini 2.5 Pro's 1M token context window and code execution capabilities for distributed system debugging, long-trace analysis, performance modeling, and hypothesis testing of code behavior.
Analyzes traces captured with Jaeger, allowing for timeline capture and debugging of distributed systems through trace correlation.
Processes traces captured with OpenTelemetry for analysis across multiple services, enabling correlation of trace spans and debugging of distributed systems.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Deep Code Reasoning MCP Serveranalyze this distributed system failure across logs and traces"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Deep Code Reasoning MCP Server
An MCP server that pairs Claude Code with Google's Gemini AI for complementary code analysis. This server enables a multi-model workflow where Claude Code handles tight terminal integration and multi-file refactoring, while Gemini leverages its massive context window (1M tokens) and code execution capabilities for distributed system debugging and long-trace analysis.
Core Value
Both Claude and Gemini can handle deep semantic reasoning and distributed system bugs. This server enables an intelligent routing strategy where:
Claude Code excels at local-context operations, incremental patches, and CLI-native workflows
Gemini 2.5 Pro shines with huge-context sweeps, synthetic test execution, and analyzing failures that span logs + traces + code
The "escalation" model treats LLMs like heterogeneous microservices - route to the one that's most capable for each sub-task.
Related MCP server: Gemini Collaboration MCP Server
Features
Gemini 2.5 Pro Preview: Uses Google's latest Gemini 2.5 Pro Preview (05-06) model with 1M token context window
Conversational Analysis: NEW! AI-to-AI dialogues between Claude and Gemini for iterative problem-solving
Execution Flow Tracing: Understands data flow and state transformations, not just function calls
Cross-System Impact Analysis: Models how changes propagate across service boundaries
Performance Modeling: Identifies N+1 patterns, memory leaks, and algorithmic bottlenecks
Hypothesis Testing: Tests theories about code behavior with evidence-based validation
Long Context Support: Leverages Gemini 2.5 Pro Preview's 1M token context for analyzing large codebases
Prerequisites
Node.js 18 or later
A Google Cloud account with Gemini API access
Gemini API key from Google AI Studio
Key Dependencies
@google/generative-ai: Google's official SDK for Gemini API integration
@modelcontextprotocol/sdk: MCP protocol implementation for Claude integration
zod: Runtime type validation for tool parameters
dotenv: Environment variable management
Installation
Quick Install for Cursor
Note: After installation, you'll need to update the file path to your actual installation directory and set your GEMINI_API_KEY.
Manual Installation
Clone the repository:
git clone https://github.com/Haasonsaas/deep-code-reasoning-mcp.git
cd deep-code-reasoning-mcpInstall dependencies:
npm installSet up your Gemini API key:
cp .env.example .env
# Edit .env and add your GEMINI_API_KEYBuild the project:
npm run buildConfiguration
Environment Variables
GEMINI_API_KEY(required): Your Google Gemini API key
Claude Desktop Configuration
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"deep-code-reasoning": {
"command": "node",
"args": ["/path/to/deep-code-reasoning-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key"
}
}
}
}How It Works
Claude Code performs initial analysis using its strengths in multi-file refactoring and test-driven loops
When beneficial, Claude escalates to this MCP server - particularly for:
Analyzing gigantic log/trace dumps that exceed Claude's context
Running iterative hypothesis testing with code execution
Correlating failures across many microservices
Server prepares comprehensive context including code, logs, and traces
Gemini analyzes with its 1M-token context and visible "thinking" traces
Results returned to Claude Code for implementation of fixes
Available Tools
Note: The tool parameters use snake_case naming convention and are validated using Zod schemas. The actual implementation provides more detailed type safety than shown in these simplified examples. Full TypeScript type definitions are available in src/models/types.ts.
Conversational Analysis Tools
The server now includes AI-to-AI conversational tools that enable Claude and Gemini to engage in multi-turn dialogues for complex analysis:
start_conversation
Initiates a conversational analysis session between Claude and Gemini.
{
claude_context: {
attempted_approaches: string[]; // What Claude tried
partial_findings: any[]; // What Claude found
stuck_description: string; // Where Claude got stuck
code_scope: {
files: string[]; // Files to analyze
entry_points?: CodeLocation[]; // Starting points
service_names?: string[]; // Services involved
}
};
analysis_type: 'execution_trace' | 'cross_system' | 'performance' | 'hypothesis_test';
initial_question?: string; // Optional opening question
}continue_conversation
Continues an active conversation with Claude's response or follow-up question.
{
session_id: string; // Active session ID
message: string; // Claude's message to Gemini
include_code_snippets?: boolean; // Enrich with code context
}finalize_conversation
Completes the conversation and generates structured analysis results.
{
session_id: string; // Active session ID
summary_format: 'detailed' | 'concise' | 'actionable';
}get_conversation_status
Checks the status and progress of an ongoing conversation.
{
session_id: string; // Session ID to check
}Traditional Analysis Tools
escalate_analysis
Main tool for handing off complex analysis from Claude Code to Gemini.
{
claude_context: {
attempted_approaches: string[]; // What Claude tried
partial_findings: any[]; // What Claude found
stuck_description: string; // Where Claude got stuck
code_scope: {
files: string[]; // Files to analyze
entry_points?: CodeLocation[]; // Starting points (file, line, function_name)
service_names?: string[]; // Services involved
}
};
analysis_type: 'execution_trace' | 'cross_system' | 'performance' | 'hypothesis_test';
depth_level: 1-5; // Analysis depth
time_budget_seconds?: number; // Time limit (default: 60)
}trace_execution_path
Deep execution analysis with Gemini's semantic understanding.
{
entry_point: {
file: string;
line: number;
function_name?: string;
};
max_depth?: number; // Default: 10
include_data_flow?: boolean; // Default: true
}cross_system_impact
Analyze impacts across service boundaries.
{
change_scope: {
files: string[];
service_names?: string[];
};
impact_types?: ('breaking' | 'performance' | 'behavioral')[];
}performance_bottleneck
Deep performance analysis beyond simple profiling.
{
code_path: {
entry_point: {
file: string;
line: number;
function_name?: string;
};
suspected_issues?: string[];
};
profile_depth?: 1-5; // Default: 3
}hypothesis_test
Test specific theories about code behavior.
{
hypothesis: string;
code_scope: {
files: string[];
entry_points?: CodeLocation[]; // Optional array of {file, line, function_name?}
};
test_approach: string;
}Example Use Cases
Conversational Analysis Example
When Claude needs deep iterative analysis with Gemini:
// 1. Start conversation
const session = await start_conversation({
claude_context: {
attempted_approaches: ["Checked for N+1 queries", "Profiled database calls"],
partial_findings: [{ type: "performance", description: "Multiple DB queries in loop" }],
stuck_description: "Can't determine if queries are optimizable",
code_scope: { files: ["src/services/UserService.ts"] }
},
analysis_type: "performance",
initial_question: "Are these queries necessary or can they be batched?"
});
// 2. Continue with follow-ups
const response = await continue_conversation({
session_id: session.sessionId,
message: "The queries fetch user preferences. Could we use a join instead?",
include_code_snippets: true
});
// 3. Finalize when ready
const results = await finalize_conversation({
session_id: session.sessionId,
summary_format: "actionable"
});Case 1: Distributed Trace Analysis
When a failure signature spans multiple services with GB of logs:
// Claude Code: Identifies the error pattern and suspicious code sections
// Escalate to Gemini when: Need to correlate 1000s of trace spans across 10+ services
// Gemini: Processes the full trace timeline, identifies the exact race windowCase 2: Performance Regression Hunting
When performance degrades but the cause isn't obvious:
// Claude Code: Quick profiling, identifies hot paths
// Escalate to Gemini when: Need to analyze weeks of performance metrics + code changes
// Gemini: Correlates deployment timeline with perf metrics, pinpoints the exact commitCase 3: Hypothesis-Driven Debugging
When you have theories but need extensive testing:
// Claude Code: Forms initial hypotheses based on symptoms
// Escalate to Gemini when: Need to test 20+ scenarios with synthetic data
// Gemini: Uses code execution API to validate each hypothesis systematicallyDevelopment
# Run in development mode
npm run dev
# Run tests
npm test
# Lint code
npm run lint
# Type check
npm run typecheckArchitecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude Code │────▶│ MCP Server │────▶│ Gemini API │
│ (Fast, Local, │ │ (Router & │ │ (1M Context, │
│ CLI-Native) │◀────│ Orchestrator) │◀────│ Code Exec) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Code + Logs + │
│ Traces + Tests │
└──────────────────┘Security Considerations
API Key: Store your Gemini API key securely in environment variables
Code Access: The server reads local files - ensure proper file permissions
Data Privacy: Code is sent to Google's Gemini API - review their data policies
Troubleshooting
"GEMINI_API_KEY not found"
Ensure you've set the
GEMINI_API_KEYin your.envfile or environmentCheck that the
.envfile is in the project root
"File not found" errors
Verify that file paths passed to the tools are absolute paths
Check file permissions
Gemini API errors
Verify your API key is valid and has appropriate permissions
Check API quotas and rate limits
Ensure your Google Cloud project has the Gemini API enabled
Validation errors
The server uses Zod for parameter validation
Ensure all required parameters are provided
Check that parameter names use snake_case (e.g.,
claude_context, notclaudeContext)Review error messages for specific validation requirements
Best Practices for Multi-Model Debugging
When debugging distributed systems with this MCP server:
Capture the timeline first - Use OpenTelemetry/Jaeger traces with request IDs
Start with Claude Code - Let it handle the initial investigation and quick fixes
Escalate strategically to Gemini when you need:
Analysis of traces spanning 100s of MB
Correlation across 10+ services
Iterative hypothesis testing with code execution
Combine with traditional tools:
go test -race, ThreadSanitizer for race detectionrr or JFR for deterministic replay
TLA+ or Alloy for formal verification
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Jonathan Haas - GitHub Profile
Acknowledgments
Built for integration with Anthropic's Claude Code
Powered by Google's Gemini AI
Uses the Model Context Protocol (MCP) for communication
Support
If you encounter any issues or have questions:
Open an issue on GitHub Issues
Check the troubleshooting section above
Review the MCP documentation
Available Tools
10 toolscontinue_conversationC
Continue an ongoing analysis conversation
| Name | Required | Description | Default |
|---|---|---|---|
| include_code_snippets | No | Whether to include code snippets in response | |
| message | Yes | Claude's response or follow-up question | |
| session_id | Yes | ID of the conversation session |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Continue' implies a stateful interaction, but the description doesn't reveal what 'continue' does—whether it sends a message, updates a session, triggers analysis, or returns data. It lacks details on permissions, side effects, or response format, leaving significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, though it could be more informative. The brevity is appropriate but borders on under-specification given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's likely complexity (involving ongoing conversations with parameters like session_id and message), no annotations, and no output schema, the description is incomplete. It doesn't explain what 'continue' means in practice, what the tool returns, or how it fits into the broader conversation workflow, making it inadequate for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three parameters (session_id, message, include_code_snippets). The description adds no meaning beyond this, such as explaining how parameters interact (e.g., 'message' is Claude's input to continue the conversation) or providing usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Continue an ongoing analysis conversation' states a verb ('Continue') and resource ('ongoing analysis conversation'), providing a basic purpose. However, it's vague about what 'continue' entails operationally and doesn't distinguish this tool from sibling tools like 'get_conversation_status' or 'finalize_conversation', which also relate to conversation management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't specify prerequisites (e.g., requires an existing session started with 'start_conversation'), exclusions, or contextual cues for choosing it over other conversation-related tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cross_system_impactC
Use Gemini to analyze changes across service boundaries
| Name | Required | Description | Default |
|---|---|---|---|
| change_scope | Yes | ||
| impact_types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions using Gemini (implying AI/ML analysis) but doesn't describe what the tool actually does behaviorally—e.g., whether it makes API calls, processes data locally, requires specific permissions, has rate limits, or what the output format might be. The description is too high-level to guide an agent on how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters with nested objects, 0% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how to interpret parameters, or behavioral details. For an analysis tool with undocumented inputs and no structured guidance, more context is needed to be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so parameters are undocumented in the schema. The description doesn't mention any parameters or their meanings. It doesn't explain what 'change_scope' or 'impact_types' represent, leaving the agent to guess based on property names alone. For a tool with 2 parameters and nested objects, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool uses Gemini to analyze changes across service boundaries, which provides a general purpose (analyze changes) and resource (service boundaries). However, it's vague about what specific analysis is performed and doesn't distinguish this from sibling tools like 'escalate_analysis' or 'trace_execution_path' that might also involve analysis. The phrase 'analyze changes' is somewhat generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or exclusions. Given sibling tools like 'escalate_analysis' and 'hypothesis_test' that might overlap in analysis functions, there's no differentiation to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
escalate_analysisA
Hand off complex analysis to Gemini when Claude Code hits reasoning limits. Gemini will perform deep semantic analysis beyond syntactic patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_type | Yes | Type of deep analysis to perform | |
| claude_context | Yes | ||
| depth_level | No | How deep to analyze (1=shallow, 5=very deep) | |
| time_budget_seconds | No | Maximum time for analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates this is a hand-off operation to a different AI system (Gemini) for deeper analysis, which is useful context. However, it doesn't describe what happens during the hand-off, whether there are rate limits, authentication requirements, or what the expected output format might be.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place. The first sentence establishes the core purpose and trigger condition, while the second explains the value proposition. There's zero wasted language and it's front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 4 parameters (including nested objects), no annotations, and no output schema, the description provides good high-level context but lacks details about behavioral characteristics, expected outputs, or error conditions. It adequately explains the 'why' but leaves gaps in operational details that would help an agent use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 75% schema description coverage, the schema already documents most parameters well. The description doesn't add specific parameter semantics beyond implying 'complex analysis' context. It mentions 'deep semantic analysis' which aligns with the analysis_type parameter, but provides no additional details about parameter usage beyond what's in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('hand off complex analysis to Gemini') and resources ('when Claude Code hits reasoning limits'), and explicitly distinguishes it from sibling tools by mentioning Gemini's unique capability for 'deep semantic analysis beyond syntactic patterns' compared to Claude's limitations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('when Claude Code hits reasoning limits') and what it does differently ('Gemini will perform deep semantic analysis beyond syntactic patterns'), clearly positioning it as an escalation path for complex analysis tasks that exceed Claude's capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finalize_conversationC
Complete the conversation and get final analysis results
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ID of the conversation session | |
| summary_format | No | Format for the final summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Complete the conversation' and 'get final analysis results', suggesting a read operation that might finalize or close a session, but it doesn't specify if this is destructive, requires permissions, or details the output format. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence that front-loads the core action. It wastes no words, but could be slightly improved by structuring it to highlight key aspects like the tool's role among siblings. Overall, it's efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by 'final analysis results' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'analysis results' include, how the conversation is 'completed', or any behavioral traits. For a tool that seems to produce outputs, this leaves critical gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters in the input schema. The description adds no additional meaning beyond the schema, such as explaining the context of 'session_id' or the implications of 'summary_format' choices. With high schema coverage, the baseline score of 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose with 'Complete the conversation and get final analysis results', which includes a verb ('Complete') and resource ('conversation'), but it's vague about what 'complete' entails and doesn't distinguish it from siblings like 'get_conversation_status' or 'escalate_analysis'. It lacks specificity in how it differs from other conversation-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description implies usage at the end of a conversation, but it doesn't mention prerequisites, exclusions, or compare it to siblings like 'continue_conversation' or 'get_conversation_status'. This leaves the agent without clear direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversation_statusC
Check the status and progress of an ongoing conversation
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ID of the conversation session |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'checks' status and progress, implying a read-only operation, but does not specify if it requires authentication, has rate limits, returns real-time or cached data, or what happens with invalid sessions. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and to the point, making it easy to parse quickly. However, it could be slightly improved by adding a bit more context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns (e.g., status indicators, progress metrics) or error conditions, which is crucial for a status-checking tool. With no structured data to rely on, the description should provide more context about outputs and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'session_id' clearly documented. The description does not add any meaning beyond the schema, such as explaining what constitutes a valid session ID or how it relates to conversation status. Baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('check') and resource ('status and progress of an ongoing conversation'), making it easy to understand what it does. However, it does not explicitly differentiate from sibling tools like 'trace_execution_path' or 'performance_bottleneck', which might also involve monitoring or status-related functions, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing an active session, or compare it to siblings like 'continue_conversation' or 'finalize_conversation' that might relate to conversation management. This lack of context leaves usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypothesis_testC
Use Gemini to test specific theories about code behavior
| Name | Required | Description | Default |
|---|---|---|---|
| code_scope | Yes | ||
| hypothesis | Yes | ||
| test_approach | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions using Gemini but doesn't disclose behavioral traits such as whether this is a read-only analysis, if it modifies code, execution time, rate limits, or authentication needs. For a tool with 3 parameters and nested objects, this lack of detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a basic overview, though it could be more front-loaded with critical details given the lack of other documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with nested objects, 0% schema coverage, no output schema, and no annotations), the description is incomplete. It doesn't explain what the tool returns, how to interpret results, or provide enough context for effective use. This is inadequate for a tool that likely involves code analysis and hypothesis testing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It doesn't add any meaning beyond the schema, failing to explain parameters like 'code_scope', 'hypothesis', or 'test_approach'. This leaves agents guessing about what to provide, especially for nested structures like 'entry_points' and 'files'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool uses Gemini to test theories about code behavior, which provides a general purpose. However, it lacks specificity about what kind of testing (e.g., unit, integration, static analysis) and doesn't clearly distinguish from siblings like 'run_hypothesis_tournament' or 'trace_execution_path'. The phrase 'test specific theories' is somewhat vague compared to more precise alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies it's for testing code theories with Gemini, but it doesn't specify contexts, prerequisites, or exclusions. Without comparison to siblings like 'run_hypothesis_tournament', agents might struggle to choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performance_bottleneckC
Use Gemini for deep performance analysis with execution modeling
| Name | Required | Description | Default |
|---|---|---|---|
| code_path | Yes | ||
| profile_depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'deep performance analysis with execution modeling' but doesn't describe what this entails operationally - whether it's a read-only analysis, if it modifies code, what permissions are needed, how long it takes, or what the output format might be. The description is too high-level to provide meaningful behavioral context for a tool with complex nested parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence with 8 words. It's front-loaded with the core information (uses Gemini for performance analysis). While perhaps too brief given the tool's complexity, every word serves a purpose and there's no redundancy or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with complex nested parameters (code_path with entry_point object), no annotations, no output schema, and 0% schema description coverage, the description is inadequate. It doesn't explain what the tool returns, how to interpret results, what 'execution modeling' means, or provide any context about the analysis process. The description leaves too many open questions for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 2 parameters (one being a complex nested object), the description provides no information about parameters. It doesn't mention 'code_path', 'entry_point', 'suspected_issues', or 'profile_depth' at all. The description fails to compensate for the complete lack of schema documentation, leaving the agent with no semantic understanding of what inputs are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool uses Gemini for 'deep performance analysis with execution modeling', which gives a vague purpose but doesn't specify what resource is being analyzed or what specific action is performed. It mentions 'performance analysis' but doesn't clarify if this is profiling, bottleneck detection, optimization suggestions, or something else. The description distinguishes from siblings by mentioning Gemini, but the purpose remains somewhat ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, appropriate contexts, or exclusions. Given the sibling tools include 'trace_execution_path', 'hypothesis_test', and 'escalate_analysis', there's no indication of when performance_bottleneck is preferred over these other analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_hypothesis_tournamentC
Run a competitive hypothesis tournament to find root causes. Multiple AI conversations test different theories in parallel, with evidence-based scoring and elimination rounds.
| Name | Required | Description | Default |
|---|---|---|---|
| claude_context | Yes | ||
| issue | Yes | Description of the issue to investigate | |
| tournament_config | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the process ('competitive tournament', 'parallel testing', 'evidence-based scoring', 'elimination rounds'), which gives some insight into the tool's behavior. However, it lacks critical details such as whether this is a read-only or mutative operation, expected runtime, error handling, or output format. For a complex tool with nested inputs, this is insufficient to inform an agent fully.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured in a single sentence. It front-loads the core action ('Run a competitive hypothesis tournament') and efficiently adds key details ('to find root causes', 'Multiple AI conversations test different theories in parallel, with evidence-based scoring and elimination rounds'). Every phrase contributes meaning without redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters with nested objects, no annotations, no output schema), the description is incomplete. It explains the high-level process but misses crucial context: what the output looks like (e.g., a winning hypothesis, scores, logs), how errors are handled, performance implications (e.g., resource-intensive due to parallel sessions), or integration with sibling tools. This leaves significant gaps for an agent to understand the tool's full behavior and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is low (33%), but the description adds minimal value beyond the schema. It doesn't explain the meaning or purpose of parameters like 'claude_context' or 'tournament_config', which are complex nested objects. The schema provides descriptions for sub-properties (e.g., 'attempted_approaches', 'max_hypotheses'), but the overall tool description doesn't clarify how these inputs drive the tournament process. Baseline 3 is appropriate as the schema does some work, but the description doesn't compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run a competitive hypothesis tournament to find root causes.' It specifies the verb ('run'), resource ('hypothesis tournament'), and goal ('find root causes'), distinguishing it from siblings like 'hypothesis_test' (singular testing) or 'escalate_analysis' (escalation). However, it doesn't explicitly differentiate from all siblings, such as 'cross_system_impact' or 'trace_execution_path', which might also involve root cause analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the method ('Multiple AI conversations test different theories in parallel') but doesn't specify scenarios, prerequisites, or exclusions. For example, it doesn't indicate if this is for complex issues where other tools failed or when simpler tools like 'hypothesis_test' might suffice. This lack of context makes it hard for an agent to choose appropriately among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_conversationC
Start a conversational analysis session between Claude and Gemini
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_type | Yes | Type of deep analysis to perform | |
| claude_context | Yes | ||
| initial_question | No | Initial question to start the conversation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool starts a session but doesn't explain what that entails—whether it's a one-time setup, if it creates persistent resources, what permissions might be needed, or how errors are handled. For a tool with complex parameters and no annotations, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with nested objects, no output schema, and no annotations), the description is incomplete. It doesn't address what the tool returns, how sessions are managed, or behavioral aspects like side effects. For a tool that likely initiates a multi-step process, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, meaning some parameters are documented in the schema. The description adds no parameter-specific information beyond the tool's purpose, so it doesn't compensate for the coverage gap. However, it implies the parameters relate to initiating analysis, which aligns with the schema. With 3 parameters and partial schema coverage, a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start a conversational analysis session') and identifies the participants ('between Claude and Gemini'), which provides a specific verb and resource. However, it doesn't explicitly differentiate this tool from its siblings like 'continue_conversation' or 'get_conversation_status', leaving some ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'continue_conversation' and 'finalize_conversation', it's unclear whether this is for initial setup only or if it has specific prerequisites. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_execution_pathC
Use Gemini to perform deep execution analysis with semantic understanding
| Name | Required | Description | Default |
|---|---|---|---|
| entry_point | Yes | ||
| include_data_flow | No | ||
| max_depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only mentions 'deep execution analysis with semantic understanding' without disclosing behavioral traits like computational cost, rate limits, or output format. It fails to explain what 'analysis' entails operationally, such as whether it modifies data or is read-only, making it inadequate for a tool with complex parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it appropriately sized. However, it lacks front-loading of critical details, as the core purpose is stated but without elaboration, slightly reducing its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, nested objects, no output schema, and 0% schema coverage), the description is incomplete. It doesn't cover parameter meanings, behavioral aspects, or output expectations, failing to provide enough context for the agent to use it effectively beyond a vague notion of analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds no meaning beyond the schema. It doesn't explain parameters like 'entry_point', 'include_data_flow', or 'max_depth', leaving their semantics and usage completely undocumented, which is insufficient for a tool with 3 parameters including nested objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'perform[s] deep execution analysis with semantic understanding' using Gemini, which gives a general purpose but lacks specificity about what 'execution analysis' entails or what resources it analyzes. It doesn't distinguish from siblings like 'performance_bottleneck' or 'escalate_analysis', leaving ambiguity about its unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'performance_bottleneck' or 'escalate_analysis'. The description implies analysis but offers no context, prerequisites, or exclusions, leaving the agent without direction on appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v1.0.0- First observed
continue_conversation - First observed
cross_system_impact - First observed
escalate_analysis - First observed
finalize_conversation - First observed
get_conversation_status - First observed
hypothesis_test - First observed
performance_bottleneck - First observed
run_hypothesis_tournament - First observed
start_conversation - First observed
trace_execution_path
TDQS
The tools have overlapping purposes centered around conversational analysis and Gemini-assisted reasoning, which could cause confusion. For example, 'escalate_analysis', 'hypothesis_test', 'performance_bottleneck', and 'trace_execution_path' all involve handing off to Gemini for deeper analysis, making them potentially ambiguous. However, the descriptions provide some differentiation in their specific focuses.
The naming is inconsistent with mixed conventions: some use snake_case (e.g., 'continue_conversation'), others use camelCase-like compound words (e.g., 'cross_system_impact'), and there is no clear verb_noun pattern. This lack of a predictable naming scheme makes the tool set harder to navigate and less coherent.
With 10 tools, the count is reasonable for a server focused on deep code reasoning and conversational analysis. It covers initiation, continuation, status checks, and various specialized analysis types, which aligns well with the server's purpose without being overly bloated or sparse.
The tool set appears to cover the core lifecycle of conversational analysis (start, continue, status, finalize) and includes specialized tools for different reasoning scenarios (e.g., hypothesis testing, performance analysis). Minor gaps might exist, such as tools for managing or reviewing past conversations, but the surface is largely complete for the inferred domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
One identity across Claude Code, Codex, Cursor, Gemini, Windsurf: shared inbox and handoffs.
AI routing, memory, guardrails, and governance. Routes across Claude, GPT, Gemini.
No-data MCP handoff for local Claude Code to Codex harness moves. $49 lifetime.
Multi-LLM council: 25+ frontier models in parallel, consensus scoring, verdict-first code review.
Related MCP Servers
- AlicenseBqualityCmaintenanceIntegrates Google's Gemini AI with Claude Code to provide advanced development assistance including code analysis, implementation planning, technical explanations, debugging support, and strategic development guidance.10707MIT
- AlicenseBqualityDmaintenanceEnables Claude to collaborate with Gemini for code reviews, second opinions, and iterative software development. It facilitates multi-step workflows including PRD creation and code generation through an AI orchestration framework.2181MIT
- AlicenseNot gradedqualityDmaintenanceBridges Claude Code and Google's Gemini AI models to enable AI-to-AI collaboration for code reviews, brainstorming, and direct questions.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code to consult Gemini for complex coding problems with session management, file attachments, and conversation persistence.105MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/evalops/deep-code-reasoning-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server