Provides tools for managing Cisco API Gateway pod configurations, including CRUD operations on pods across different collections (ciscolivepods, coelabpods), updating pod credentials and status, and managing pod keyword/password records.
Enables integration with Webex Connect (WxConnect) platform, allowing AI agents to remotely access pod management capabilities through HTTP-based MCP transport protocols.
Cisco MCP Pods Server
An MCP (Model Context Protocol) server that connects to the Cisco API Gateway pods endpoints. This server enables AI agents (like Claude Desktop or Webex Connect) to interact with pod management data, manage pod configurations, update pod credentials, and perform complete CRUD operations through natural language.
Table of Contents
Deployment Modes
This server supports three transport modes:
1. stdio (Standard I/O) - For Claude Desktop
File:
src/index.js
Communication: stdin/stdout
Usage: Runs locally as a child process
Perfect for: Claude Desktop application
Remote Access: ❌ Cannot be accessed remotely
Command:
npm start
2. SSE (Server-Sent Events) - For Remote AI Agents
File:
src/server-sse.js
Port: 1013
Endpoint:
/CiscoMCPPods/sse
Usage: HTTP server with one-way streaming
Perfect for: Legacy remote AI agents
Remote Access: ✅ Can be deployed in the cloud
Command:
npm run start:sse
3. Streamable HTTP - For Modern Remote AI Agents (Recommended)
File:
src/server-http.js
Port: 1013
Endpoint:
/CiscoMCPPods/mcp
Usage: HTTP server with bidirectional communication, session management, and resumability
Perfect for: WxConnect and modern AI agents that support the latest MCP spec
Remote Access: ✅ Can be deployed in the cloud
Features: Session-based, event replay, connection resumability
Command:
npm run start:http
Which Transport Should I Use?
Scenario | Recommended Transport | Why |
Claude Desktop (local) | stdio | Fastest, most efficient for local use |
WxConnect (cloud) | Streamable HTTP | Modern protocol with resumability and better error handling |
Legacy AI agents | SSE | Older protocol, widely supported |
Testing locally | Any | All modes support local testing |
Features
Tools (7 available)
get_pod_keyword - Get the pod keyword/password record
update_pod_keyword - Update the pod keyword/password with a new value
get_all_pods - Get all pods from a specific collection (ciscolivepods, coelabpods, etc.)
get_pod_by_number - Get a specific pod by its number from a collection
create_pod - Create new pod records in a collection
update_pod - Update existing pod information (status, credentials, test data, etc.)
delete_pod - Delete pod records from a collection
Resources (2 available)
pods://keyword - Access the current pod keyword configuration
pods://config - View current API configuration and connection status
Prerequisites
Node.js >= 18.0.0 (for built-in fetch support and ES modules)
Cisco API Gateway - Remote:
http://apigateway.cxocoe.us
or Local:http://localhost:3002
Valid API Key or JWT token for authentication
Installation
Configuration
Environment Variables
Copy the example environment file and edit it:
Edit .env
with your settings:
Important:
The
API_BASE_URL
points to your Cisco API Gateway (backend), not the MCP server itself.The
MCP_API_KEY
is used to authenticate clients connecting to this MCP server (not the API Gateway).
Usage: Claude Desktop (Local)
Claude Desktop is a desktop application that can run MCP servers locally on your computer.
Step 1: Locate Configuration File
On macOS:
On Windows:
Step 2: Edit Configuration
Open the file and add your MCP server configuration:
Important Notes:
Replace
/Users/YOUR_USERNAME/
with your actual user pathReplace
/FULL/PATH/TO/
with the actual path to your projectUse full absolute paths, not relative paths
Point to Node.js 18+ (not the system default if it's older)
Use
src/index.js
for stdio mode, NOTsrc/server-sse.js
orsrc/server-http.js
Step 3: Find Your Node.js Path
If using nvm:
If using system Node.js:
Use the full path in the config file.
Step 4: Restart Claude Desktop
Quit Claude Desktop completely (Cmd+Q on Mac, or close completely on Windows)
Reopen Claude Desktop
The MCP server will start automatically
Step 5: Verify Connection
In Claude Desktop, try these prompts:
If connected successfully, AI agent will list the 7 pods tools and be able to execute them.
Troubleshooting Claude Desktop
If you see "Server disconnected":
Check the logs:
tail -f ~/Library/Logs/Claude/mcp-server-cisco-pods.logCommon issues:
Wrong Node.js version: Must be 18+, check logs for syntax errors
.env not loading: Check that
.env
file exists in project rootAPI key missing: Check logs for "API_KEY_PODS is not configured"
Path errors: Make sure all paths in config are absolute, not relative
Verify Node version:
/path/to/your/node --version # Should output v18.x.x or higher
Usage: Cloud Deployment (WxConnect)
Deploy the server to the cloud for remote AI agents like Webex Connect.
Step 1: Choose Your Transport Mode
Streamable HTTP (Recommended for WxConnect):
Modern protocol with session management
Automatic reconnection and event replay
Better error handling
Use
npm run start:http
SSE (Legacy):
Simpler protocol
One-way streaming
Use
npm run start:sse
For this guide, we'll use Streamable HTTP as it's the recommended approach.
Step 2: Prepare for Deployment
Update
API_BASE_URL=http://apigateway.cxocoe.us API_KEY_RETAIL=your-production-api-key AUTH_MODE=apikey SERVER_PORT=3010 SERVER_PATH=/CiscoMCPRetailEnsure .gitignore excludes
# Check .gitignore includes: .env node_modules/
Step 3: Deploy to Your Server
Via SCP/SFTP:
Via Git:
Step 4: Run Server
For testing:
For production (with PM2):
For production (with systemd):
Create /etc/systemd/system/mcp-retail.service
:
Enable and start:
Step 5: Configure NGINX Reverse Proxy (Optional)
For Streamable HTTP, create NGINX configuration:
Enable the site:
Step 6: Test Cloud Deployment
Test health endpoint:
Expected response:
Test MCP endpoint (with authentication):
Step 7: Register with WxConnect
Once deployed, register your MCP server with Webex Connect:
For Streamable HTTP:
Endpoint URL:
http://ciscomcppods.cxocoe.us/CiscoMCPPods/mcp
Transport Type: Streamable HTTP
Authentication: Include
X-API-Key
header with your MCP API key
For SSE (Legacy):
Endpoint URL:
http://ciscomcppods.cxocoe.us/CiscoMCPPods/sse
Transport Type: SSE (Server-Sent Events)
Authentication: Include
X-API-Key
header with your MCP API key
WxConnect will validate the connection and start using your MCP server.
Testing
Local Testing (stdio mode)
Use Claude Desktop - see Usage: Claude Desktop
Cloud Testing (HTTP/SSE modes)
1. Health Check
2. Server Info
3. Streamable HTTP Connection Test
4. SSE Connection Test
5. Automated Test Script
Run the included test script:
This comprehensive test suite includes:
Server status check
Health endpoint validation
SSE connection test
Message endpoint test
Beautiful colored output with test results
6. Interactive MCP Client with Anthropic AI (NEW!)
Test your MCP server end-to-end with a full AI agent integration:
This interactive test tool:
✅ Connects to your production MCP server with X-API-Key authentication
✅ Integrates with Anthropic AI to demonstrate real agent-tool interaction
✅ Provides an interactive chat interface - ask questions in natural language
✅ AI agent automatically discovers and uses your MCP tools
✅ See real-time tool execution and results
✅ Validates the complete MCP workflow before WxConnect integration
Requirements:
ANTHROPIC_API_KEY
in your.env
file (get one at https://console.anthropic.com/)Production MCP server running (or use localhost for testing)
Example session:
This is the closest simulation to how WxConnect will use your MCP server!
7. MCP Inspector (Official Tool)
For Streamable HTTP:
For SSE:
This opens a web UI where you can:
View all available tools
Test each tool with different parameters
View resources
See JSON-RPC message flow
Monitor session state (for Streamable HTTP)
API Endpoints Mapping
This MCP server connects to the following Cisco API Gateway endpoints:
MCP Tool | API Endpoint | Method |
get_pod_keyword |
| GET |
update_pod_keyword |
| PATCH |
get_all_pods |
| GET |
get_pod_by_number |
| GET |
create_pod |
| POST |
update_pod |
| PATCH |
delete_pod |
| DELETE |
Project Structure
Troubleshooting
Claude Desktop Issues
Server Disconnected:
API Authentication Errors:
Check
.env
file exists in project rootVerify
API_KEY_PODS
is set correctlyCheck
API_BASE_URL
points to Cisco API Gateway
Cloud Deployment Issues
Port Already in Use:
Health Check Fails:
Session Issues (Streamable HTTP):
Verify
Mcp-Session-Id
header is being sent correctlyCheck server logs for session initialization messages
Ensure NGINX passes through session headers
NGINX Issues:
Firewall Issues:
API Gateway Connection Issues
Cannot reach API Gateway:
Verify
API_BASE_URL
in.env
Test connection manually:
curl http://apigateway.cxocoe.us/api/v2/pods/keyword \ -H "x-api-key: YOUR_API_KEY"
Authentication Failures:
Verify API key matches your Cisco API Gateway configuration
Check if API key has 'pods' permissions
Try with master API key for testing
Running Multiple MCP Servers
To run Pods, Healthcare, Insurance, and Retail MCP servers together:
Each server has its own directory:
CiscoMCPPods/ (Port 1013) CiscoMCPRetail/ (Port 3010) CiscoMCPHealthcare/ (Port 3011) CiscoMCPInsurance/ (Port 3012)Each has unique configuration in
# Pods SERVER_PORT=1013 SERVER_PATH=/CiscoMCPPods API_KEY_PODS=f42a9c8e3d7b1f6a2c5e8d4b9f3a6c1e7b5d2f9a8c4e1b6d3f7a2c5e8b1d4f9a3c6 # Healthcare SERVER_PORT=3011 SERVER_PATH=/CiscoMCPHealthcare API_KEY_HEALTH=b81108cab4b0d0db3beccc9c2a71888d43d4d7acddc7b9024ee715c15474a856 # Insurance SERVER_PORT=3012 SERVER_PATH=/CiscoMCPInsurance API_KEY_INSURANCE=e64d49daa3709f4ebaa60d6cd0513162b3216860961315a34646e99666900b0aUpdate NGINX to proxy all four (add location blocks for each)
Register each with WxConnect (with API key authentication):
Pods:
http://ciscomcppods.cxocoe.us/CiscoMCPPods/mcp
Retail:
http://ciscomcpretail.cxocoe.us/CiscoMCPRetail/mcp
Healthcare:
http://ciscomcphealth.cxocoe.us/CiscoMCPHealthcare/mcp
Insurance:
http://ciscomcpinsurance.cxocoe.us/CiscoMCPInsurance/mcp
Important: Include
X-API-Key
header with each server's unique API key
Security Considerations
For Production Deployment:
Use HTTPS - Update NGINX config with SSL certificates
Firewall - Only expose necessary ports (1013 for Pods)
API Keys - Store in environment variables, never commit to git
NGINX - Use as reverse proxy instead of exposing Node.js directly
Rate Limiting - Configure in NGINX
Monitoring - Set up health check monitoring
Session Security - For Streamable HTTP, consider implementing session timeout policies
Transport Comparison
Feature | stdio | SSE | Streamable HTTP |
Local Use | ✅ Best | ❌ Not needed | ❌ Not needed |
Remote Use | ❌ No | ✅ Yes | ✅ Yes |
Session Management | N/A | ❌ No | ✅ Yes |
Resumability | N/A | ❌ No | ✅ Yes |
Event Replay | N/A | ❌ No | ✅ Yes |
Bidirectional | ✅ Yes | ❌ One-way | ✅ Yes |
Connection Recovery | N/A | ⚠️ Manual | ✅ Automatic |
WxConnect Support | ❌ No | ✅ Yes (Legacy) | ✅ Yes (Recommended) |
Author
Rue Green Customer Care Architect and Developer Cisco Systems, INC.
License
MIT
Support
For issues or questions:
Check logs (Claude Desktop or server logs)
Verify
.env
configurationTest API Gateway connection directly
Review error messages for specific issues
Run
npm test
to verify server functionality
Version: 1.0.0 Last Updated: October 2025
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables AI agents to interact with Cisco API Gateway pods endpoints for complete pod management including CRUD operations, credential updates, and configuration management through natural language. Supports multiple deployment modes including local Claude Desktop integration and cloud deployment for remote AI agents like Webex Connect.