Skip to main content

MCPScope

Charles Proxy for AI tool calls. A local-first proxy that sits between an MCP client (Claude Desktop, or any agent) and its MCP servers, passively records every JSON-RPC message to SQLite, and shows a live terminal UI.

pip install mcpscope-cli

mcpscope TUI

Why

  • Watch your REAL agent, live. The MCP Inspector and similar tools are test harnesses: they are the client, poking your server by hand. MCPScope records what a running agent — Claude Desktop mid-conversation — actually does.
  • History that outlives the session. Inspector history is React state; gone on reload. MCPScope stores every call from every session in local SQLite, so you can answer "what did my agent do last Tuesday?"
  • Local-first, zero cloud, zero signup. Nothing leaves your machine. Free forever for single-user use.

Quickstart 1 — attach to Claude Desktop

mcpscope attach filesystem     # or any server name from your Claude Desktop config
# restart Claude Desktop, use it normally, then:
mcpscope ui --follow           # watch calls stream in live
mcpscope detach                # undo (config backup is made automatically)

attach rewrites that server's entry in claude_desktop_config.json (after backing it up) so Claude Desktop launches the server through the proxy. The agent and the server themselves are never modified.

Quickstart 2 — wrap any stdio MCP server

Wherever a client config says command: npx -y some-mcp-server, prefix it:

mcpscope run -- npx -y @modelcontextprotocol/server-filesystem ~/notes

stdin/stdout pass through byte-for-byte; a copy of each frame is parsed and recorded. The server's stderr also passes through untouched.

Quickstart 3 — proxy a remote (HTTP) MCP server

mcpscope run --http https://example.com/mcp --port 6280
# point your agent at http://127.0.0.1:6280/mcp instead of the upstream

Streamable HTTP (the current MCP remote transport) is forwarded verbatim, including SSE streams; request/response/SSE payloads are teed into the same store. Add --ui to get the TUI in the same terminal.

Browsing history

mcpscope sessions              # every recorded session, with call/error counts
mcpscope calls <session-id>    # one session's calls (--json for full frames)
mcpscope ui                    # TUI: arrows to inspect, / to filter, f to follow

Recordings live in ~/.mcpscope/mcpscope.db (override with --db or $MCPSCOPE_DB). It's plain SQLite — query it with anything.

What it is / what it is not

It is a passive observer for agents you run: a flight recorder for MCP traffic, with persistent history and a live UI.

It is not a test harness. It never calls your server on its own, never modifies messages, and has no "send request" button — that's the official MCP Inspector, which is great at what it does. Run both.

Guarantees the design enforces:

  • Pass-through is sacred: bytes are forwarded verbatim; parsing happens on a copy, for logging only. Malformed or unknown messages are never dropped, altered, or reordered — they're recorded raw.
  • Recording never blocks the proxy path (write-behind queue; under extreme pressure it drops log entries, counted, never traffic).
  • Protocol-churn insurance: messages are interpreted, never gated. New spec revisions flow through untouched.

License

Apache-2.0.

Metadata

Release files for mcpscope-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpscope-cli 0.1.0
File Size Uploaded
mcpscope_cli-0.1.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcpscope-cli 0.1.0
File Interpreter ABI Platform
mcpscope_cli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / mcpscope_cli-0.1.0.tar.gz

Download URL mcpscope_cli-0.1.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
d27201e17bb39c6950489a0519936894b9d1064811d8a123a67921663d2f5222
BLAKE2b-256 checksum
How to use checksums
60824743f9c3099e2963e921fb7c7b0a25aba4d292107cde41cbffe16e90f895
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcpscope_cli-0.1.0-py3-none-any.whl

Download URL mcpscope_cli-0.1.0-py3-none-any.whl
Size 27.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a834a131beb5bb7ebad452b1943eb2aedb6f5d8a59db78174c9f4c07466ee492
BLAKE2b-256 checksum
How to use checksums
a89c031825e146be60d643ea3df8714efc28008ba02aae71a3a480776f3005b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page