Protocolo de contexto del modelo - Gemini Thinking Server
Esta es una implementación del Protocolo de Contexto de Modelo (MCP) que se integra con la API Gemini de Google para proporcionar capacidades de pensamiento analítico sin generación de código.
Descripción general
Gemini Thinking Server es un servidor MCP especializado que aprovecha el modelo Gemini de Google para ofrecer pensamiento secuencial y capacidades de resolución de problemas. Permite:
Descomponer problemas complejos en pasos
Planificación y diseño con espacio para revisión
Análisis que podría requerir corrección de rumbo
Problemas cuyo alcance total podría no estar claro inicialmente
Related MCP server: MCP Gemini Server
Características
Pensamiento impulsado por Géminis : utiliza las capacidades analíticas de Géminis para generar respuestas reflexivas.
Metacomentario : proporciona información sobre el proceso de razonamiento.
Niveles de confianza : Indica qué tan seguro está Géminis en su análisis.
Caminos alternativos : sugiere diferentes enfoques al problema
Pensamientos ramificados : permite la exploración de diferentes caminos de pensamiento.
Capacidad de revisión : Apoya la revisión de pensamientos previos.
Persistencia de sesión : guardar y reanudar sesiones de análisis
Instalación
# Clone the repository
git clone <repository-url>
# Install dependencies
npm install
# Build the project
npm run buildUso
Configuración del entorno
Antes de ejecutar el servidor, debe configurar su clave API de Gemini:
export GEMINI_API_KEY=your_api_key_hereEjecución del servidor
node dist/gemini-index.jsParámetros de la herramienta
La herramienta geminithinking acepta los siguientes parámetros:
query(obligatoria): La pregunta o problema a analizarcontext(opcional): información de contexto adicionalapproach(opcional): Enfoque sugerido para el problemapreviousThoughts(opcional): Matriz de pensamientos previos para contextothought(opcional): Tu paso de pensamiento actual (si está vacío, será generado por Géminis)nextThoughtNeeded(obligatorio): si se necesita otro paso de pensamientothoughtNumber(obligatorio): Número de pensamiento actualtotalThoughts(obligatorio): Estimación del total de pensamientos necesariosisRevision(opcional): si esto revisa el pensamiento previorevisesThought(opcional): ¿Qué pensamiento se está reconsiderando?branchFromThought(opcional): Número de pensamiento del punto de ramificaciónbranchId(opcional): identificador de ramaneedsMoreThoughts(opcional): Si se necesitan más pensamientos
Gestión de sesiones
La herramienta también admite comandos de gestión de sesiones:
sessionCommand: Comando para administrar sesiones ('guardar', 'cargar', 'obtener estado')sessionPath: Ruta para guardar o cargar el archivo de sesión (necesario para los comandos 'guardar' y 'cargar')
Ejemplo: Guardar una sesión
{
"sessionCommand": "save",
"sessionPath": "/path/to/save/session.json",
"query": "dummy",
"thoughtNumber": 1,
"totalThoughts": 1,
"nextThoughtNeeded": false
}Ejemplo: Cargar una sesión
{
"sessionCommand": "load",
"sessionPath": "/path/to/load/session.json",
"query": "dummy",
"thoughtNumber": 1,
"totalThoughts": 1,
"nextThoughtNeeded": false
}Ejemplo: Obtener el estado de la sesión
{
"sessionCommand": "getState",
"query": "dummy",
"thoughtNumber": 1,
"totalThoughts": 1,
"nextThoughtNeeded": false
}Ejemplo
A continuación se muestra un ejemplo de cómo utilizar la herramienta:
{
"query": "How might we design a sustainable urban transportation system?",
"context": "The city has 500,000 residents and currently relies heavily on personal vehicles.",
"approach": "Consider environmental, economic, and social factors.",
"thoughtNumber": 1,
"totalThoughts": 5,
"nextThoughtNeeded": true
}Formato de respuesta
El servidor responde con:
{
"thought": "The generated thought from Gemini",
"thoughtNumber": 1,
"totalThoughts": 5,
"nextThoughtNeeded": true,
"branches": [],
"thoughtHistoryLength": 1,
"metaComments": "Meta-commentary about the reasoning",
"confidenceLevel": 0.85,
"alternativePaths": ["Alternative approach 1", "Alternative approach 2"]
}Clientes de ejemplo
Se proporcionan varios clientes de ejemplo para demostrar diferentes casos de uso:
sample-client.js: Ejemplo básico de clienteexample-usage.js: Ejemplo de uso específicocodebase-analysis-example.js: Ejemplo de análisis de código basesession-example.js: Ejemplo que demuestra la persistencia de la sesiónadvanced-filtering-example.js: Ejemplo que demuestra el filtrado semántico avanzado
Para ejecutar el ejemplo de sesión:
node dist/session-example.jsPara ejecutar el ejemplo de filtrado avanzado:
node dist/advanced-filtering-example.jsLicencia
Instituto Tecnológico de Massachusetts (MIT)