A Model Context Protocol (MCP) server that provides Claude with 665+ dynamically-generated tools for interacting with Cisco Firepower Management Center (FMC) via its REST API.
Connects Claude (or any MCP client) to your FMC and automatically creates tools for every API endpoint:
- List/create/update/delete network objects
- Manage access policies and rules
- Configure devices
- Deploy configurations
- Monitor system health
- And 660+ more operations
No manual coding required - tools are generated from your FMC's OpenAPI specification at runtime.
pip install fmcmcp# Clone the repository
git clone https://github.com/daxm/fmcmcp.git
cd fmcmcp
# Build the Docker image
docker build -t fmcmcp .git clone https://github.com/daxm/fmcmcp.git
cd fmcmcp
pip install -e .Edit your Claude Desktop configuration file:
macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server configuration:
{
"mcpServers": {
"fmc-server": {
"command": "fmc-mcp-server",
"env": {
"FMC_HOST": "your-fmc.example.com",
"FMC_USERNAME": "admin",
"FMC_PASSWORD": "YourPassword",
"FMC_DOMAIN": "Global",
"FMC_VERIFY_SSL": "false"
}
}
}
}First, ensure you've built the Docker image (see Option 2 in Installation section above).
Then edit your Claude Desktop configuration file (same paths as above) and add:
{
"mcpServers": {
"fmc-server": {
"command": "docker",
"args": ["run", "--rm", "-i", "fmcmcp"],
"env": {
"FMC_HOST": "your-fmc.example.com",
"FMC_USERNAME": "admin",
"FMC_PASSWORD": "YourPassword",
"FMC_DOMAIN": "Global",
"FMC_VERIFY_SSL": "false"
}
}
}
}Replace the env values with your FMC credentials.
Important: Quit Claude Desktop completely (from system tray/menu bar), then relaunch.
Try these prompts:
"Test my FMC connection"
"List all available tools"
"Show me all network objects"
"What access policies are configured?"
Set credentials directly in claude_desktop_config.json as shown above.
Create .env file:
FMC_HOST=192.168.1.10
FMC_USERNAME=admin
FMC_PASSWORD=MySecurePassword
FMC_DOMAIN=Global
FMC_VERIFY_SSL=falseThen run:
docker run --rm -i --env-file .env fmcmcpdocker run --rm -i \
-e FMC_HOST=192.168.1.10 \
-e FMC_USERNAME=admin \
-e FMC_PASSWORD=MyPassword \
-e FMC_DOMAIN=Global \
fmcmcp- Server starts and connects to your FMC
- Fetches OpenAPI spec from FMC (
/api/api-explorer/openapi.json) - Generates tools dynamically using
mcp-openapi-proxy - Registers 665+ tools with Claude
- Routes requests from Claude → FMC API
The server acts as a proxy, translating Claude's natural language requests into FMC API calls.
| Variable | Default | Description |
|---|---|---|
FMC_HOST |
192.168.45.45 |
FMC hostname or IP address |
FMC_USERNAME |
admin |
FMC username |
FMC_PASSWORD |
Admin123 |
FMC password |
FMC_DOMAIN |
Global |
FMC domain name |
FMC_VERIFY_SSL |
false |
Verify SSL certificates (true/false) |
- Docker
- FMC 6.4+ with OpenAPI support and API access enabled
- Claude Desktop (or another MCP client)
- Network access from Docker container to FMC
- Check credentials (case-sensitive)
- Verify user has API permissions in FMC
- Confirm FMC is reachable from Docker container
Important: FMC does not allow the same user to be logged into both the API and the web GUI simultaneously. If you're logged into the FMC web interface and then use this MCP server with the same username, one session will auto-logout the other.
Recommendation: Use a dedicated API user account for the MCP server to avoid disrupting GUI sessions.
- Check Docker logs:
docker run --rm -i --env-file .env fmcmcp 2>&1 | tee debug.log - Verify
uvxis installed in container - Ensure FMC OpenAPI endpoint is accessible
- Domain name is case-sensitive
- Check available domains in FMC UI: System > Configuration > REST API Preferences
- Try
Global(default domain)
- Verify
claude_desktop_config.jsonis valid JSON - Check Docker is running:
docker ps - Quit Claude Desktop from system tray (don't just close window)
- Check logs:
~/Library/Logs/Claude/mcp*.log(macOS)
# Clone repository
git clone https://github.com/daxm/fmcmcp.git
cd fmcmcp
# Install in editable mode
pip install -e .
# Run locally (requires FMC access)
fmc-mcp-server# Using Poetry
poetry build
poetry publish # Publish to PyPI
# Using Docker
docker build -t fmcmcp .- CLAUDE.md - Comprehensive developer guide
- FMC API Reference Guides - Official Cisco FMC API documentation
- Cisco DevNet Firepower - Developer resources and examples
- MCP Protocol - Model Context Protocol specification
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Dax Mickelson
For issues or questions:
- Check CLAUDE.md for detailed troubleshooting
- Review FMC API documentation
- Verify network connectivity and credentials