Servidor MCP de Electron Terminal
En un mundo ideal, los proveedores proporcionarían su propia integración MCP para el terminal, pero mientras tanto, este proyecto proporciona un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los clientes interactuar con un terminal del sistema que se ejecuta dentro de una aplicación Electron. Esto permite ejecutar comandos, gestionar sesiones de terminal y obtener resultados mediante programación.
El sistema consta de dos partes principales:
- Servidor MCP (
index.js
): Un script de Node.js que recibe solicitudes MCP mediante la entrada/salida estándar (stdio). Utiliza@modelcontextprotocol/sdk
y actúa como puente hacia el backend de Electron. Inicia automáticamente el backend de Electron si no está en ejecución. Requiere quemcp-package.json
especifique"type": "module"
. - Backend de Electron (
main.js
): El proceso principal de la aplicación Electron. Ejecuta un servidor HTTP Express (puerto 3000 predeterminado) con el que se comunica el servidor MCP (index.js
) para realizar comprobaciones de estado y llamadas a la API. Este backend gestiona los procesos de terminal mediantenode-pty
dentro de instancias ocultasBrowserWindow
que carganterminal.html
.
2. Capturas de pantalla
Así es como se ve la interacción del terminal dentro de un cliente como Claude Desktop:
Ventana del escritorio de Claude con salida de terminal:
Ventana terminal de electrones individuales:
3. Instalación
- Requisitos previos: asegúrese de tener Node.js y npm instalados.
- Clonar: clona el repositorio si aún no lo has hecho.
- Instalar dependencias: instale módulos de Node tanto para el servidor MCP como para la aplicación Electron.
- Reconstruir módulos nativos: reconstruya módulos nativos (como
node-pty
) para Electron.(Consulterebuild.js
para obtener más detalles)
3. Uso
- Iniciar el servidor MCP: Ejecute el script
index.js
con Node.js. Esto escuchará los comandos MCP en stdio e intentará iniciar automáticamente el proceso backend de Electron (main.js
) si no se está ejecutando y escuchando en el puerto HTTP esperado.Nota: El proceso Electron se ejecuta oculto en segundo plano y se reinicia automáticamente cuando es necesario y siempre se reutilizará si es posible. - Interacción mediante MCP: Los clientes se conectan al proceso
node index.js
mediante stdio y usan el comandouse_mcp_tool
. El nombre del servidor se define enindex.js
como "Electron Terminal".Herramientas disponibles:terminal_start
: crea una nueva sesión de terminal y ejecuta un comando inicial.- Entrada:
{ "command": "string" }
- Salida:
{ "content": [...], "sessionId": "string" }
GXP5
- Entrada:
terminal_execute
: ejecuta un comando en una sesión existente.- Entrada:
{ "command": "string", "sessionId": "string" }
- Salida:
{ "content": [...] }
(El ID de sesión se incluye en el contenido del texto) GXP6
- Entrada:
terminal_get_output
: recupera la salida acumulada de una sesión.- Entrada:
{ "sessionId": "string" }
- Salida:
{ "content": [...] }
GXP7
- Entrada:
terminal_stop
: finaliza un proceso de sesión de terminal específico.- Entrada:
{ "sessionId": "string" }
- Salida:
{ "content": [...] }
GXP8
- Entrada:
terminal_get_sessions
: enumera todas las sesiones actualmente activas administradas por el backend de Electron.- Aporte:
{}
- Salida:
{ "content": [...] }
(El contenido contiene una cadena JSON de sesiones activas) GXP9
- Aporte:
5. Sinergia con el servidor MCP del sistema de archivos
Este servidor MCP de Terminal Electron funciona de forma muy eficaz en conjunto con el Servidor MCP del Sistema de Archivos . Puede usar el servidor del Sistema de Archivos para explorar directorios, leer/escribir archivos y, a continuación, usar este servidor de terminal para ejecutar comandos dentro de esos directorios o relacionados con ellos, lo que proporciona una experiencia integral de desarrollo e interacción remota que se integra a la perfección, por ejemplo, con la función de búsqueda en internet integrada en Claude Desktop.
6. Requisitos
- Node.js (se recomienda v20 o posterior, yo uso node 22)
- npm
- Sistema operativo compatible con Electron (Windows, macOS, Linux)
7. Configuración
Configuración del servidor MCP de Claude Desktop
Ubicación
El archivo claude_desktop_config.json
debe ubicarse en el directorio AppData de su usuario:
- Windows:
C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
Claude Desktop utiliza este archivo para descubrir y configurar servidores MCP externos.
Propósito y Estructura
El archivo de configuración define los servidores MCP que Claude Desktop puede iniciar y a los que puede conectarse. Cada entrada de servidor especifica cómo iniciar el proceso del servidor.
mcpServers
: un objeto donde cada clave es un nombre de servidor y el valor es su configuración de lanzamiento.- Ejemplo de configuración del servidor (
command-terminal
) :command
: el ejecutable a ejecutar (por ejemplo,node
para servidores Node.js).args
: una matriz de argumentos pasados al comando (por ejemplo, la ruta al script del servidor MCP).
Ejemplo
Explicaciones de campo
mcpServers
: mapeo de objetos de nivel superior de los nombres de servidores a sus configuraciones.command-terminal
: Ejemplo de nombre de servidor. Se pueden definir varios servidores en este objeto.command
: El ejecutable utilizado para iniciar el servidor MCP.args
: argumentos pasados al comando, como la ruta a la secuencia de comandos de su servidor.
8. Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Un servidor de protocolo de contexto de modelo que permite a los clientes interactuar con una terminal del sistema que se ejecuta en una aplicación Electron, lo que permite ejecutar comandos, administrar sesiones de terminal y recuperar resultados mediante programación.
- Capturas de pantalla
- Instalación
- Uso
- Sinergia con el servidor MCP del sistema de archivos
- Requisitos
- Configuración
- Licencia
Related Resources
Related MCP Servers
- -securityFlicense-qualityThis server enables running a Model Context Protocol in a web browser with functionalities including arithmetic operations and session-based key-value storage.Last updated -2TypeScript
- -securityFlicense-qualityA Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.Last updated -Python
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -1121JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables seamless execution of commands, Python code, web content fetching, and reusable task management with secure credentials handling.Last updated -2PythonMIT License