Charles MCP Server
An MCP server for Charles Proxy: the agent reads traffic during capture and saved sessions, opening request details one at a time
- 331 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- All responses come unmasked, so tokens, cookies and passwords from traffic reach the agent's context
- The reverse_* tools replay requests with changed parameters and look for signature fields, which can affect live services
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/charles-mcp-serverDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- All responses come unmasked, so tokens, cookies and passwords from traffic reach the agent's context
- The reverse_* tools replay requests with changed parameters and look for signature fields, which can affect live services
This is third-party code. Review the repository files before installing.
What it does
The server connects Charles Proxy to an MCP client so an agent can work through an application's network traffic. While capture runs, the agent receives new requests in batches. It analyzes saved sessions in .chlsj files the same way. Output goes from general to specific. The agent first gets a summary and grouping by host, path and status, then picks an entry and asks for its details. A request body is cut to 2048 characters by default. If a response is too large, the server warns and suggests narrowing the selection, so raw dumps stay out of the context. The public set has 31 tools in four groups: capture, analysis and history, control and the reverse_* branch. Control checks the Charles status, resets the environment and simulates 3G, 4G and 5G networks. The reverse_* branch arrived in version 3.0 for analyzing the protocols of your own apps.
Who it is for. For mobile and web developers, testers and protocol researchers who already work with Charles Proxy.
Good fit when
- You need to find the requests that returned an error among hundreds and show the agent only those
- You want the agent to find the busiest hosts and paths in a session you just recorded
- You are checking app behavior on a slow network: the server enables 3G, 4G and 5G presets
- You are studying your own API and need to see which request fields change from call to call
- You are preparing to replay a request from your own app to test how it handles changed parameters
Not a fit when
- Charles Proxy is not installed or its web interface is off: the server sees nothing without it
- You would analyze someone else's traffic without permission: the tool is for authorized debugging and testing
- You only need to filter saved HAR files: opening them in browser tools is simpler
- The agent runs in a shared environment where traffic carries other people's tokens: responses are not masked
Example request
Start a live capture in Charles, then show the hosts with the most errors and open the details of the first request with status 500.MCP
- Transport
- stdio
- Authentication
- API key
Environment variables
CHARLES_USERrequired- Login of the Charles web interface.
CHARLES_PASSrequired, secret- Password of the Charles web interface.
CHARLES_MANAGE_LIFECYCLE- true lets the server start and stop Charles; false by default.
CHARLES_PROXY_PORT- Charles proxy port, 8888 by default.
Limitations
You need Python 3.10 or newer, the uv package manager and a running Charles Proxy with its web interface enabled. The login and password of that interface must match CHARLES_USER and CHARLES_PASS. The proxy listens on 127.0.0.1:8888 by default. The legacy tools filter_func, proxy_by_time and list_sessions are off by default. After upgrading from versions before 3.0 the CHARLES_VNEXT_STATE_DIR variable is obsolete, and on first start the state moves to CHARLES_REVERSE_STATE_DIR.
How to disable. Remove the server from your client settings, in Claude Code with claude mcp remove charles. You can then turn off the Charles web interface under Proxy, Web Interface Settings.
FAQ
How do I connect Charles MCP to Claude Code?
Use claude mcp add-json charles with a stdio config: command uvx, args charles-mcp, and in env the Charles web interface login and password plus CHARLES_MANAGE_LIFECYCLE set to false. The author gives separate config snippets for Claude Desktop, Cursor and Codex CLI.
What does CHARLES_MANAGE_LIFECYCLE do?
When set to true the server starts and stops Charles itself and closes the process on exit. The default is false so the server does not shut down your Charles.
How do start_live_capture, read_live_capture and peek_live_capture differ?
start_live_capture begins or adopts a capture without clearing traffic already caught. read_live_capture reads new entries and advances the cursor, while peek_live_capture shows them without advancing. query_live_capture_entries only filters and leaves the cursor alone.
What are the reverse tools in version 3.0?
Sixteen tools prefixed reverse_: importing Charles sessions, querying imported entries, decoding bodies, replaying a request with changed parameters, finding candidate signature fields and three flows for analyzing traffic during capture (login, API, signature). Use them only on your own apps or with the owner's permission.
What are the default output size limits?
The server trims output to protect context: max_items is 10, max_preview_chars 128, max_headers_per_side 6 and max_body_chars 2048. If you need more, pass higher values manually.
Discussion
No questions or reviews yet.
Related
MCP serversA Go MCP server for debugging 1C over the HTTP Debug Protocol: breakpoints, step execution and variable inspection
The official MCP server debugger: web UI, automation CLI and terminal UI in one package
An MCP server that spins up several browser agents to test a site for broken links, UI bugs and accessibility issues
A local proxy and trace viewer for coding agents: shows system prompts, tool calls and token usage for Claude Code, Codex and other CLIs
An MCP server from Mozilla: an agent drives Firefox through WebDriver BiDi, reads the console and network, takes page snapshots and profiles loading
RAG and RLM MCP server comparison for 1C
perform_comparison_1c_rag_mcp
A methodology and workflow for a Claude orchestrator that compares 1C code-analysis MCP servers by answer quality and token spend
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Charles MCP Server (this entry) | no | API key | 331 | |
| Burp Suite MCP Server | yes | not required | 1,267 | an extension for Burp Suite security testing, a different proxy and a different job |
| Caido Skills | yes | 286 | a Caido skill: searching HTTP history with the HTTPQL language |
README in short
A ready-made prompt lets an agent install the server. The author recommends two call chains: one for real-time capture and one for saved sessions.