MCP Monitor MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install -g @partha-sust16/mcp-monitor
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add mcp-monitor -- node "<FULL_PATH_TO_MCP_MONITOR>/dist/index.js"

Replace <FULL_PATH_TO_MCP_MONITOR>/dist/index.js with the actual folder you prepared in step 1.

README.md

Transparent observability for agentic AI pipelines.

MCP Monitor

Transparent observability for agentic AI pipelines.

MCP Monitor intercepts every tool call made by an AI agent — whether the agent uses the Model Context Protocol (MCP) or calls Python functions directly — and surfaces metrics, session replays, and alerts through a local web dashboard.

Zero changes to your agent. Zero changes to your MCP servers.

Dashboard Live Feed


Features

  • Live Feed — Real-time SSE-powered stream of all tool calls with status badges and latency
  • 📋 Session Replay — Browse sessions, view call timelines with a Gantt chart, expand any call to inspect arguments and responses
  • 📊 Tool Analytics — P50/P95/P99 latency charts, call volume, and error rate trends via Chart.js
  • 🖥️ Server Health — Per-server status cards (healthy / degraded / down) with auto-refresh
  • 🔔 Alerts — Configurable P95 latency and error rate thresholds with cooldown-based alerting
  • 🔒 Secret Sanitization — Automatically redacts tokens, passwords, API keys from stored arguments
  • 🐍 Python SDK — Zero-dependency pip package to monitor any Python agent (QwenAgent, LangChain, custom)
  • 💾 SQLite Storage — Single-file database with WAL mode for fast concurrent reads

Architecture

Agent (Claude, Cursor, etc.)
    │
    ├── Multiplexer mode
    │     mcp-monitor serve
    │       ├── spawns Server A ──┐
    │       ├── spawns Server B ──┤── POST /api/ingest ──► Dashboard Server ──► SQLite
    │       └── spawns Server C ──┘         │
    │                                  EventBus.emit()
    ├── Per-server proxy mode                │
    │     mcp-monitor proxy             SSE push to
    │       └── spawns Server ──────►   Dashboard UI
    │
    └── Python SDK ──► POST /api/ingest

Multiplexer mode is the one approach: add one entry to your MCP config and monitor all servers. The serve command spawns every configured server, merges their tools, routes calls, and records everything.

Per-server proxy mode wraps a single server — useful when you want fine-grained control over which servers are monitored.


Quick Start

Prerequisites

  • Node.js 18+
  • npm

Install via GitHub Packages

  1. Authenticate to GitHub Packages: You need a Personal Access Token (classic) with the read:packages scope.
  2. Tell npm where to find the package:
    echo "@partha-sust16:registry=https://npm.pkg.github.com" >> ~/.npmrc
    
  3. Install the package globally:
    npm install -g @partha-sust16/mcp-monitor
    

You are now ready to run mcp-monitor start!

Install from Source

git clone https://github.com/Partha-SUST16/mcp_monitor.git
cd mcp_monitor

# Install backend dependencies
npm install

# Build the backend and the dashboard UI automatically
npm run build

# Link globally to use the 'mcp-monitor' command anywhere
npm link

# Start the dashboard server
mcp-monitor start

The dashboard will be available at http://localhost:4242.

Send a Test Event

curl -X POST http://localhost:4242/api/ingest \
  -H 'Content-Type: application/json' \
  -d '{
    "sessionId": "test-session",
    "agentType": "python-sdk",
    "serverName": "my-server",
    "toolName": "read_file",
    "method": "read_file",
    "arguments": {"path": "/tmp/test.txt"},
    "response": null,
    "status": "success",
    "latencyMs": 150,
    "timestamp": "2026-03-09T10:00:00Z"
  }'

Connecting Agents

Multiplexer Mode

Monitor all MCP servers with a single config entry. No need to wrap each server individually.

Step 1. List your servers in mcp-monitor.config.json:

{
  "servers": [
    { "name": "filesystem", "transport": "stdio", "command": "npx @modelcontextprotocol/server-filesystem /tmp" },
    { "name": "github", "transport": "stdio", "command": "npx @modelcontextprotocol/server-github", "env": { "GITHUB_TOKEN": "$GITHUB_TOKEN" } }
  ],
  "dashboard": { "port": 4242 }
}

Step 2. Replace all MCP server entries in your agent config with one:

{
  "mcpServers": {
    "mcp-monitor": {
      "command": "mcp-monitor",
      "args": ["serve", "-c", "/absolute/path/to/mcp-monitor.config.json"]
    }
  }
}

Step 3. Start the dashboard server separately:

mcp-monitor start

The agent sees one MCP server with all tools combined. MCP Monitor spawns each real server internally, routes every tools/call to the correct child, and records the call.

Note on Tool Names: To prevent naming collisions between different MCP servers that happen to expose identical tools, the Multiplexer prefixes all tool names with their originating server's name. For example, if your filesystem server has a tool named read_file, the LLM will see it exposed as filesystem_read_file.

Per-Server Proxy Mode

Alternatively, wrap individual servers by replacing their command:

{
  "mcpServers": {

Environment Variables

GITHUB_TOKENRequired for authenticating to GitHub Packages if installing via npm

Configuration

claude_desktop_config.json
{"mcpServers": {"mcp-monitor": {"command": "mcp-monitor", "args": ["serve", "-c", "/absolute/path/to/mcp-monitor.config.json"]}}}

Try it

Show me the latency trends for my filesystem tools over the last hour.
Are there any recent errors in my GitHub MCP server tool calls?
Replay the last session to see why the read_file tool failed.
Check the health status of all connected MCP servers.

Frequently Asked Questions

What are the key features of MCP Monitor?

Real-time live feed of all tool calls with latency metrics. Session replay with Gantt chart timelines for debugging. Tool analytics including P50/P95/P99 latency and error rates. Automatic secret sanitization to redact sensitive data from logs. Multiplexer mode to monitor multiple MCP servers with one config entry.

What can I use MCP Monitor for?

Debugging latency issues in complex agentic workflows. Monitoring tool call success rates across multiple MCP servers. Auditing agent behavior by replaying past interaction sessions. Setting up alerts for degraded performance in production AI pipelines.

How do I install MCP Monitor?

Install MCP Monitor by running: npm install -g @partha-sust16/mcp-monitor

What MCP clients work with MCP Monitor?

MCP Monitor works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Monitor docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare