Mcp Cisco Support

Mcp Cisco Support

🚀 思科支持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

环境设置

  1. 生成身份验证令牌(用于HTTP模式):

    npx mcp-cisco-support --generate-token
    export MCP_BEARER_TOKEN=<生成的令牌>
    
  2. 设置思科API凭证:

    export CISCO_CLIENT_ID=你的客户端ID
    export CISCO_CLIENT_SECRET=你的客户端密钥
    export SUPPORT_API=bug,case,eox,psirt,product,software  # 所有已实现的API(推荐)
    
  3. 启动服务器:

    # 用于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

🔧 技术细节

健康监控

服务器提供了一个全面的健康检查端点:

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文件。

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-28 16:21

相似服务问题