Back to MCP directory
publicPublicdnsLocal runtime

mcp-cisco-support

一个生产就绪的TypeScript MCP服务器,为Cisco支持API提供全面安全和双传输支持,可扩展支持多种Cisco支持API包括Bug搜索、案例管理和生命周期信息。

article

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

环境设置

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

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client