vevani/fast-meraki-mcp-server
If you are the rightful owner of fast-meraki-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A semantic FastMCP server that provides intelligent access to Cisco Meraki network management APIs through AI-powered tool discovery and null-safe response processing.
Fast Meraki MCP Server
A high-performance FastMCP server that provides intelligent access to Cisco Meraki network management APIs through semantic tool discovery and AI-powered features.
๐ Features
- ๐ง Semantic Tool Discovery: AI-powered tool selection based on intent
- ๐ก๏ธ Null-Safe Processing: Automatic handling of API inconsistencies
- ๐ MCP Resources: Read-only data access through resource URIs
- ๐ฌ MCP Prompts: Pre-built prompts for common network tasks
- โก Optimized Performance: Connection pooling, caching, and lazy loading
- โ FastMCP 2.10.6+: Full compliance with latest MCP standards
๐ Prerequisites
- Python 3.12+
- Meraki API Key with read permissions (Get one here)
- FastMCP 2.10.6+
๐ง Installation
- Clone the repository:
git clone <repository-url>
cd fast-meraki-mcp-server
- Install dependencies:
pip install -r requirements.txt
- Configure environment:
cp .env.example .env
# Edit .env and add your Meraki API key
- Run the server:
python meraki_mcp_server.py
The server will start on http://0.0.0.0:8000/mcp
๐ฏ Core Capabilities
Essential Tools (Always Available)
list_organizations
- List all Meraki organizationsget_organization
- Get organization detailslist_networks
- List networks in organizationget_network
- Get network detailslist_devices
- List devices (organization or network level)get_device
- Get device detailslist_clients
- List network clientslist_inventory
- List inventory devices
Semantic Discovery Tools
discover_tools
- Find tools relevant to your intentanalyze_context
- Get suggestions based on conversationhealth_check
- Check server and API status
Resources (Read-Only Data)
meraki://organizations
- All organizationsmeraki://organizations/{org_id}/networks
- Networks for an organizationmeraki://networks/{network_id}/devices
- Devices in a network
Prompts (Task Templates)
network_health_check
- Generate network health analysis prompttroubleshooting_guide
- Create troubleshooting instructionsconfiguration_audit
- Generate configuration review prompt
๐ป Usage Examples
With Claude Desktop
Add to your Claude Desktop configuration:
{
"servers": {
"meraki": {
"command": "python",
"args": ["/path/to/fast-meraki-mcp-server/meraki_mcp_server.py"],
"env": {
"MERAKI_API_KEY": "your_api_key_here"
}
}
}
}
With FastMCP Client
from fastmcp import Client
async def main():
async with Client("http://localhost:8000/mcp") as client:
# List available tools
tools = await client.list_tools()
# Discover relevant tools
result = await client.call_tool(
"discover_tools",
{"intent": "monitor network performance"}
)
# Get organizations
orgs = await client.call_tool("list_organizations", {})
๐๏ธ Architecture
The server implements a clean, modular architecture:
MerakiMCPServer
โโโ FastMCP Integration (OpenAPI-based tools)
โโโ Middleware System (null-safe processing, logging)
โโโ Semantic Discovery (AI-powered tool selection)
โโโ Resources (URI-based data access)
โโโ Prompts (Reusable task templates)
Key Components
- OpenAPI Integration: Automatically generates tools from Meraki OpenAPI spec
- Middleware Pipeline: Processes requests/responses for null handling and logging
- Optimized Discovery: Cached, lazy-loaded semantic analysis
- Connection Pooling: Efficient HTTP client with connection reuse
โ๏ธ Configuration
Environment variables (.env
file):
# Required
MERAKI_API_KEY=your_api_key_here
# Optional
MCP_SERVER_HOST=0.0.0.0
MCP_SERVER_PORT=8000
LOG_LEVEL=INFO
MAX_CONNECTIONS=10
REQUEST_TIMEOUT=30
DISCOVERY_CACHE_SIZE=100
๐ Troubleshooting
Check Server Health
curl http://localhost:8000/health
Common Issues
API Key Issues:
- Ensure
MERAKI_API_KEY
is set in.env
- Verify key has read permissions at Meraki Dashboard
Connection Issues:
- Check network connectivity to
api.meraki.com
- Verify firewall allows outbound HTTPS (port 443)
Performance Issues:
- Increase
MAX_CONNECTIONS
for higher throughput - Adjust
DISCOVERY_CACHE_SIZE
for better discovery performance
๐งช Development
Running Tests
pytest tests/ -v
Code Quality
# Format code
black .
# Lint
flake8 .
# Type checking
mypy .
๐ Performance
- Startup Time: ~2 seconds
- Tool Discovery: ~100ms (cached)
- API Response: ~750ms average
- Memory Usage: ~60MB
- Connection Pool: 10 concurrent connections
๐ค Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open a Pull Request
๐ License
Apache License 2.0 - see file for details.
๐ค Author
Vidyadhar Evani
- Email: vidyadhar.evani@gmail.com
- GitHub: @vevani
Built with FastMCP 2.10.6+ | Optimized for Production | Full MCP Compliance