Model Context Protocol server
Your agent should read the request, not your description of it.
Charlotte captures the HTTPS your app actually sent, then exposes it to your coding agent over MCP. Claude Code, Claude Desktop, VS Code and Cursor can search a whole session, open any request and response, replay it, and change the traffic — without you pasting a single header into a chat window.
Loopback only · Write tools off by default · No cloud inference
The problem it solves
Debugging a failing request with an AI agent usually means copying a cURL command out of devtools, pasting it into a chat window, and hoping you grabbed the right header. The agent reasons about your description of the traffic. If the description is wrong — and the reason the request is failing is usually that something is not what you think it is — the answer is wrong too.
Charlotte removes the copying step. It sits as a proxy on your own machine, decrypts HTTPS from any client you point at it, and serves the captured flows to your agent as structured data. The agent reads the actual bytes.
127.0.0.1 and is never exposed to the network. Charlotte has no
backend, no account and no telemetry — there is no server to send your traffic to.
1. Install Charlotte
The MCP server is built into the desktop app and starts with it. There is no separate package to install.
- Windows 10 1903+ / Windows 11 — get Charlotte.Pro from the Microsoft Store. Free for 14 days with every feature unlocked, then one payment, owned forever.
- macOS — see the download options.
Or from a terminal, if you would rather not open the Store app:
winget install --id 9PD5RZKFCM19 --source msstore
In the app, open Settings → AI agents (MCP server) and turn on
Expose captured traffic to agents. The server starts on port
8765 by default.
2. Connect your agent
Claude Code
Charlotte speaks streamable HTTP, so a single command is enough:
claude mcp add --transport http charlotte http://127.0.0.1:8765/
Add --scope user to make it available in every project rather than
just the current one. Check it connected with claude mcp list.
Claude Desktop, Cursor, and other stdio clients
Clients that launch the server as a subprocess use Charlotte's stdio bridge, which relays JSON-RPC to the running app and streams live capture events back.
Windows. The executable lives under a versioned
WindowsApps path, so don't type it by hand — Charlotte's
Settings → AI agents screen shows the exact command with a copy
button. It looks like this:
{
"mcpServers": {
"charlotte": {
"command": "C:\\Program Files\\WindowsApps\\...\\Charlotte.exe",
"args": ["--mcp-stdio", "--mcp-port", "8765"]
}
}
}
macOS.
{
"mcpServers": {
"charlotte": {
"command": "/Applications/Charlotte.app/Contents/MacOS/Charlotte",
"args": ["--mcp-stdio", "--mcp-port", "8765"]
}
}
}
Live capture stream
Anything that can read Server-Sent Events can watch capture happen in real time, including streaming LLM responses arriving token by token:
curl -N http://127.0.0.1:8765/events
Filter with ?events=flow_chunk,flow_completed. Sensitive headers are
redacted by default.
3. What your agent can do
Read tools — always available
list_flows— page through captured requests with their status, host and timing.get_flow— open one request and response in full, with the decoded body.search_flows— a real query language across the session.stats— totals, hosts and status-code breakdown.audit_session— Charlotte's own security and privacy audit, returned as Markdown.
Write tools — off until you enable them
replay_flow— re-send a captured request, with or without changes.create_rewrite— add a rule that rewrites headers, bodies or status codes.create_map_local— serve a request from a file on disk.set_breakpoint— pause matching traffic so it can be edited in flight.
The query language
search_flows takes filters your agent can compose, with globs, ranges, OR and NOT:
# everything that failed
status:>=400
# one vendor's API only
host:*.stripe.com
# requests whose body mentions a token, excluding preflight
body:"token" NOT method:OPTIONS
What that looks like in practice
Point your app at Charlotte, reproduce the bug, then ask the agent in plain language:
"The login call is coming back 401. Look at the actual request
Charlotte captured and tell me what's wrong with it."
The agent calls search_flows for status:401, opens the
flow with get_flow, and reads the header you got wrong — instead of
guessing from a paraphrase.
Security posture
- Loopback only. The server binds to
127.0.0.1. It is not reachable from your network. - Read-only by default. Nothing can change your traffic until you explicitly allow it.
- Header redaction. Sensitive headers are redacted in the live stream by default; you can turn that off.
- No cloud inference. Charlotte's own AI analysis runs on-device. Your traffic is never sent to an AI service — ours or anyone else's.
- Your CA key stays put. The root CA's private key is encrypted with Windows DPAPI (or the macOS Keychain) and never leaves the machine.
Charlotte is for inspecting traffic you are authorised to inspect: your own applications and devices, or systems you have permission to test.
Give your agent the real traffic
Free for 14 days with every feature unlocked. No account, no card, no sign-up.