Skip to main content
Glama
coozgan

Meraki Monitor MCP

by coozgan
README.md
# Meraki Monitor MCP
[![Python version](https://img.shields.io/badge/python-3.13-blue)](https://www.python.org/downloads/release/python-3130/) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) ![Status](https://img.shields.io/badge/status-active-brightgreen) ![Purpose](https://img.shields.io/badge/purpose-read--only-lightgrey)

## Project Purpose

This project was created to provide a safe, read-only tool for a Network Operations Center (NOC) AI Agent. It allows an AI agent to securely query and monitor a Cisco Meraki environment without any risk of making configuration changes.

## Use Case

The primary use case for the Meraki Monitor MCP is to act as a secure "source of truth" for network monitoring. An AI agent can use this server to get real-time information about the status of the Meraki network, devices, and clients, enabling automated monitoring and incident response without granting the agent write-access to the network infrastructure.

## Features

- **Network Monitoring:** Get details on organizations, networks, devices, and clients.
- **Status and Health:** Check the status and health of your Meraki organization and devices.
- **Traffic Analysis:** View network traffic data.
- **Read-Only:** All tools are strictly for monitoring and do not allow any modifications to your network.

## Installation

1.  Clone the repository:
    ```bash
    git clone https://github.com/coozgan/meraki-monitor-mcp.git
    cd meraki-monitor-mcp
    ```

2.  Create a virtual environment and activate it:
    ```bash
    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    ```

3.  Install dependencies:
    ```bash
    pip install -r requirements.txt
    ```

## Configuration

1.  Copy the example environment file:
    ```bash
    cp .env-example .env
    ```

2.  Update the `.env` file with your Meraki API Key, Organization ID, and default Network ID:
    ```env
    MERAKI_API_KEY="Your Meraki API Key here"
    MERAKI_ORG_ID="Your Meraki Org ID here"
    MERAKI_NETWORK_ID="Your Default Meraki Network ID here"
    ```

## Usage With an MCP Client

1.  Configure your MCP client to use this server. For example, in the Claude Desktop client, you would add the following to your `claude_desktop_config.json`:

    ```json
    {
      "mcpServers": {
          "Meraki_Monitor_MCP": {
            "command": "/path/to/your/meraki-monitor-mcp/.venv/bin/fastmcp",
            "args": [
              "run",
              "/path/to/your/meraki-monitor-mcp/meraki-monitor-mcp.py"
            ]
          }
      }
    }
    ```
    **Note:** Replace the paths above to reflect your local environment.

2.  Restart your MCP client.

3.  You can now interact with the Meraki Monitor MCP server using the available tools.

## Available Tools

### Organization Tools
- `get_organizations()`
- `get_organization_details()`
- `get_networks()`
- `get_devices()`
- `get_organization_status()`
- `get_organization_inventory()`
- `get_organization_license()`
- `get_alerts(timespan_days: int = 30)`

### Network Tools
- `get_network_details()`
- `get_network_devices()`
- `get_clients(timespan: int = 86400)`
- `get_client_details(client_id: str)`
- `get_client_usage(client_id: str)`
- `get_client_policy(client_id: str)`
- `get_network_traffic(timespan: int = 86400)`

### Device Tools
- `get_device_details(serial: str)`
- `get_device_clients(serial: str, timespan: int = 86400)`
- `get_device_status(serial: str)`
- `get_device_uplink(serial: str)`

### Wireless Tools
- `get_wireless_ssids()`
- `get_wireless_settings()`
- `get_wireless_clients(timespan: int = 86400)`

### Switch Tools
- `get_switch_ports(serial: str)`
- `get_switch_vlans()`

### Appliance Tools
- `get_security_center()`
- `get_vpn_status()`
- `get_firewall_rules()`

### Camera Tools
- `get_camera_video_settings(serial: str)`
- `get_camera_quality_settings()`