Access Cisco Support APIs for bug searches and other support-related tasks.
A production-ready TypeScript MCP (Model Context Protocol) server for Cisco Support APIs with comprehensive security and dual transport support. This extensible server provides access to multiple Cisco Support APIs including Bug Search, Case Management, and End-of-Life information.
The server supports the following Cisco Support APIs (configurable via SUPPORT_API
environment variable):
API | Status | Tools | Description |
---|---|---|---|
Enhanced Analysis (enhanced_analysis ) | โญ RECOMMENDED | 6 tools | Advanced analysis tools for comprehensive product assessment |
Bug (bug ) | โ Complete | 14 tools | Bug Search, Details, Product-specific searches + Enhanced tools |
Case (case ) | โ Complete | 4 tools | Support case management and operations |
EoX (eox ) | โ Complete | 4 tools | End of Life/Sale information and lifecycle planning |
PSIRT (psirt ) | โ Complete | 8 tools | Product Security Incident Response Team vulnerability data |
Product (product ) | โ Complete | 3 tools | Product details, specifications, and technical information |
Software (software ) | โ Complete | 6 tools | Software suggestions, releases, and upgrade recommendations |
Serial (serial ) | ๐ Planned | 0 tools | Serial number to product information mapping |
RMA (rma ) | ๐ Planned | 0 tools | Return Merchandise Authorization processes |
Implementation Status: 6/8 APIs complete (75%) with 33 total tools
Configuration Examples:
SUPPORT_API=enhanced_analysis
- Enhanced analysis tools only (6 tools) โ RECOMMENDED for most usersSUPPORT_API=bug
- All Bug API tools including enhanced analysis (14 tools)SUPPORT_API=bug,case,eox,psirt
- Core support APIs (28 tools)SUPPORT_API=bug,case,eox,psirt,product,software
- All implemented APIs (39 tools)SUPPORT_API=all
- All available APIs (includes 2 placeholder APIs)Start in stdio mode for Claude Desktop:
npx mcp-cisco-support
Start HTTP server with authentication:
npx mcp-cisco-support --http
# Token displayed in console for authentication
Generate Bearer token for HTTP mode:
npx mcp-cisco-support --generate-token
Get help and see all options:
npx mcp-cisco-support --help
Generate authentication token (for HTTP mode):
npx mcp-cisco-support --generate-token
export MCP_BEARER_TOKEN=<generated_token>
Set Cisco API credentials:
export CISCO_CLIENT_ID=your_client_id_here
export CISCO_CLIENT_SECRET=your_client_secret_here
export SUPPORT_API=bug,case,eox,psirt,product,software # All implemented APIs (recommended)
Start the server:
# For Claude Desktop (stdio mode)
npx mcp-cisco-support
# For HTTP access (with authentication)
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
Get Cisco API Credentials:
Install Claude Desktop:
Locate Claude Desktop Config File:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Create or Edit the Config File:
{
"mcpServers": {
"cisco-support": {
"command": "npx",
"args": ["mcp-cisco-support"],
"env": {
"CISCO_CLIENT_ID": "your_client_id_here",
"CISCO_CLIENT_SECRET": "your_client_secret_here",
"SUPPORT_API": "bug"
}
}
}
}
Optional: Configure which APIs to enable with SUPPORT_API
:
"enhanced_analysis"
- Enhanced analysis tools only (recommended for most users)"bug"
- Bug API only (default)"all"
- All available APIs"bug,case,eox"
- Multiple specific APIsReplace Your Credentials:
your_client_id_here
with your actual Cisco Client IDyour_client_secret_here
with your actual Cisco Client SecretRestart Claude Desktop:
After setup, you should be able to:
Ask Claude about Cisco bugs:
"Search for bugs related to memory leaks in Cisco switches"
Get specific bug details:
"Get details for Cisco bug CSCab12345"
Search by product:
"Find bugs affecting Cisco Catalyst 3560 switches"
Once configured, you can ask Claude questions like:
Basic Bug Search:
Product-Specific Searches:
Bug Details:
Advanced Filtering:
Claude will use the appropriate MCP tools to fetch real-time data from Cisco's Bug API and provide comprehensive responses with the latest information.
The server includes 5 specialized prompts for guided Cisco support workflows:
Each prompt provides structured investigation plans and expert recommendations.
See โก MCP Prompts for complete prompt documentation and examples.
Claude Desktop successfully connected to the Cisco Support MCP server, demonstrating the bug search functionality with real-time responses from Cisco's Bug API.
MCP Inspector v0.14.0+ showing the available tools and server connectivity testing capabilities.
If you prefer to install globally instead of using npx:
npm install -g mcp-cisco-support
Then use this config:
{
"mcpServers": {
"cisco-support": {
"command": "mcp-cisco-support",
"env": {
"CISCO_CLIENT_ID": "your_client_id_here",
"CISCO_CLIENT_SECRET": "your_client_secret_here",
"SUPPORT_API": "bug"
}
}
}
}
For development or custom setups:
git clone https://github.com/sieteunoseis/mcp-cisco-support.git
cd mcp-cisco-support
npm install
npm run build
Then use this config:
{
"mcpServers": {
"cisco-support": {
"command": "node",
"args": ["/path/to/mcp-cisco-support/dist/index.js"],
"env": {
"CISCO_CLIENT_ID": "your_client_id_here",
"CISCO_CLIENT_SECRET": "your_client_secret_here",
"SUPPORT_API": "bug"
}
}
}
}
"Command not found" errors:
npm install -g mcp-cisco-support
Authentication failures:
MCP server not loading:
Permission errors:
chmod 644 claude_desktop_config.json
Test the server manually:
npx mcp-cisco-support
This should start the server in stdio mode without errors.
Validate your config: Use a JSON validator to ensure your config file is properly formatted.
Check Claude Desktop logs:
Monitor logs in real-time (macOS):
# Follow logs in real-time
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log
On Windows:
# Check logs directory
%APPDATA%\Claude\logs\
# Use pre-built image
docker pull ghcr.io/sieteunoseis/mcp-cisco-support:latest
docker run -p 3000:3000 \
-e CISCO_CLIENT_ID=your_id \
-e CISCO_CLIENT_SECRET=your_secret \
-e SUPPORT_API=bug \
ghcr.io/sieteunoseis/mcp-cisco-support:latest --http
# Or build locally
docker-compose up -d
# Generate secure token
npx mcp-cisco-support --generate-token
# Use token for HTTP mode
export MCP_BEARER_TOKEN=your_token
npx mcp-cisco-support --http
See ๐ Security Guide for complete security documentation.
Create a .env
file with your configuration:
# ๐ Cisco API OAuth2 Configuration (REQUIRED)
CISCO_CLIENT_ID=your_client_id_here
CISCO_CLIENT_SECRET=your_client_secret_here
# ๐ Server Configuration
PORT=3000
NODE_ENV=development
# ๐ API Support Configuration
# Enable specific Cisco Support APIs you have access to
# Options: bug, case, eox (plus planned: product, serial, rma, software, asd)
SUPPORT_API=bug,case,eox # Multiple APIs
# SUPPORT_API=all # All available APIs
# SUPPORT_API=bug # Single API (default)
# ๐ HTTP Authentication Configuration (HTTP mode only)
# Custom Bearer token for HTTP authentication (optional - generates random if not set)
MCP_BEARER_TOKEN=your_custom_secure_token_here
# โ ๏ธ SECURITY WARNING: Only use in development/testing
# DANGEROUSLY_OMIT_AUTH=true # Disables HTTP authentication entirely
Complete configuration for Claude Desktop:
{
"mcpServers": {
"cisco-support": {
"command": "npx",
"args": ["mcp-cisco-support"],
"env": {
"CISCO_CLIENT_ID": "your_client_id_here",
"CISCO_CLIENT_SECRET": "your_client_secret_here",
"SUPPORT_API": "bug,case,eox"
}
}
}
}
With authentication:
docker run -p 3000:3000 \
-e CISCO_CLIENT_ID=your_client_id \
-e CISCO_CLIENT_SECRET=your_client_secret \
-e SUPPORT_API=bug,case,eox \
-e MCP_BEARER_TOKEN=your_secure_token \
ghcr.io/sieteunoseis/mcp-cisco-support:latest --http
Without authentication (development only):
docker run -p 3000:3000 \
-e CISCO_CLIENT_ID=your_client_id \
-e CISCO_CLIENT_SECRET=your_client_secret \
-e DANGEROUSLY_OMIT_AUTH=true \
ghcr.io/sieteunoseis/mcp-cisco-support:latest --http
Endpoint | Method | Description |
---|---|---|
/ | GET | Server information and available endpoints |
/mcp | POST | Main MCP endpoint (JSON-RPC over HTTP) |
/messages | POST | Alternative MCP endpoint for N8N compatibility |
/sse | GET | SSE connection with session management |
/sse | POST | Legacy SSE message endpoint (deprecated) |
/sse/session/{sessionId} | POST | Session-specific MCP message endpoint |
/ping | GET | Simple ping endpoint for connectivity testing |
/health | GET | Health check with detailed status |
For detailed information, see our comprehensive GitHub Wiki:
# Test server connectivity
curl http://localhost:3000/ping
# Check health status
curl http://localhost:3000/health
# List available tools (main MCP endpoint)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list"
}'
# List available tools (alternative endpoint for N8N)
curl -X POST http://localhost:3000/messages \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list"
}'
# Test SSE connection (will show endpoint event)
curl -N http://localhost:3000/sse
# Search for bugs by keyword
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"
}
}
}'
# Get specific bug details
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;
}
The server provides a comprehensive health check endpoint:
curl http://localhost:3000/health
Response includes:
OAuth2 Authentication Failed
CISCO_CLIENT_ID
and CISCO_CLIENT_SECRET
https://id.cisco.com
API Calls Failing
/health
https://apix.cisco.com
Docker Issues
docker-compose logs
Structured JSON logs include:
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Run specific test suite
npx jest tests/auth.test.js
npx jest tests/mcp-tools.test.js
The test suite includes:
tests/auth.test.js
): OAuth2 authentication, token management, error handlingtests/mcp-tools.test.js
): All 8 MCP tools, error handling, paginationtests/setup.js
): Test environment configurationThe following issues were identified and resolved in the test suite:
Token Refresh Logic
getValidToken()
Multiple Bug IDs Handling
resetServerState()
function for proper cleanupSearch Tools Implementation
Error Handling
handleMCPMessage()
functionAuthentication Failure Scenarios
Test State Management
resetServerState()
export and proper module cache clearing--forceExit
flag for main test runsmcp-cisco-support/
โโโ src/
โ โโโ index.ts # Main TypeScript server implementation
โโโ dist/ # Compiled JavaScript (generated by build)
โโโ package.json # Dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
โโโ .env.example # Environment variables template
โโโ .env # Actual environment variables (create from example)
โโโ .gitignore # Git ignore rules
โโโ Dockerfile # Docker configuration
โโโ docker-compose.yml # Docker Compose setup
โโโ screenshots/ # Documentation screenshots
โ โโโ mcp-inspector-screenshot.png
โโโ CLAUDE.md # Project instructions and architecture
โโโ README.md # Project documentation
# Install dependencies
npm install
# Start development server with auto-reload
npm run dev
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Build Docker image
docker build -t mcp-cisco-support .
# View logs in development
npm run dev 2>&1 | jq '.' # Pretty print JSON logs
.env
file to version controlhttps://id.cisco.com/oauth2/default/v1/token
client_credentials
https://apix.cisco.com/bug/v2.0
The server implements the Model Context Protocol with these methods:
initialize
: Initialize MCP connectiontools/list
: List available toolstools/call
: Execute a toolExample MCP message:
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "search_bugs_by_keyword",
"arguments": {
"keyword": "memory leak",
"status": "open"
}
}
}
The server provides a comprehensive health check endpoint:
curl http://localhost:3000/health
Response includes server status, OAuth2 token status, memory usage, uptime, and active connections.
Comprehensive Jest-based testing framework with:
# Run all tests
npm test
# Test with real API credentials
CISCO_CLIENT_ID=your_id CISCO_CLIENT_SECRET=your_secret npm test
# Test individual tools
npm run test:tool search_bugs_by_keyword
See ๐งช Testing Framework for complete testing documentation.
MIT License - see LICENSE file for details.
npm test
An MCP server for interacting with the CoSense collaborative sensemaking platform, supporting public and private projects.
APISIX Model Context Protocol (MCP) server is used to bridge large language models (LLMs) with the APISIX Admin API, supporting querying and managing all resources in Apache APISIX.
An MCP server for CMP API integration, built to run on Cloudflare Workers.
Exposes Check Point security management data for AI-powered automation and analysis.
Provides safe, read-only access to Kubernetes cluster resources for debugging and inspection.
Streams real-time Binance Alpha token prices and liquidity data for AI agents and workflows.
An example of a remote MCP server deployable on Cloudflare Workers without authentication.
A Rust-based server that integrates the Wazuh SIEM system with MCP-compatible applications.
Provides full access to the Google Ads API v20. Requires OAuth2 or Service Account credentials for configuration.
Integrates Claude with Salesforce, enabling natural language interactions with your Salesforce data and metadata.