Skip to main content
Glama
heizaheiza

Charles MCP Server

by heizaheiza

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CHARLES_PASSNoCharles Web Interface password123456
CHARLES_USERNoCharles Web Interface usernameadmin
CHARLES_PROXY_HOSTNoCharles proxy host127.0.0.1
CHARLES_PROXY_PORTNoCharles proxy port8888
CHARLES_CONFIG_PATHNoCharles configuration file path自动探测
CHARLES_MAX_STOPTIMENoMaximum duration for bounded recording in seconds3600
CHARLES_REQUEST_TIMEOUTNoControl plane HTTP timeout in seconds10
CHARLES_MANAGE_LIFECYCLENoWhether the MCP server manages the Charles lifecycle (start/stop)false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 18 tools

Disambiguation3/5

There is significant overlap between tools for live vs. recorded traffic analysis, with multiple tools serving similar purposes but for different contexts (e.g., query_live_capture_entries vs. query_recorded_traffic, peek_live_capture vs. read_live_capture). However, descriptions help clarify the distinctions, such as cursor behavior and context-specific use cases, preventing complete confusion.

Naming Consistency4/5

Most tools follow a consistent snake_case pattern with descriptive verb-noun combinations (e.g., analyze_recorded_traffic, get_traffic_entry_detail). Minor deviations exist, such as 'filter_func' being less descriptive and 'charles_status' not fully adhering to the verb-noun structure, but overall naming is predictable and readable.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for a comprehensive Charles proxy server covering live capture, recorded traffic analysis, session management, and configuration. It avoids being excessive (under 25) and provides a well-scoped set for the domain, though some tools could potentially be consolidated.

Completeness5/5

The tool set offers complete coverage for Charles proxy operations, including starting/stopping live captures, querying and analyzing both live and recorded traffic, drilling into details, managing sessions and recordings, and configuring throttling and resets. No obvious gaps exist; agents can perform full lifecycle tasks from capture to inspection and management.

Maintenance

ActivityInactive
ResponsivenessWithin a week