Liberar el servidor MCP
Una implementación de servidor de Protocolo de contexto de modelo (MCP) que se integra con el sistema Unleash Feature Toggle.
Descripción general
Este proyecto conecta las aplicaciones LLM con el sistema de indicadores de características Unleash mediante el Protocolo de Contexto de Modelo (MCP). Permite a las aplicaciones de IA:
Comprobar el estado de la bandera de función desde Unleash
Exponer información de indicadores de características a los LLM
Crear una bandera de característica
Actualizar la bandera de función
Listar todos los proyectos
Related MCP server: Memory Cache Server
Tabla de contenido
Requisitos
Node.js (v18 o superior)
TypeScript (v5.0 o superior)
Acceso a una instancia de servidor Unleash
Instalación
# Install dependencies
npm iArquitectura
El servidor Unleash MCP actúa como un puente entre las aplicaciones LLM y el sistema de indicadores de características de Unleash:
+----------------+ +-------------------+ +----------------+
| | | | | |
| LLM App | <--> | Unleash MCP | <--> | Unleash API |
| (MCP Client) | | Server | | Server |
| | | | | |
+----------------+ +-------------------+ +----------------+Desarrollo
Estructura del proyecto
unleash-mcp-server/
├── src/
│ ├── index.ts # Main entry point
│ ├── server.ts # Server implementation
│ ├── config.ts # Configuration handling
│ ├── transport/ # MCP transport implementations
│ │ ├── http.ts # HTTP/SSE transport
│ │ └── stdio.ts # STDIO transport
│ ├── unleash/ # Unleash API client implementations
│ │ ├── unleash-client.ts # Main Unleash client
│ │ ├── get-feature-flag.ts
│ │ └── get-all-projects.ts
│ ├── resources/ # MCP resource implementations
│ │ ├── flags.ts # Feature flag resources
│ │ └── projects.ts # Project resources
│ ├── tools/ # MCP tool implementations
│ │ ├── get-flag.ts # Get feature flag tool
│ │ └── get-projects.ts # Get projects tool
│ └── prompts/ # MCP prompt implementations
│ ├── flag-check.ts # Check single flag
│ └── batch-flag-check.ts # Check multiple flags
├── tests/ # Tests
└── package.json # Project configurationEstándares de codificación
Convenciones de nomenclatura :
Archivos: utilice kebab-case.ts (por ejemplo,
feature-flag.ts)Clases: utilice PascalCase (por ejemplo,
UnleashClient)Funciones/Métodos: utilizar camelCase (por ejemplo,
getFlagStatus)Interfaces/Tipos: utilizar PascalCase (por ejemplo,
FeatureFlagConfig)
Importaciones :
Incluya siempre la extensión .js al importar archivos locales
Seguir el orden de importación: Integraciones de Node.js → Dependencias externas → Importaciones locales
Utilice exportaciones con nombre en lugar de exportaciones predeterminadas
Documentación :
Utilice comentarios JSDoc para funciones, clases e interfaces públicas
Documente la lógica compleja con comentarios en línea
Edificio
# Compile TypeScript
npm run build
# Run the server
npm startPruebas
# Run tests
npm testInspeccionando
# MCP stdio inspect
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
# MCP sse inspect
npm start
npx @modelcontextprotocol/inspectorCómo utilizar
Para la configuración de Claude o Cursor:
{
"mcpServers": {
"unleash": {
"command": "npx",
"args": [
"-y",
"unleash-mcp"
],
"env": {
"UNLEASH_URL": "YOUR_UNLEASH_END_POINT",
"UNLEASH_API_TOKEN": "YOUR_UNLEASH_API_TOKEN",
"MCP_TRANSPORT": "stdio",
"MCP_HTTP_PORT": 3001
}
}
}
}Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Apoya el proyecto
Si este proyecto te resulta útil, ¡considera comprarme un café!
Escanee el código QR de arriba o haga clic aquí para apoyar el desarrollo de este proyecto.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.