README
🚀 思科支持MCP服务器
这是一个生产就绪的TypeScript MCP(模型上下文协议)服务器,专为思科支持API设计,具备全面的安全性和双传输支持。该可扩展服务器可访问多个思科支持API,包括漏洞搜索、案例管理和产品生命周期结束信息等。
🚀 快速开始
NPX安装(推荐)
在Claude桌面客户端中以标准输入输出模式启动:
npx mcp-cisco-support
启动带有身份验证的HTTP服务器:
npx mcp-cisco-support --http
# 控制台将显示用于身份验证的令牌
为HTTP模式生成Bearer令牌:
npx mcp-cisco-support --generate-token
获取帮助并查看所有选项:
npx mcp-cisco-support --help
环境设置
-
生成身份验证令牌(用于HTTP模式):
npx mcp-cisco-support --generate-token export MCP_BEARER_TOKEN=<生成的令牌> -
设置思科API凭证:
export CISCO_CLIENT_ID=你的客户端ID export CISCO_CLIENT_SECRET=你的客户端密钥 export SUPPORT_API=bug,case,eox,psirt,product,software # 所有已实现的API(推荐) -
启动服务器:
# 用于Claude桌面客户端(标准输入输出模式) npx mcp-cisco-support # 用于HTTP访问(带有身份验证) npx mcp-cisco-support --http
本地开发
git clone https://github.com/sieteunoseis/mcp-cisco-support.git
cd mcp-cisco-support
npm install
npm run build
npm start
✨ 主要特性
- 多API支持:全面实现了6个思科支持API(共33个工具)
- Bearer令牌认证:为HTTP端点提供MCP检查器风格的安全保障
- 可配置的API访问:仅启用你有权限访问的思科支持API
- 专业提示:提供9个工作流提示,用于指导思科支持场景
- 双传输模式:标准输入输出(本地MCP客户端)和HTTP(带有身份验证的远程服务器)
- OAuth2认证:与思科API实现自动令牌管理
- 实时更新:HTTP模式下支持服务器发送事件
- TypeScript:具备完整的类型安全性,并集成了MCP SDK
- 生产安全:采用Helmet、CORS、输入验证和Bearer令牌等安全措施
- Docker支持:支持容器化部署,并具备健康检查功能
- 全面日志记录:采用带时间戳的结构化日志记录
📦 支持的思科API
服务器支持以下思科支持API(可通过SUPPORT_API环境变量进行配置):
| API | 状态 | 工具 | 描述 |
|-----|--------|-------|-------------|
| 增强分析 (enhanced_analysis) | ⭐ 推荐 | 6个工具 | 用于全面产品评估的高级分析工具 |
| 漏洞 (bug) | ✅ 已完成 | 14个工具 | 漏洞搜索、详情、特定产品搜索及增强工具 |
| 案例 (case) | ✅ 已完成 | 4个工具 | 支持案例管理和操作 |
| 产品生命周期结束 (eox) | ✅ 已完成 | 4个工具 | 产品生命周期结束/销售信息及生命周期规划 |
| 产品安全事件响应团队 (psirt) | ✅ 已完成 | 8个工具 | 产品安全事件响应团队的漏洞数据 |
| 产品 (product) | ✅ 已完成 | 3个工具 | 产品详情、规格和技术信息 |
| 软件 (software) | ✅ 已完成 | 6个工具 | 软件建议、版本发布和升级建议 |
| 序列号 (serial) | 🔄 计划中 | 0个工具 | 序列号到产品信息的映射 |
| 退货授权 (rma) | 🔄 计划中 | 0个工具 | 退货授权流程 |
实现状态:8个API中已完成6个(75%),共33个工具
配置示例:
SUPPORT_API=enhanced_analysis- 仅启用增强分析工具(6个工具) ← 大多数用户推荐SUPPORT_API=bug- 启用所有漏洞API工具,包括增强分析(14个工具)SUPPORT_API=bug,case,eox,psirt- 核心支持API(28个工具)SUPPORT_API=bug,case,eox,psirt,product,software- 所有已实现的API(39个工具)SUPPORT_API=all- 所有可用的API(包括2个占位API)
💻 使用示例
基础用法
# 测试服务器连接性
curl http://localhost:3000/ping
# 检查健康状态
curl http://localhost:3000/health
# 列出可用工具(主MCP端点)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list"
}'
# 列出可用工具(适用于N8N的替代端点)
curl -X POST http://localhost:3000/messages \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list"
}'
# 测试SSE连接(将显示端点事件)
curl -N http://localhost:3000/sse
# 按关键字搜索漏洞
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "2",
"method": "tools/call",
"params": {
"name": "search_bugs_by_keyword",
"arguments": {
"keyword": "crash",
"severity": "1",
"status": "open"
}
}
}'
# 获取特定漏洞详情
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "3",
"method": "tools/call",
"params": {
"name": "get_bug_details",
"arguments": {
"bug_ids": "CSCab12345"
}
}
}'
高级用法
async function searchBugs(keyword) {
const response = await fetch('http://localhost:3000/mcp', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: Date.now(),
method: 'tools/call',
params: {
name: 'search_bugs_by_keyword',
arguments: {
keyword: keyword,
page_index: 1,
status: 'open'
}
}
})
});
const result = await response.json();
return result;
}
📚 详细文档
如需详细信息,请参阅我们全面的GitHub Wiki:
- 📋 可用工具 - 涵盖6个API的所有33个MCP工具的完整参考
- 🔧 高级配置 - 环境变量和部署选项
- 🔒 安全指南 - 身份验证、令牌和安全最佳实践
- 🚀 Docker部署 - 容器化部署和生产设置
- 🌐 SSE集成 - 服务器发送事件和实时通信
- 🧪 测试框架 - 全面的测试和验证
- 🔧 开发指南 - 贡献、架构和API开发
- 🚨 故障排除指南 - 常见问题和调试
- ⚡ MCP提示 - 用于思科支持场景的指导工作流
🔧 技术细节
健康监控
服务器提供了一个全面的健康检查端点:
curl http://localhost:3000/health
响应内容包括:
- 服务器状态
- OAuth2令牌状态
- 内存使用情况
- 运行时间
- 活跃的SSE连接
安全特性
- Helmet:设置安全头信息
- CORS:支持跨域资源共享
- 输入验证:基于模式的输入验证
- 非根执行:保障Docker安全
- 环境变量:安全存储凭证
测试
运行测试
# 运行所有测试
npm test
# 以监视模式运行测试
npm run test:watch
# 运行带覆盖率的测试
npm run test:coverage
# 运行特定测试套件
npx jest tests/auth.test.js
npx jest tests/mcp-tools.test.js
测试结构
测试套件包括:
- 身份验证测试 (
tests/auth.test.js):OAuth2身份验证、令牌管理和错误处理 - MCP工具测试 (
tests/mcp-tools.test.js):所有8个MCP工具、错误处理和分页 - 设置 (
tests/setup.js):测试环境配置
性能考虑
- 令牌缓存可减少API调用次数
- 分页将结果限制为每页10条
- SSE每30秒发送一次心跳以保持连接活跃
- 请求超时设置为30秒
安全注意事项
- 切勿将
.env文件提交到版本控制中 - 使用环境变量存储所有机密信息
- 审查思科API的使用限制和条款
- 监控日志以发现可疑活动
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
Scan to contact