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_KEYis 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_CONNECTIONSfor higher throughput - Adjust
DISCOVERY_CACHE_SIZEfor 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