fast-meraki-mcp-server

vevani/fast-meraki-mcp-server

3.2

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.

Tools
9
Resources
0
Prompts
0

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

  1. Clone the repository:
git clone <repository-url>
cd fast-meraki-mcp-server
  1. Install dependencies:
pip install -r requirements.txt
  1. Configure environment:
cp .env.example .env
# Edit .env and add your Meraki API key
  1. 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 organizations
  • get_organization - Get organization details
  • list_networks - List networks in organization
  • get_network - Get network details
  • list_devices - List devices (organization or network level)
  • get_device - Get device details
  • list_clients - List network clients
  • list_inventory - List inventory devices

Semantic Discovery Tools

  • discover_tools - Find tools relevant to your intent
  • analyze_context - Get suggestions based on conversation
  • health_check - Check server and API status

Resources (Read-Only Data)

  • meraki://organizations - All organizations
  • meraki://organizations/{org_id}/networks - Networks for an organization
  • meraki://networks/{network_id}/devices - Devices in a network

Prompts (Task Templates)

  • network_health_check - Generate network health analysis prompt
  • troubleshooting_guide - Create troubleshooting instructions
  • configuration_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

  1. OpenAPI Integration: Automatically generates tools from Meraki OpenAPI spec
  2. Middleware Pipeline: Processes requests/responses for null handling and logging
  3. Optimized Discovery: Cached, lazy-loaded semantic analysis
  4. 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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ License

Apache License 2.0 - see file for details.

๐Ÿ‘ค Author

Vidyadhar Evani


Built with FastMCP 2.10.6+ | Optimized for Production | Full MCP Compliance