Deep Code Reasoning MCP Server
Realiza análisis de código complementario combinando Claude Code y la IA Gemini de Google.
Documentación
Deep Code Reasoning MCP Server
Un servidor MCP que combina Claude Code con la IA Gemini de Google para un análisis de código complementario. Este servidor permite un flujo de trabajo multimodelo donde Claude Code gestiona la integración estrecha con la terminal y la refactorización de múltiples archivos, mientras que Gemini aprovecha su enorme ventana de contexto (1M de tokens) y sus capacidades de ejecución de código para la depuración de sistemas distribuidos y el análisis de trazas largas.
Valor Principal
Tanto Claude como Gemini pueden manejar razonamiento semántico profundo y errores de sistemas distribuidos. Este servidor habilita una estrategia de enrutamiento inteligente donde:
- Claude Code sobresale en operaciones de contexto local, parches incrementales y flujos de trabajo nativos de CLI
- Gemini 2.5 Pro destaca con barridos de contexto masivo, ejecución de pruebas sintéticas y análisis de fallos que abarcan registros + trazas + código
El modelo de «escalado» trata a los LLM como microservicios heterogéneos: enruta hacia el más capaz para cada subtarea.
Características
- Gemini 2.5 Pro Preview: Utiliza el último modelo Gemini 2.5 Pro Preview (05-06) de Google con una ventana de contexto de 1M de tokens
- Análisis Conversacional: ¡NUEVO! Diálogos de IA a IA entre Claude y Gemini para la resolución iterativa de problemas
- Trazado de Flujo de Ejecución: Comprende el flujo de datos y las transformaciones de estado, no solo las llamadas a funciones
- Análisis de Impacto entre Sistemas: Modela cómo se propagan los cambios a través de los límites de los servicios
- Modelado de Rendimiento: Identifica patrones N+1, fugas de memoria y cuellos de botella algorítmicos
- Prueba de Hipótesis: Prueba teorías sobre el comportamiento del código con validación basada en evidencia
- Soporte de Contexto Largo: Aprovecha el contexto de 1M de tokens de Gemini 2.5 Pro Preview para analizar bases de código grandes
Requisitos Previos
- Node.js 18 o posterior
- Una cuenta de Google Cloud con acceso a la API de Gemini
- Clave de API de Gemini desde Google AI Studio
Dependencias Clave
- @google/generative-ai: SDK oficial de Google para la integración con la API de Gemini
- @modelcontextprotocol/sdk: Implementación del protocolo MCP para la integración con Claude
- zod: Validación de tipos en tiempo de ejecución para los parámetros de las herramientas
- dotenv: Gestión de variables de entorno
Instalación
Instalación Rápida para Cursor
Nota: Después de la instalación, deberás actualizar la ruta del archivo a tu directorio de instalación real y configurar tu GEMINI_API_KEY.
Instalación Manual
- Clona el repositorio:
git clone https://github.com/Haasonsaas/deep-code-reasoning-mcp.git
cd deep-code-reasoning-mcp
- Instala las dependencias:
npm install
- Configura tu clave de API de Gemini:
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY
- Compila el proyecto:
npm run build
Configuración
Variables de Entorno
GEMINI_API_KEY(obligatorio): Tu clave de API de Google Gemini
Configuración de Claude Desktop
Añade a tu configuración de Claude Desktop (~/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"
}
}
}
}
Cómo Funciona
- Claude Code realiza el análisis inicial utilizando sus puntos fuertes en la refactorización de múltiples archivos y los bucles de desarrollo guiado por pruebas
- Cuando es beneficioso, Claude escala a este servidor MCP, especialmente para:
- Analizar volcados de registros/trazas gigantes que superan el contexto de Claude
- Ejecutar pruebas de hipótesis iterativas con ejecución de código
- Correlacionar fallos entre muchos microservicios
- El servidor prepara un contexto completo que incluye código, registros y trazas
- Gemini analiza con su contexto de 1M de tokens y trazas de «pensamiento» visibles
- Los resultados se devuelven a Claude Code para la implementación de correcciones
Herramientas Disponibles
Nota: Los parámetros de las herramientas utilizan la convención de nomenclatura snake_case y se validan mediante esquemas Zod. La implementación real proporciona una seguridad de tipos más detallada que la mostrada en estos ejemplos simplificados. Las definiciones completas de tipos TypeScript están disponibles en src/models/types.ts.
Herramientas de Análisis Conversacional
El servidor ahora incluye herramientas conversacionales de IA a IA que permiten a Claude y Gemini mantener diálogos de múltiples turnos para análisis complejos:
start_conversation
Inicia una sesión de análisis conversacional entre Claude y 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
Continúa una conversación activa con la respuesta o pregunta de seguimiento de Claude.
{
session_id: string; // Active session ID
message: string; // Claude's message to Gemini
include_code_snippets?: boolean; // Enrich with code context
}
finalize_conversation
Completa la conversación y genera resultados de análisis estructurados.
{
session_id: string; // Active session ID
summary_format: 'detailed' | 'concise' | 'actionable';
}
get_conversation_status
Comprueba el estado y el progreso de una conversación en curso.
{
session_id: string; // Session ID to check
}
Herramientas de Análisis Tradicionales
escalate_analysis
Herramienta principal para transferir análisis complejos de Claude Code a 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
Análisis profundo de ejecución con la comprensión semántica de Gemini.
{
entry_point: {
file: string;
line: number;
function_name?: string;
};
max_depth?: number; // Default: 10
include_data_flow?: boolean; // Default: true
}
cross_system_impact
Analiza impactos a través de los límites de los servicios.
{
change_scope: {
files: string[];
service_names?: string[];
};
impact_types?: ('breaking' | 'performance' | 'behavioral')[];
}
performance_bottleneck
Análisis profundo de rendimiento más allá de la creación de perfiles simple.
{
code_path: {
entry_point: {
file: string;
line: number;
function_name?: string;
};
suspected_issues?: string[];
};
profile_depth?: 1-5; // Default: 3
}
hypothesis_test
Prueba teorías específicas sobre el comportamiento del código.
{
hypothesis: string;
code_scope: {
files: string[];
entry_points?: CodeLocation[]; // Optional array of {file, line, function_name?}
};
test_approach: string;
}
Casos de Uso de Ejemplo
Ejemplo de Análisis Conversacional
Cuando Claude necesita un análisis iterativo profundo con 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"
});
Caso 1: Análisis de Trazas Distribuidas
Cuando una firma de fallo abarca múltiples servicios con GB de registros:
// 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
Caso 2: Búsqueda de Regresiones de Rendimiento
Cuando el rendimiento se degrada pero la causa no es evidente:
// 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
Caso 3: Depuración Basada en Hipótesis
Cuando tienes teorías pero necesitas pruebas exhaustivas:
// 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
Desarrollo
# Run in development mode
npm run dev
# Run tests
npm test
# Lint code
npm run lint
# Type check
npm run typecheck
Arquitectura
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude Code │────▶│ MCP Server │────▶│ Gemini API │
│ (Fast, Local, │ │ (Router & │ │ (1M Context, │
│ CLI-Native) │◀────│ Orchestrator) │◀────│ Code Exec) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Code + Logs + │
│ Traces + Tests │
└──────────────────┘
Consideraciones de Seguridad
- Clave de API: Almacena tu clave de API de Gemini de forma segura en variables de entorno
- Acceso al Código: El servidor lee archivos locales: asegúrate de que los permisos de archivo sean adecuados
- Privacidad de Datos: El código se envía a la API de Gemini de Google: revisa sus políticas de datos
Solución de Problemas
"GEMINI_API_KEY not found"
- Asegúrate de haber configurado
GEMINI_API_KEYen tu archivo.envo en el entorno - Comprueba que el archivo
.envestá en la raíz del proyecto
Errores de "File not found"
- Verifica que las rutas de archivo pasadas a las herramientas sean rutas absolutas
- Comprueba los permisos de archivo
Errores de la API de Gemini
- Verifica que tu clave de API sea válida y tenga los permisos adecuados
- Comprueba las cuotas de la API y los límites de velocidad
- Asegúrate de que tu proyecto de Google Cloud tenga habilitada la API de Gemini
Errores de validación
- El servidor utiliza Zod para la validación de parámetros
- Asegúrate de que se proporcionen todos los parámetros obligatorios
- Comprueba que los nombres de los parámetros usen snake_case (por ejemplo,
claude_context, noclaudeContext) - Revisa los mensajes de error para conocer los requisitos de validación específicos
Mejores Prácticas para la Depuración Multimodelo
Al depurar sistemas distribuidos con este servidor MCP:
- Captura primero la línea de tiempo: utiliza trazas de OpenTelemetry/Jaeger con IDs de solicitud
- Empieza con Claude Code: deja que maneje la investigación inicial y las correcciones rápidas
- Escala estratégicamente a Gemini cuando necesites:
- Análisis de trazas que abarcan cientos de MB
- Correlación entre más de 10 servicios
- Pruebas de hipótesis iterativas con ejecución de código
- Combina con herramientas tradicionales:
go test -race, ThreadSanitizer para la detección de condiciones de carrera- rr o JFR para la reproducción determinista
- TLA+ o Alloy para la verificación formal
Contribuciones
- Haz un fork del repositorio
- Crea una rama de funcionalidad
- Realiza tus cambios
- Añade pruebas para la nueva funcionalidad
- Envía una solicitud de extracción (pull request)
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
Autor
Jonathan Haas - Perfil de GitHub
Agradecimientos
- Construido para la integración con Claude Code de Anthropic
- Impulsado por la IA Gemini de Google
- Utiliza el Protocolo de Contexto de Modelo (MCP) para la comunicación
Soporte
Si encuentras algún problema o tienes preguntas:
- Abre un problema en GitHub Issues
- Consulta la sección de solución de problemas anterior
- Revisa la documentación de MCP