MCP Server Executable
Un servidor ejecutable para ejecutar servicios MCP, que incluye encadenamiento de herramientas, gestión de múltiples servicios y soporte de complementos.
Documentación

MCP Server.exe
Lanzador MCP para Xiaozhi y Cursor - MCP For Cursor&xiaozhi
MCP Server.exe es un potente servidor ejecutable que no solo ejecuta servicios MCP (Model Context Protocol) estándar, sino que también ofrece numerosas funciones avanzadas:
- Ejecución en cadena de herramientas: permite combinar varias herramientas en secuencia para implementar flujos de automatización complejos
- Combinación de múltiples servicios MCP: puede ejecutar y gestionar varios servicios MCP simultáneamente, con soporte para modos duales SSE y stdio
- Sistema de herramientas mediante plugins: admite la carga dinámica y configuración de herramientas personalizadas
- Opciones de despliegue flexibles: desde ejecución en un solo equipo hasta despliegue distribuido, cubriendo diversos escenarios de integración
- Recarga automática: supervisa los cambios en
--mcp-configy--mcp-js, y se reinicia automáticamente para aplicar los cambios
MCP Server.exe es un potente servidor ejecutable que no solo ejecuta servicios MCP (Model Context Protocol) estándar, sino que también ofrece numerosas funciones avanzadas:
- Ejecución en cadena de herramientas: admite la combinación secuencial de varias herramientas para automatización compleja
- Múltiples servicios MCP: puede ejecutar y gestionar varios servicios MCP simultáneamente, con soporte para modos SSE y stdio
- Sistema de herramientas mediante plugins: admite la carga dinámica y configuración de herramientas personalizadas
- Despliegue flexible: desde operación independiente hasta despliegue distribuido, cubriendo diversos escenarios de integración
- Recarga automática para cambios de configuración
Uso
# 推荐:通过 CLI 运行(无需本地构建)
npx mcp_exe --mcp-config ./examples/mcp.json
# 或运行打包后的可执行文件(Windows/macOS)
./executables/mcp_server-win-x64.exe --mcp-config ./examples/mcp.json
🎯 Principales escenarios de uso | Main Usage Scenarios
1. Modo de conexión WebSocket | WebSocket Connection Mode
Admite la conexión a otros servicios MCP mediante WebSocket, especialmente adecuado para conectarse a servicios MCP habilitados para WebSocket como xiaozhi.me. Mediante archivos de configuración, puede integrar fácilmente múltiples servicios MCP con xiaozhi.me.
Admite la conexión a otros servicios MCP mediante WebSocket, especialmente adecuado para conectarse a servicios MCP habilitados para WebSocket como xiaozhi.me. Mediante archivos de configuración, puede integrar fácilmente múltiples servicios MCP con xiaozhi.me.

# 使用配置文件连接到 xiaozhi.me / Start in WebSocket mode
npx mcp_exe --ws wss://api.xiaozhi.me/mcp/?token=...xxx --mcp-config ./examples/mcp-sse.json
Ejemplo de configuración | Configuration Example (mcp-sse.json):
{
"mcpServers": {
"Model Server sse": {
"url": "http://127.0.0.1:3000"
}
},
"serverInfo": {
"serverName": "ws-client-mcp-server",
"version": "1.0.0",
"description": "WebSocket 客户端的 MCP 服务器实例",
"author": "shadow"
}
}
Características del modo WebSocket | WebSocket Mode Features:
- Admite comunicación bidireccional en tiempo real | Support real-time bidirectional communication
- Mecanismo de reconexión automática | Automatic reconnection mechanism
- Gestión unificada de múltiples servicios | Unified management of multiple services
- Compatible con el protocolo MCP estándar | Compatible with standard MCP protocol
Proyecto relacionado Lanzador visual xiaozhi-mcp
2. Inicio rápido de servicio independiente | Quick Start Standalone Service
La forma más sencilla de uso: haga doble clic para ejecutar, o inicie un servicio MCP estándar mediante npx.
La forma más sencilla: haga doble clic para ejecutar, o inicie mediante npx.
# 双击运行 mcp_server.exe,或通过命令行启动
./executables/mcp_server-win-x64.exe
# 或
npx mcp_exe
Configuración predeterminada | Default Configuration:
- Puerto de escucha | Listen Port: 3000 (modificable mediante
--port) - Rutas SSE | SSE Endpoints: GET
/establece la sesión, POST/sessions?sessionId=...envía mensajes - Conjunto básico de herramientas integradas | Built-in Basic Tools
- Recarga automática | Auto reload de
--mcp-configy--mcp-js
3. Combinar múltiples servicios MCP | Combine Multiple MCP Services
Utilice el mismo archivo de configuración mcp.json que Cursor para combinar múltiples servicios MCP, con soporte simultáneo de modos de transporte SSE y stdio. De esta manera, puede elegir el modo de transporte adecuado según el escenario de aplicación, mejorando la flexibilidad y escalabilidad del sistema.
Utilice el mismo archivo de configuración mcp.json que Cursor para combinar múltiples servicios MCP, con soporte simultáneo de modos de transporte SSE y stdio.
npx mcp_exe --mcp-config ./examples/mcp.json
Ejemplo de configuración | Configuration Example (mcp.json):
{
"mcpServers": {
"Model Server sse": { "url": "http://127.0.0.1:9090" },
"Model Server - stdio": { "command": "xxx", "args": ["--transport", "stdio"] }
},
"serverInfo": { "serverName": "dynamic-mcp-server" },
"tools": [],
"namespace": "."
}
tools: lista blanca de herramientas permitidas (un array vacío significa que no se filtra)namespace: separador del espacio de nombres combinado, por defecto.(también se puede usar::)
4. Ejecución en cadena de herramientas | Tool Chain Execution
Admite la combinación de múltiples herramientas en una cadena de herramientas para implementar flujos de automatización complejos. Las cadenas de herramientas pueden configurar de forma flexible el flujo de datos y la salida de resultados.
Admite la combinación de múltiples herramientas en una cadena de herramientas para implementar procesos de automatización complejos. Las cadenas de herramientas pueden configurar de forma flexible el flujo de datos y la salida de resultados.
npx mcp_exe --mcp-config ./examples/product-hunt/mcp-tools.json
Ejemplo de configuración | Configuration Example (extracto, ajuste según sus necesidades):
{
"toolChains": [
{
"name": "product_hunt_news",
"description": "get product hunt news",
"steps": [
{ "toolName": "get_product_hunt_url", "args": {} },
{ "toolName": "load_product_hunt_js_code", "args": {} },
{ "toolName": "browser_navigate", "args": {}, "outputMapping": { "url": "content.0.text" }, "fromStep": 0 },
{ "toolName": "browser_execute_javascript", "args": {}, "outputMapping": { "code": "content.0.text" }, "fromStep": 1 },
{ "toolName": "browser_close", "args": {} }
],
"output": { "steps": [3] }
}
]
}
Características de la cadena de herramientas | Tool Chain Features:
- Admite ejecución secuencial de múltiples pasos | Support multi-step sequential execution
- Mapeo flexible del flujo de datos | Flexible data flow mapping (
outputMapping/fromStep) - Puede obtener resultados de cualquier paso | Can get results from any step (
output.steps)
5. Mecanismo de plugins para herramientas personalizadas | Custom Tools Plugin Mechanism
Defina de forma flexible herramientas, recursos y avisos mediante archivos de configuración JavaScript.
Defina de forma flexible herramientas, recursos y avisos mediante archivos de configuración JavaScript.
npx mcp_exe --mcp-js ./examples/custom-mcp-config.js
Ejemplo de configuración | Configuration Example (custom-mcp-config.js):
module.exports = {
// 推荐导出名:configureMcp(也兼容 mcpPlugin)
configureMcp: function(server, ResourceTemplate, z) {
server.tool('myTool', '自定义工具示例', { /* zod schema */ }, async (args) => ({ content: [{ type: 'text', text: 'ok' }] }))
server.resource('custom-echo', new ResourceTemplate('custom-echo://{message}', { list: undefined }), async (uri, { message }) => ({ contents: [{ uri: uri.href, text: message }] }))
server.prompt('custom-prompt', { /* zod */ }, ({ message }) => ({ messages: [{ role: 'user', content: { type: 'text', text: message } }] }))
}
}
6. Modo de tareas programadas | Cronjob Mode
Utilice --cronjob para ejecutar herramientas de forma programada. Las operaciones actualmente admitidas: listTools, callTool. Las tareas se ejecutan inmediatamente al inicio y luego según el período schedule; los resultados se pueden enviar mediante notificaciones de escritorio/correo electrónico/ntfy.
# 示例:结合自定义工具与定时任务
npx mcp_exe --cronjob ./examples/cronjob.json --mcp-js ./examples/product-hunt/custom-mcp-config.js
Ejemplo de configuración | Configuration Example (examples/cronjob.json):
{
"tasks": [
{
"schedule": "*/30 * * * * *",
"operations": [
{ "type": "callTool", "name": "get_product_hunt_url", "arguments": {} }
],
"notify": [
{ "type": "desktop", "title": "任务执行结果", "icon": "" }
]
}
]
}
Soporte de notificaciones | Notifications:
- desktop: burbuja del sistema (requiere entorno de escritorio local)
- email: envío de correo electrónico (requiere proporcionar
to,subject, etc.) - ntfy: envío a
ntfy(requiere proporcionarurl,topic,tags,priority)
Nota: las tareas programadas llaman directamente a las herramientas ya combinadas (incluidas las herramientas SSE remotas/stdio locales); no es necesario especificar el transporte en la tarea.
7. Integración integrada | Embedded Integration
Integre como proceso independiente en cualquier aplicación.
Integre como proceso independiente en cualquier aplicación.
// Node.js 示例 | Node.js Example
const { spawn } = require('child_process')
const mcpServer = spawn('./executables/mcp_server-win-x64.exe', [
'--port', '3000',
'--transport', 'stdio'
])
mcpServer.stdout.on('data', (data) => {
// 处理 MCP 服务器的输出
})
mcpServer.stdin.write(JSON.stringify({
// 发送请求到 MCP 服务器
}))
📚 Documentación detallada | Detailed Documentation
Argumentos de línea de comandos | Command Line Arguments
El servidor admite los siguientes argumentos de línea de comandos para personalizar su comportamiento: El servidor admite los siguientes argumentos de línea de comandos:
| Parámetro | Descripción | Valor predeterminado |
|---|---|---|
--ws <url> | Dirección del servidor WebSocket, habilita el modo de conexión WebSocket | Ninguno |
--mcp-js <路径> | Ruta del archivo de configuración JavaScript de MCP (admite configureMcp o mcpPlugin) | Ninguno |
--mcp-config <路径/json字符串> | Ruta del archivo de configuración JSON de MCP o cadena JSON | Ninguno |
--server-name <name> | Nombre del servidor | mcp_server_exe |
| --port <端口> | Puerto de escucha del servidor | 3000 |
| --transport <模式> | Modo de transporte, admite sse o stdio (aplica en modo no WS) | sse |
| --cronjob <路径/json> | Ruta del archivo de configuración de tareas programadas o cadena JSON | Ninguno |
| --cursor-link | Acceso rápido en Cursor tras el inicio (modo SSE) | Desactivado |
| --log-level <level> | Nivel de registro: TRACE/DEBUG/INFO/WARN/ERROR/FATAL/OUTPUT | INFO |
| --version <version> --description <desc> --author <author> --license <license> --homepage <url> | Metainformación | - |
Sugerencia: si se proporciona --ws, se prioriza el modo WebSocket; de lo contrario, si no se especifica explícitamente, se usa sse de forma predeterminada.
Formato de archivo de configuración | Configuration File Format
El servidor admite el uso de archivos de configuración para configurar simultáneamente los parámetros del servidor y las funciones MCP:
module.exports = {
// MCP 配置函数 | MCP configuration function
configureMcp: function(server, ResourceTemplate, z) {
// 配置资源和工具 | Configure resources and tools
},
// 可选:提供额外的 mcp 配置对象
mcpConfig: { /* mcpServers/tools/toolChains/namespace */ }
}
Recarga automática | Auto Reload
- Supervisa los cambios en el archivo
--mcp-config: reanaliza y reinicia automáticamente el servicio (incluye cadenas de herramientas/espacios de nombres/lista blanca de herramientas, etc.) - Supervisa los cambios en el archivo
--mcp-js: recarga automáticamente losconfigureMcp/mcpPluginpersonalizados
Guía de desarrollo | Development Guide
Instalación | Installation
npm install
Compilación | Build
yarn build # 或 npm run build
Ejecución | Run
npm start
# 或开发模式(SSE):
npm run dev
# WebSocket 开发:
npm run dev-ws
# Cronjob 开发:
npm run dev-cronjob
Empaquetado | Packaging
# Windows 打包
npm run package-win
# macOS 打包(Intel/Apple Silicon)
npm run package-mac-intel
npm run package-mac-arm
El ejecutable empaquetado se generará en el directorio executables.
Registro | Logging
- Controle el nivel mínimo de salida mediante
--log-level(por defectoINFO) - La consola muestra salida con marca de tiempo/categoría/color; el nivel
OUTPUTse usa para salida tal cual, para que las herramientas la analicen
Uso como biblioteca | Library API
Desde v0.11.x, se proporcionan exportaciones estables: McpRouterServer.
// CommonJS
const { McpRouterServer } = require('mcp_exe');
(async () => {
const server = new McpRouterServer({ name: 'my-app' }, { transportType: 'sse', port: 3000 });
await server.importMcpConfig(require('./mcp.json'), null);
await server.start();
})();
// TypeScript / ESM
import { McpRouterServer } from 'mcp_exe';
const server = new McpRouterServer({ name: 'my-app' }, { transportType: 'stdio' });
await server.importMcpConfig(mcpJson, null);
await server.start();
- Las declaraciones de tipos se generan en
dist/index.d.tsy se exponen automáticamente mediantetypes/exports. - La CLI sigue estando disponible mediante
bin/cli.js; la biblioteca y la CLI se pueden usar en paralelo.
📝 Licencia | License
MIT