Integrations
Loads environment variables from .env files for server configuration, enabling customization of transport types, HTTP settings, authentication, and logging options.
Provides HTTP request utilities through the 'serviceRequest' function in httpUtils.ts, supporting authenticated API requests with OAuth2 or API key authentication, retries, and response validation.
Implements the HTTP transport layer using Express to handle POST requests to the /mcp endpoint, process JSON-RPC messages, and support stateless request handling.
PLANTILLA DE SERVIDOR MCP
Bienvenido a MCP-SERVER-TEMPLATE , un proyecto de plantilla para implementar un servidor de Protocolo de Contexto de Modelo (MCP) con el SDK oficial de TypeScript. Este proyecto proporciona una base para crear servidores MCP con y sin estado, compatibles con diferentes mecanismos de transporte como HTTP y E/S estándar (stdio).
Tabla de contenido
- Descripción general
- Prerrequisitos
- Instalación
- Configuración
- Ejecución del servidor
- Pruebas
- Formato de código
- Estructura del proyecto
- Solución de problemas
- Contribuyendo
- Licencia
- Expresiones de gratitud
Descripción general
Este proyecto, MCP-SERVER-TEMPLATE
, es una plantilla de inicio basada en TypeScript para crear servidores MCP (Protocolo de Contexto de Modelo) con el SDK oficial. El servidor actúa como interfaz entre las consultas del usuario y la ejecución de la herramienta, permitiendo que los asistentes de IA y los sistemas externos invoquen herramientas dinámicamente, interpreten indicaciones y gestionen recursos de forma modular y extensible.
Capacidades clave
- Arquitectura modular : el proyecto está dividido en módulos claros para configuración, gestión de transporte, registro de herramientas, orquestación de servidores y utilidades auxiliares, lo que promueve la separación de preocupaciones y la facilidad de mantenimiento.
- Abstracción de transporte : soporte integrado para múltiples tipos de transporte, incluidos:
- HTTP (sin estado) : cada solicitud genera una nueva instancia de servidor MCP para lograr un aislamiento completo y cumplimiento con las prácticas RESTful.
- STDIO (con estado) : para integraciones de escritorio o basadas en CLI que requieren comunicación persistente.
- Fácilmente extensible a transportes futuros como SSE o WebSocket a través de una interfaz unificada y un patrón de fábrica.
- Inyección de dependencia : un sistema DI personalizado inyecta servicios como configuración y registro en herramientas y capas de transporte, lo que garantiza la capacidad de prueba y el desacoplamiento.
- Sistema de herramientas : Las herramientas son clases aisladas que definen:
- Un nombre y una descripción únicos
- Un esquema Zod para la validación de entrada
- Una función
execute
para manejar la lógica empresarial - Esquema JSON generado automáticamente para introspección externa
- Extensibilidad de indicaciones y recursos : se incluye un andamiaje para soportar plantillas de indicaciones y obtención dinámica de recursos, lo que permite una futura integración con LLM para casos de uso de orquestación de indicaciones o generación aumentada por recuperación (RAG).
- Pruebas y depuración integradas :
- Inspector MCP : GUI para visualizar llamadas de herramientas, flujos de entrada/salida y depuración en vivo.
- Script de prueba HTTP : envía solicitudes JSON-RPC para probar las respuestas del punto final.
- Pruebas unitarias : marco de pruebas basado en Jest para la lógica de herramientas y utilidades.
- Configurable y seguro : fácilmente ajustable a través de archivos de configuración
.env
y de tiempo de ejecución para:- Credenciales de autenticación y claves API
- Puertos de servidor y opciones de transporte
- Niveles de registro y comportamientos de la sesión
Casos de uso
Esta plantilla es ideal para:
- Creación de servidores MCP conversacionales
- Creación de un backend para administrar herramientas invocables para flujos de trabajo basados en LLM
Ya sea que esté creando un prototipo de una cadena de herramientas LLM, integrándola con sistemas propietarios o preparando un backend asistente MCP de producción escalable, este proyecto ofrece una solución lista para extender y completamente estructurada.
Prerrequisitos
- Node.js (versión 18.x o posterior recomendada)
- npm (Administrador de paquetes de Node)
- Git (para clonar el repositorio)
Instalación
- Clonar el repositorio:Copy
- Instalar dependencias:Esto instalará tanto las dependencias de producción (por ejemplo,Copy
@modelcontextprotocol/sdk
,express
,axios
) como las dependencias de desarrollo (por ejemplo,typescript
,ts-node
,jest
) como se define enpackage.json
. - Asegúrese de que el paquete
@modelcontextprotocol/sdk
(versión^1.10.1
) esté instalado, ya que es la dependencia principal para la funcionalidad de MCP.
Configuración
El proyecto utiliza un sistema de configuración gestionado mediante variables de entorno y dos archivos clave en src/core/config/
. La configuración se define en ConfigService
y runtimeConfig
, lo que permite personalizar los tipos de transporte, el registro y las integraciones con API externas.
Opciones de configuración
- Variables de entorno (cargadas a través de
dotenv
enruntimeConfig.ts
):TRANSPORT_TYPE
: Establece el mecanismo de transporte ('http'
o'stdio'
, predeterminado:'stdio'
).HTTP_PORT
: Puerto para el servidor HTTP (predeterminado:3000
).HTTP_HOST
: Host para el servidor HTTP (predeterminado:localhost
).SESSION_SUPPORT
: habilita o deshabilita el soporte de sesión (valor predeterminado:'true'
).LOG_LEVEL
: Nivel de registro (por ejemplo,'info'
,'debug'
, predeterminado:'info'
).MCP_INSPECTOR_PORT
: Puerto para el inspector MCP (predeterminado:6274
).
Ejemplo de configuración
Establecer variables de entorno en un archivo .env
:
Ejecución del servidor
El servidor se inicia a través del punto de entrada src/index.ts
, que orquesta el proceso de inicialización y arranque mediante inyección de dependencia y configuraciones.
Proceso de inicio
- Configuración del entorno :
index.ts
carga variables de entorno utilizandodotenv
para garantizar que las configuraciones (por ejemplo,TRANSPORT_TYPE
,HTTP_PORT
) estén disponibles. - Inicialización de dependencias : utiliza
createDependencies
para configurar dependencias compartidas como el registrador yConfigService
. - Configuración de transporte : el transporte (
HttpTransport
oStdioTransport
) se configura a través deruntimeConfig
en función de la configuraciónTRANSPORT_TYPE
. - Inicialización del servidor : crea una instancia
MCPServer
con el transporte y las dependencias configuradas. - Inicio del servidor : inicia el servidor de forma asincrónica, gestionando cualquier error fatal registrándolo y saliendo con un código de falla.
Iniciando el servidor
- Modo de producción :
- Construya el proyecto para compilar TypeScript a JavaScript:Esto ejecutaCopy
tsc
para generar la carpetadist/
con archivos JavaScript compilados. - Iniciar el servidor:Esto ejecutaCopy
node dist/index.js
para ejecutar el servidor compilado. - Para
http
, el servidor escucha enhttp://localhost:3000/mcp
(puerto y host configurables a través deHTTP_PORT
yHTTP_HOST
). - Para
stdio
, el servidor lee y escribe en la consola.
- Construya el proyecto para compilar TypeScript a JavaScript:
- Modo de desarrollo :
- Ejecute el servidor directamente con TypeScript usando
ts-node
:Esto ejecutaCopyts-node src/index.ts
, lo que permite una iteración más rápida sin un paso de compilación.
- Ejecute el servidor directamente con TypeScript usando
Notas
- Asegúrese de que las variables de entorno o la configuración
runtimeConfig
estén configuradas correctamente antes de iniciar el servidor. - Verifique la salida de la consola en busca de registros (controlados por
LOG_LEVEL
) para verificar que el servidor se inició correctamente.
Pruebas
El proyecto incluye varios scripts para probar el servidor, depurar su comportamiento y verificar la funcionalidad mediante pruebas automatizadas y el Inspector MCP.
Pruebas unitarias
Ejecute pruebas unitarias usando Jest para verificar la funcionalidad de componentes individuales:
Esto ejecuta jest
y ejecuta todas las pruebas definidas en el proyecto (p. ej., herramientas de prueba, utilidades o lógica del servidor). Asegúrate de que los archivos de prueba estén configurados con Jest y ts-jest
para compatibilidad con TypeScript.
Prueba de transporte HTTP
Se proporciona un script de prueba para el transporte HTTP para verificar la funcionalidad básica del servidor MCP.
Detalles del script ( src/scripts/testHttpTransport.js
)
- Propósito : prueba el transporte HTTP enviando una solicitud
tools/list
JSON-RPC al servidor y validando la respuesta. - Dependencias :
- Utiliza
axios
para enviar solicitudes HTTP POST al servidor.
- Utiliza
- Funcionalidad :
- Envía una solicitud JSON-RPC 2.0 a
http://localhost:3000/mcp
conmethod: 'tools/list'
,id: 1
y los encabezados apropiados. - Valida la respuesta para garantizar:
- La respuesta se adhiere a JSON-RPC 2.0 (
jsonrpc: '2.0'
). - El
id
de respuesta coincide con la solicitud (id: 1
). - La respuesta contiene un campo
result
con la clavetools
esperada.
- La respuesta se adhiere a JSON-RPC 2.0 (
- Registra un mensaje de éxito con los datos de respuesta si son válidos, o un error con los datos recibidos si el formato es inesperado.
- Envía una solicitud JSON-RPC 2.0 a
- Manejo de errores :
- Captura y registra cualquier falla de solicitud (por ejemplo, errores de red, servidor que no se ejecuta) con el mensaje de error.
Ejecución de la prueba
- Asegúrese de que el servidor se esté ejecutando con
TRANSPORT_TYPE
configurado en'http'
:Copy - Ejecute el script de prueba:Esto ejecutaCopy
ts-node src/scripts/testHttpTransport.ts
.
Arranque y prueba combinados
Para iniciar el servidor y ejecutar la prueba HTTP en un solo comando:
Esto ejecuta npm run start & npm run test:http
, iniciando el servidor en segundo plano y ejecutando inmediatamente el script de prueba HTTP.
Resultado esperado
- Caso de éxito : si el servidor responde correctamente, el script registra:Copy
- Caso de error (formato de respuesta no válido) : si el formato de respuesta es inesperado, el script registra:Copy
- Caso de falla (la solicitud falla) : si la solicitud falla (por ejemplo, el servidor no se ejecuta), el script registra:Copy
Notas
- El script asume que el servidor se ejecuta en
http://localhost:3000/mcp
. Ajuste elendpoint
en el script siHTTP_PORT
oHTTP_HOST
son diferentes. - Asegúrese de que herramientas como
CalculatorTool
estén registradas para verlas en la respuesta detools/list
.
Depuración del inspector MCP
El Inspector MCP es una herramienta poderosa para depurar y monitorear el servidor MCP, proporcionando una interfaz web para inspeccionar el estado y las interacciones del servidor.
Detalles del script ( src/scripts/mcpInspectorScript.ts
)
- Propósito : inicia el Inspector MCP, espera que su interfaz web esté lista y lo abre en un navegador para depurar el servidor MCP localmente usando el transporte stdio.
- Dependencias :
- Utiliza
child_process
para generar el procesomcp-inspector
y ejecutar comandos de apertura del navegador. - Utiliza
axios
para comprobar si se puede acceder a la interfaz web de MCP Inspector. - Aprovecha la inyección de dependencia a través de
createDependencies()
para acceder aConfigService
para la configuración del puerto.
- Utiliza
- Funcionalidad :
- Genera el proceso
mcp-inspector
usandonpx mcp-inspector node dist/index.js
y heredando stdio para la salida de la consola. - Implementa
waitUntilInspectorIsReady
para sondear la interfaz de usuario web (puerto predeterminado:6274
, configurable a través deMCP_INSPECTOR_PORT
) con reintentos (20 intentos, retraso de 500 ms). - Abre la interfaz de usuario web en un navegador específico de la plataforma:
- macOS:
open
- Windows:
start
- Linux:
xdg-open
- macOS:
- Registra una tabla de resumen de lanzamiento con URL:
- Interfaz de usuario del inspector MCP:
http://localhost:6274
(o puerto configurado) - Servidor proxy MCP:
http://localhost:6277
- Interfaz de usuario del inspector MCP:
- Genera el proceso
- Manejo de errores :
- Vuelve a intentarlo si la interfaz web no está disponible de inmediato.
- Lanza un error y sale si el inspector no logra iniciarse después de varios intentos.
- Mata el proceso del inspector en caso de falla y registra un mensaje para verificar o reiniciar manualmente.
Ejecución del inspector MCP
- Asegúrese de que el servidor esté compilado (por ejemplo,
npm run build
para generardist/index.js
). - Ejecute el script MCP Inspector:Esto ejecutaCopy
ts-node src/scripts/start-mcp-inspector.ts
.
Construcción e inspección combinados
Para construir el proyecto y ejecutar el Inspector MCP en un solo comando:
Esto ejecuta npm run build && npm run mcp:inspector
, lo que garantiza que el proyecto esté compilado antes de iniciar el inspector.
Consejos de depuración
- Utilice la interfaz de usuario de MCP Inspector para supervisar las solicitudes del servidor, las llamadas de herramientas y las respuestas.
- Verifique la salida de la consola para ver si hay registros de inicio o errores si el inspector no se inicia.
- Verifique que
MCP_INSPECTOR_PORT
no esté siendo utilizado por otro servicio.
Formato de código
El proyecto utiliza Prettier para mantener un formato de código consistente en todos los archivos.
Código de formato
Para formatear todos los archivos del proyecto:
Esto ejecuta prettier --write .
, formateando automáticamente todos los archivos compatibles (por ejemplo, .ts
, .js
, .json
).
Comprobar formato
Para comprobar si todos los archivos cumplen las reglas de formato de Prettier:
Esto ejecuta prettier --check .
, informando cualquier archivo que no se ajuste a las reglas de formato sin modificarlos.
Estructura del proyecto
src/core/config/
configService.ts
: ImplementaConfigService
, una clase para administrar la configuración del servidor. Carga la configuración de las variables de entorno con valores predeterminados para el tipo de transporte, la configuración del servidor HTTP, el nivel de registro, las URL de la API (p. ej., MealDB), las credenciales de autenticación y el puerto del inspector de MCP.runtimeConfig.ts
: Define la configuración del entorno de ejecución mediantedotenv
para cargar las variables de entorno. Establece la configuración de transporte (transportType
, puerto) y la estrategia de autenticación (authStrategy
,tokenSecret
,username
,password
).
src/core/dependencies/
dependencies.ts
: Implementa la inyección de dependencias con la interfazDependencies
, proporcionando unlogger
(mediante Winston) y una instanciaConfigService
. La funcióncreateDependencies
configura dinámicamente los transportes de registro segúntransportType
(stderr parastdio
, stdout para otros, además de un archivo de registrocombined.log
) y exporta unlogger
singleton para uso global.
src/core/server/
transports/
http/
server.ts
: ImplementaHttpTransport
, un transporte HTTP sin estado que utiliza Express. Gestiona solicitudesPOST /mcp
, procesa mensajes JSON-RPC con autenticación opcional mediante token de portador, almacena las respuestas en unResponseMap
y admite el envío asíncrono de respuestas. Se basa enDependencies
inyectadas para el registro y la configuración.stdio/
server.ts
: ImplementaStdioTransport
, un transporte que utilizaStdioServerTransport
del SDK. Gestiona la comunicación stdin/stdout, inicia y cierra el transporte, y gestiona el envío de mensajes con registro de errores medianteDependencies
(dependencias) inyectadas en las dependencias.baseTransport.ts
: Define la interfazBaseTransport
y la clase abstractaAbstractTransport
, extendiendo la interfazTransport
del SDK. Especifica métodos (start
,send
,close
,isRunning
) y controladores de eventos (onmessage
,onerror
,onclose
) para las implementaciones de transporte, proporcionando un contrato común paraHttpTransport
yStdioTransport
.transportFactory.ts
: ImplementaTransportFactory
, una clase estática que crea instancias deHttpTransport
oStdioTransport
según el tipo deTransportConfig
(p. ej.,'http'
o'stdio'
). Utiliza la inyección de dependencias conDependencies
para proporcionar registro y configuración, generando un error para los tipos de transporte no compatibles.
mcpServer.ts
: ImplementaMCPServer
, la clase principal del servidor que integra elServer
del SDK de MCP con un transporte (HttpTransport
oStdioTransport
). Inicializa el servidor, configura unRequestHandler
con unToolRegistry
, conecta el transporte y gestiona el paso de mensajes, errores y respuestas medianteDependencies
inyectadas para el registro.requestHandler.ts
: ImplementaRequestHandler
, que registra los controladores para las solicitudestools/list
ytools/call
mediante el SDK de MCP. Enumera las herramientas disponibles y ejecuta llamadas a herramientas con argumentos validados (mediante Zod), admite tokens de autenticación y genera errores para herramientas (ToolNotFoundError
) o argumentos (ValidationError
) no válidos. UtilizaDependencies
inyectadas para el registro.
src/core/toolManagement/
toolFactory.ts
: ImplementaToolFactory
, una clase que crea instancias de herramientas (p. ej.,calculatorTool
) mediante inyección de dependencias conDependencies
. Define un tipo genéricoToolConstructor
y gestiona los errores de instanciación mediante registro.toolRegistry.ts
: ImplementaToolRegistry
, una clase que gestiona el registro y la recuperación de herramientas. UtilizaToolFactory
para instanciar herramientas desdetoolClasses
, las almacena en unMap
y proporciona métodos para registrar, obtener y listar herramientas con sus metadatos (nombre, descripción, esquema de entrada). Registra el estado de carga y los errores medianteDependencies
inyectadas por dependencias.errors.ts
: define clases de error personalizadas para la gestión de herramientas, incluyendoToolNotFoundError
(se lanza cuando una herramienta solicitada no está registrada) yValidationError
(se lanza cuando los argumentos de la herramienta no pasan la validación, por ejemplo, a través de Zod).types.ts
: Define tipos de TypeScript para configuraciones de transporte y autenticación. IncluyeTransportType
('stdio'
,'sse'
,'http'
),TransportConfig
(con opciones para SSE o HTTP y autenticación),SSETransportConfig
(puerto, CORS, autenticación),HttpStreamTransportConfig
(puerto, modo de respuesta, CORS, sesión, reanudabilidad, autenticación) yAuthConfig
(estrategia, credenciales).
src/prompts/
: Directorio para plantillas de indicaciones (actualmente vacío, reservado para una futura implementación).src/resources/
: Directorio para la gestión de recursos (actualmente vacío, reservado para futuras implementaciones).src/scripts/
testHttpTransport.js
: script de prueba para el transporte HTTP para verificar la funcionalidad básica enviando una solicitudtools/list
y validando la respuesta.mcpInspectorScript.ts
: Script para iniciar el Inspector MCP, esperar a que su interfaz web esté lista y abrirlo en un navegador para depurar el servidor MCP. Utiliza inyección de dependencias para accederConfigService
y configurar los puertos, y gestiona la apertura del navegador según la plataforma.
src/tools/
types/
ITool.ts
: Define la interfazITool
para las herramientas, especificandoname
,description
,schema
(tipo Zod),jsonSchema
y el métodoexecute
para procesarCallToolRequest
JSON-RPC. ExportaDependencies
para las implementaciones de herramientas.baseTool.ts
: implementa una claseBaseTool
abstracta que reduce el código repetitivo, maneja la inyección de dependencia conDependencies
y convierte automáticamente los esquemas Zod en esquemas JSON usandozod-to-json-schema
para introspección, documentación y generación de UI.index.ts
: exportatoolClasses
como una matriz de constructores de herramientas (por ejemplo,CalculatorTool
) para carga dinámica por parte deToolRegistry
, lo que permite una fácil extensión con nuevas herramientas.calculatorTool.ts
: ImplementaCalculatorTool
, una herramienta concreta que realiza operaciones aritméticas básicas (add
,subtract
,multiply
,divide
) con validación de entrada a través de Zod, manejo de errores (por ejemplo, división por cero usandoHttpError
) y registro a través deDependencies
inyectadas por dependencia.
utils/
httpUtils.ts
: Proporciona funciones de utilidad para operaciones HTTP, incluyendoserviceRequest
para realizar solicitudes HTTP autenticadas (OAuth2 o clave API) con reintentos y gestión de tiempos de espera,getAuthToken
para obtener y almacenar en caché tokens OAuth2,buildQueryString
para crear cadenas de consulta yvalidateResponse
para la validación de respuestas. Se integra conConfigService
para la configuración.index.ts
: Exporta funciones de utilidad para su uso en herramientas y otros componentes.
src/index.ts
: Punto de entrada para iniciar el servidor MCP. Carga variables de entorno mediantedotenv
, inicializa dependencias concreateDependencies
, crea una instanciaMCPServer
con el transporte deruntimeConfig
e inicia el servidor asincrónicamente, gestionando errores fatales mediante registro y cierre.
Solución de problemas
- Error "Servidor no inicializado" :
- Asegúrese de que los controladores estén registrados y las capacidades estén configuradas en la configuración
MCPServer
(a través deRequestHandler
). - Verifique que el transporte esté conectado inmediatamente antes de manejar cada solicitud (para HTTP).
- Utilice el enfoque sin estado (nuevo servidor por solicitud) si el error persiste con un servidor reutilizado.
- Asegúrese de que los controladores estén registrados y las capacidades estén configuradas en la configuración
- Problemas de rendimiento :
- Crear un nuevo servidor por solicitud puede afectar el rendimiento con cargas de trabajo elevadas. Considere reutilizar un único
MCPServer
con administración de sesiones si es necesario, pero realice pruebas exhaustivas.
- Crear un nuevo servidor por solicitud puede afectar el rendimiento con cargas de trabajo elevadas. Considere reutilizar un único
- Problemas de configuración :
- Asegúrese de que las variables de entorno estén configuradas correctamente en un archivo
.env
o se pasen directamente al proceso. - Verifique los registros
ConfigService
para verificar las configuraciones cargadas si fallan las integraciones de API externas (por ejemplo, MealDB, OMDB).
- Asegúrese de que las variables de entorno estén configuradas correctamente en un archivo
- Problemas de registro :
- Verifique que la variable de entorno
LOG_LEVEL
coincida con los niveles esperados (por ejemplo,'info'
,'debug'
). - Para el transporte
stdio
, asegúrese de que los registros se dirijan a stderr según lo previsto; verifiquecombined.log
para ver los registros basados en archivos.
- Verifique que la variable de entorno
- Problemas de transporte :
- Para
HttpTransport
, asegúrese de que el puerto esté disponible y que no se estén ejecutando servicios conflictivos. - Para
StdioTransport
, verifique la disponibilidad de stdin/stdout si no se procesan mensajes. - Si
TransportFactory
falla, verifique queTRANSPORT_TYPE
coincida con un tipo admitido ('http'
o'stdio'
) en la configuración.
- Para
- Problemas de manejo de solicitudes :
- Si
tools/list
o las solicitudestools/call
fallan, verifiqueToolRegistry
para ver las herramientas registradas. - Valide los argumentos de la herramienta contra el esquema en
CallToolRequestSchema
para evitarValidationError
. - Asegúrese de que se proporcionen tokens de autenticación si las herramientas lo requieren.
- Si
- Problemas de gestión de herramientas :
- Si las herramientas no se pueden cargar, verifique que
toolClasses
ensrc/tools/index.ts
incluya implementaciones de herramientas válidas. - Verifique los registros
ToolFactory
para detectar errores de instanciación y asegurarse de queDependencies
se inyecten correctamente.
- Si las herramientas no se pueden cargar, verifique que
- Problemas del inspector MCP :
- Si el Inspector MCP no puede iniciarse, verifique que
MCP_INSPECTOR_PORT
(predeterminado:6274
) no esté en uso. - Asegúrese de que
dist/index.js
exista ejecutandonpm run build
antes de iniciar el script. - Verifique la salida de la consola para detectar errores durante el inicio, como problemas de red o dependencias faltantes.
- Si el Inspector MCP no puede iniciarse, verifique que
- Problemas de solicitud HTTP :
- Si
serviceRequest
falla, verifique las configuracionesauthType
,authEndpoint
,clientId
,clientSecret
oapiKey
enConfigService
. - Compruebe si hay problemas de red o errores del servidor (5xx) que puedan provocar reintentos.
- Asegúrese de que la URL y el método de solicitud sean correctos y valide el esquema de respuesta con
validateResponse
.
- Si
- Problemas de prueba de transporte HTTP :
- Si el script
testHttpTransport.js
falla, asegúrese de que el servidor esté ejecutándose conTRANSPORT_TYPE='http'
y escuchando enhttp://localhost:3000/mcp
. - Verifique que el puerto y el host coincidan con el
endpoint
del script (ajuste siHTTP_PORT
oHTTP_HOST
son diferentes). - Verifique las herramientas registradas en
ToolRegistry
; una matriztools
vacía puede indicar un problema de carga de herramientas.
- Si el script
- Problemas de prueba :
- Si
npm test
falla, asegúrese de que Jest esté configurado correctamente conts-jest
para compatibilidad con TypeScript y verifique que existan los archivos de prueba. - Si
npm run mcp:inspector
onpm run mcp:dev
falla, verifique que@modelcontextprotocol/inspector
esté instalado y que el servidor esté compilado (dist/index.js
existe).
- Si
- Problemas de formato :
- Si
npm run format:check
informa problemas, ejecutenpm run format
para corregir el formato automáticamente o ajuste manualmente los archivos para que coincidan con las reglas de Prettier.
- Si
Contribuyendo
No dudes en enviar incidencias o solicitudes de incorporación de cambios en el repositorio de GitHub. ¡Agradecemos cualquier contribución para mejorar la implementación del servidor, añadir nuevas funciones u optimizar el rendimiento!
Licencia
Este proyecto está licenciado bajo la licencia ISC. Consulte el archivo LICENSE
para más detalles.
Expresiones de gratitud
- Construido usando
@modelcontextprotocol/sdk
- Inspirado en ejemplos del repositorio typescript-sdk .
This server cannot be installed
Una plantilla de inicio basada en TypeScript para crear servidores de protocolo de contexto de modelo que permite a los asistentes de IA llamar dinámicamente a herramientas, interpretar indicaciones y administrar recursos a través de una arquitectura modular con soporte para múltiples métodos de transporte.
Related MCP Servers
- AsecurityFlicenseAqualityA starter template for building Model Context Protocol servers that can be integrated with Cursor or Claude Desktop, allowing developers to create custom tools and extensions for AI assistants.Last updated -1289TypeScript
- -securityAlicense-qualityA TypeScript implementation of a Model Context Protocol server that provides a frictionless framework for developers to build and deploy AI tools and prompts, focusing on developer experience with zero boilerplate and automatic tool registration.Last updated -6TypeScriptMIT License
- -securityFlicense-qualityA TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.Last updated -67TypeScript
- -securityFlicense-qualityA Model Context Protocol implementation for managing and serving AI prompts with a TypeScript-based architecture in a monorepo structure.Last updated -28,526,5832TypeScript