Unleash MCP 服务器
一个集成了Unleash Feature Toggle系统的模型上下文协议(MCP)服务器实现。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"unleash": {
"args": [
"-y",
"unleash-mcp"
],
"command": "npx",
"env": {
"MCP_HTTP_PORT": 3001,
"MCP_TRANSPORT": "stdio",
"UNLEASH_API_TOKEN": "YOUR_UNLEASH_API_TOKEN",
"UNLEASH_URL": "YOUR_UNLEASH_END_POINT"
}
}
}
}
该服务需要配置环境变量:MCP_HTTP_PORT、MCP_TRANSPORT、UNLEASH_API_TOKEN、UNLEASH_URL
服务介绍
解锁 MCP 服务器
这是一个集成了 Unleash 功能开关系统的 Model Context Protocol (MCP) 服务器实现。
概览
该项目通过使用 Model Context Protocol (MCP),在 LLM 应用程序和 Unleash 功能开关系统之间提供了一个桥梁。它允许 AI 应用来:
- 从 Unleash 检查功能开关状态
- 向 LLMs 暴露功能开关信息
- 创建功能开关
- 更新功能开关
- 列出所有项目
目录
需求
- Node.js(v18 或更高版本)
- TypeScript(v5.0 或更高版本)
- 访问 Unleash 服务器实例的权限
安装
# Install dependencies
npm i
架构
Unleash MCP 服务器作为 LLM 应用程序和 Unleash 功能开关系统之间的桥梁:
+----------------+ +-------------------+ +----------------+
| | | | | |
| LLM App | <--> | Unleash MCP | <--> | Unleash API |
| (MCP Client) | | Server | | Server |
| | | | | |
+----------------+ +-------------------+ +----------------+
开发
项目结构
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 configuration
编码标准
-
命名约定:
- 文件:使用 kebab-case.ts(例如,
feature-flag.ts) - 类:使用 PascalCase(例如,
UnleashClient) - 函数/方法:使用 camelCase(例如,
getFlagStatus) - 接口/类型:使用 PascalCase(例如,
FeatureFlagConfig)
- 文件:使用 kebab-case.ts(例如,
-
导入:
- 导入本地文件时始终包含 .js 扩展名
- 遵循导入顺序:Node.js 内置模块 → 外部依赖 → 本地导入
- 使用命名导出而非默认导出
-
文档:
- 对公共函数、类和接口使用 JSDoc 注释
- 用内联注释记录复杂逻辑
构建
# Compile TypeScript
npm run build
# Run the server
npm start
测试
# Run tests
npm test
检查
# MCP stdio inspect
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
# MCP sse inspect
npm start
npx @modelcontextprotocol/inspector
如何使用
对于 Claude 或 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
}
}
}
}
贡献
欢迎贡献!请随时提交 Pull Request。
支持项目
如果您觉得这个项目有用,请考虑给我买杯咖啡!
扫描上面的二维码或点击这里来支持本项目的开发。
许可证
本项目采用 MIT 许可证 - 详情见 LICENSE 文件。