Charles MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CHARLES_PASS | No | Charles Web Interface password | 123456 |
| CHARLES_USER | No | Charles Web Interface username | admin |
| CHARLES_PROXY_HOST | No | Charles proxy host | 127.0.0.1 |
| CHARLES_PROXY_PORT | No | Charles proxy port | 8888 |
| CHARLES_CONFIG_PATH | No | Charles configuration file path | 自动探测 |
| CHARLES_MAX_STOPTIME | No | Maximum duration for bounded recording in seconds | 3600 |
| CHARLES_REQUEST_TIMEOUT | No | Control plane HTTP timeout in seconds | 10 |
| CHARLES_MANAGE_LIFECYCLE | No | Whether the MCP server manages the Charles lifecycle (start/stop) | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_live_captureA | Start or adopt a live capture session for incremental polling. Returns a capture_id required by all other live tools. Use adopt_existing=true to take over an ongoing Charles session without clearing it. |
| read_live_captureA | Read incremental traffic and advance the cursor. Returns compact entry summaries (host/method/path/status only). Use query_live_capture_entries for structured filtering instead of this tool. This tool advances the internal cursor — repeated calls only return new items. |
| peek_live_captureA | Preview incremental traffic without advancing the cursor. Returns compact entry summaries (host/method/path/status only). Safe to call repeatedly — does not consume items. Use query_live_capture_entries for structured filtering and analysis. |
| stop_live_captureA | Stop an active live capture and optionally persist the filtered snapshot. Only status='stopped' means the capture is fully closed. |
| query_live_capture_entriesA | Analyze the active live capture with structured summary-first filtering. This is the RECOMMENDED tool for inspecting live traffic. Does NOT advance the cursor — safe to call repeatedly with different filters. Default cursor=0 scans all captured data from the beginning. Use get_traffic_entry_detail to drill down into a specific entry_id. |
| analyze_recorded_trafficB | Analyze a saved recording snapshot with compact summaries. Returns structured TrafficSummary items with matched_fields and match_reasons. Use get_traffic_entry_detail to drill down into a specific entry_id afterwards. |
| get_traffic_entry_detailA | Load one traffic entry detail view for drill-down inspection. Requires entry_id from a prior summary/query call. For history entries, pass recording_path from the summary. For live entries, pass capture_id from the summary. Keep include_full_body=false unless you specifically need the raw body text. |
| get_capture_analysis_statsC | Return coarse traffic class counts for a live capture or saved recording. |
| group_capture_analysisC | Group analyzed traffic so the agent can inspect hot spots with lower token cost. |
| query_recorded_trafficA | Query the latest saved recording. This tool never reads the live Charles session. |
| list_recordingsB | List saved recording files using an explicit history-oriented tool name. |
| get_recording_snapshotA | Load a saved recording snapshot. This tool never reads the live Charles session. |
| proxy_by_timeB | Capture traffic for a fixed duration or read the latest saved history package. |
| filter_funcC | Filter traffic from a fixed capture window or the latest saved history package. |
| throttlingB | Set a network throttling preset in Charles. |
| reset_environmentB | Reset the Charles environment and restore the saved configuration. |
| list_sessionsB | List historical session files via the legacy tool name. |
| charles_statusB | Check Charles connectivity and active live-capture state. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/heizaheiza/Charles-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server