Skip to main content
Glama
evalops

Deep Code Reasoning MCP Server

by evalops

Deep Code Reasoning MCP Server

License: MIT MCP Compatible Node.js Version

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

Install MCP Server

Note: After installation, you'll need to update the file path to your actual installation directory and set your GEMINI_API_KEY.

Manual Installation

  1. Clone the repository:

git clone https://github.com/Haasonsaas/deep-code-reasoning-mcp.git
cd deep-code-reasoning-mcp
  1. Install dependencies:

npm install
  1. Set up your Gemini API key:

cp .env.example .env
# Edit .env and add your GEMINI_API_KEY
  1. Build the project:

npm run build

Configuration

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

  1. Claude Code performs initial analysis using its strengths in multi-file refactoring and test-driven loops

  2. 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

  3. Server prepares comprehensive context including code, logs, and traces

  4. Gemini analyzes with its 1M-token context and visible "thinking" traces

  5. 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 window

Case 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 commit

Case 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 systematically

Development

# Run in development mode
npm run dev

# Run tests
npm test

# Lint code
npm run lint

# Type check
npm run typecheck

Architecture

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  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_KEY in your .env file or environment

  • Check that the .env file 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, not claudeContext)

  • Review error messages for specific validation requirements

Best Practices for Multi-Model Debugging

When debugging distributed systems with this MCP server:

  1. Capture the timeline first - Use OpenTelemetry/Jaeger traces with request IDs

  2. Start with Claude Code - Let it handle the initial investigation and quick fixes

  3. Escalate strategically to Gemini when you need:

    • Analysis of traces spanning 100s of MB

    • Correlation across 10+ services

    • Iterative hypothesis testing with code execution

  4. Combine with traditional tools:

    • go test -race, ThreadSanitizer for race detection

    • rr or JFR for deterministic replay

    • TLA+ or Alloy for formal verification

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests for new functionality

  5. 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:

Available Tools

10 tools
continue_conversationC

Continue an ongoing analysis conversation

ParametersJSON Schema
NameRequiredDescriptionDefault
include_code_snippetsNoWhether to include code snippets in response
messageYesClaude's response or follow-up question
session_idYesID of the conversation session

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
change_scopeYes
impact_typesNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_typeYesType of deep analysis to perform
claude_contextYes
depth_levelNoHow deep to analyze (1=shallow, 5=very deep)
time_budget_secondsNoMaximum time for analysis

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the conversation session
summary_formatNoFormat for the final summary

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the conversation session

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
code_scopeYes
hypothesisYes
test_approachYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
code_pathYes
profile_depthNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
claude_contextYes
issueYesDescription of the issue to investigate
tournament_configNo

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_typeYesType of deep analysis to perform
claude_contextYes
initial_questionNoInitial question to start the conversation

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
entry_pointYes
include_data_flowNo
max_depthNo

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

  1. 10 tool updatesv1.0.0
    • First observedcontinue_conversation
    • First observedcross_system_impact
    • First observedescalate_analysis
    • First observedfinalize_conversation
    • First observedget_conversation_status
    • First observedhypothesis_test
    • First observedperformance_bottleneck
    • First observedrun_hypothesis_tournament
    • First observedstart_conversation
    • First observedtrace_execution_path

TDQS

C2.8/5.0
Disambiguation3/5

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.

Naming Consistency2/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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