Skip to main content
Glama
ExQA
by ExQA

Charles MCP Server

PyPI version License Python

Документація | Встановлення для команди | Посібник для агентів | Мапінг і перезапуск Charles | ADR-0001 | Контракт інструментів | AGENTS | Сценарії для агента | English README

Charles MCP Server підключає Charles Proxy до MCP-клієнтів. Агент може дивитися живий трафік, аналізувати збережені записи і розкривати окремі запити лише тоді, коли це справді потрібно.

Сервер розв'язує три задачі:

  • читати новий трафік поточної сесії Charles, доки запис ще триває;

  • вести live- і history-аналіз через структуровані дані, а не віддавати агенту сирі дампи;

  • спершу видавати зведення (summary-first), щоб агент знайшов гарячі точки до того, як запитувати деталі.

Напрям релізу (v3.0)

З v3.0 charles-mcp розвивається від простого перегляду трафіку до сценаріїв реверс-інжинірингу.

  • Поверх наявного live/history-аналізу додано набір reverse-інструментів: імпорт, запити, декодування, повтор (replay), пошук кандидатів у підписи і live-сесії реверс-аналізу.

  • Мета — дати агенту не лише переглядати трафік, а й вибудовувати повний цикл реверс-аналізу навколо авторизації, підписів, мутації параметрів і відтворюваності запитів.

Related MCP server: mitmproxy-mcp

Швидкий старт

1. Увімкніть Charles Web Interface

У Charles відкрийте: Proxy -> Web Interface Settings

Перевірте, що:

  • позначено Enable web interface;

  • ім'я користувача admin;

  • пароль 123456.

Значення admin / 123456 використовуються за замовчуванням в усіх прикладах. Для справжньої роботи задайте свій пароль і передайте його через CHARLES_USER / CHARLES_PASS.

Де розташований пункт меню:

Charles Web Interface Menu

Вікно налаштувань:

Charles Web Interface Settings

2. Встановіть і налаштуйте MCP-клієнт

Цього форку немає в PyPI. Пакет charles-mcp у PyPI — це upstream 3.0.3: у ньому немає інструментів моків, а без обмеження mcp<2 він падає на старті з ModuleNotFoundError: mcp.server.fastmcp. Ставте форк із репозиторію за docs/team-installation.uk.md; приклади з uvx нижче стосуються релізів upstream.

Клонувати репозиторій і створювати virtualenv вручну не потрібно. Потрібен uv.

Claude Code CLI

claude mcp add-json charles '{
  "type": "stdio",
  "command": "uvx",
  "args": ["charles-mcp"],
  "env": {
    "CHARLES_USER": "admin",
    "CHARLES_PASS": "123456",
    "CHARLES_MANAGE_LIFECYCLE": "false"
  }
}'

Claude Desktop / Cursor / загальний JSON-конфіг

{
  "mcpServers": {
    "charles": {
      "command": "uvx",
      "args": ["charles-mcp"],
      "env": {
        "CHARLES_USER": "admin",
        "CHARLES_PASS": "123456",
        "CHARLES_MANAGE_LIFECYCLE": "false"
      }
    }
  }
}

Codex CLI

[mcp_servers.charles]
command = "uvx"
args = ["charles-mcp"]

[mcp_servers.charles.env]
CHARLES_USER = "admin"
CHARLES_PASS = "123456"
CHARLES_MANAGE_LIFECYCLE = "false"

Автовстановлення через AI-агента

Скопіюйте промпт нижче в будь-якого AI-агента (Claude Code, ChatGPT, Gemini CLI, Cursor Agent тощо), і він сам встановить і налаштує charles-mcp. Промпт лишено англійською: агенти виконують його однаково будь-якою мовою спілкування.

Автовстановлення

Install the "charles-mcp" MCP server and configure it for my MCP client. Follow these steps exactly:

Step 1 — Detect OS:
  Determine if this machine runs Windows, macOS, or Linux.

Step 2 — Ensure uv is installed:
  Run: uv --version
  If the command fails (uv not found):
    - macOS/Linux: run: curl -LsSf https://astral.sh/uv/install.sh | sh
    - Windows: run: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  After installing, verify uv works: uv --version

Step 3 — Detect which MCP client is installed:
  Check in this order and use the FIRST match:

  a) Claude Code — run: claude --version
     If it succeeds, run this command and skip to Step 5:
       claude mcp add-json charles '{"type":"stdio","command":"uvx","args":["charles-mcp"],"env":{"CHARLES_USER":"admin","CHARLES_PASS":"123456","CHARLES_MANAGE_LIFECYCLE":"false"}}'

  b) Claude Desktop — check if config file exists:
     - macOS:   ~/Library/Application Support/Claude/claude_desktop_config.json
     - Windows: %APPDATA%\Claude\claude_desktop_config.json
     - Linux:   ~/.config/Claude/claude_desktop_config.json

  c) Cursor — check if any of these exist:
     - ~/.cursor/mcp.json
     - .cursor/mcp.json (in current project)

  d) Windsurf — check if exists:
     - ~/.codeium/windsurf/mcp_config.json

  e) Kiro — check if either of these exists:
     - .kiro/settings/mcp.json (in current project, wins over the user one)
     - ~/.kiro/settings/mcp.json

  If none detected, ask the user which client they use.

Step 4 — Write config (for clients b/c/d/e):
  The config entry to add is:
    "charles": {
      "command": "uvx",
      "args": ["charles-mcp"],
      "env": {
        "CHARLES_USER": "admin",
        "CHARLES_PASS": "123456",
        "CHARLES_MANAGE_LIFECYCLE": "false"
      }
    }

  IMPORTANT: If the config file already exists, read it first, parse the JSON,
  add the "charles" key inside "mcpServers" (create "mcpServers" if absent),
  and write back. Do NOT overwrite other existing MCP server entries.
  If the file does not exist, create it with:
    { "mcpServers": { "charles": { ... } } }

  Kiro takes the same entry and additionally accepts "disabled": false and
  "autoApprove": [...]. If you set autoApprove, list only read-only tools such as
  charles_status, start_live_capture, query_live_capture_entries and
  group_capture_analysis. Never auto-approve reset_environment, mock_setup_host or
  mock_route_setup: they close Charles or write its config.

Step 5 — Verify:
  Run: uvx charles-mcp
  Wait 3 seconds then terminate the process.
  If it starts without import errors, the installation is successful.

Step 6 — Report:
  Print: "charles-mcp installed successfully. Please restart your MCP client to load the new server."
  For Kiro, saving mcp.json reconnects the server; check it in the MCP panel.
  Also mention that Charles Proxy must be running with Web Interface enabled (Proxy → Web Interface Settings, username: admin, password: 123456).

Вимоги

  • Python 3.10+

  • запущений локально Charles Proxy

  • увімкнений Charles Web Interface

  • проксі Charles слухає 127.0.0.1:8888

Рекомендоване значення за замовчуванням — CHARLES_MANAGE_LIFECYCLE=false. Не дозволяйте MCP-серверу закривати ваш Charles, якщо ви явно не хочете, щоб він керував запуском і зупинкою Charles.

Змінні оточення

Змінна

За замовчуванням

Призначення

CHARLES_USER

admin

Ім'я користувача Charles Web Interface

CHARLES_PASS

123456

Пароль Charles Web Interface

CHARLES_PROXY_HOST

127.0.0.1

Хост проксі Charles

CHARLES_PROXY_PORT

8888

Порт проксі Charles

CHARLES_CONFIG_PATH

автовизначення

Шлях до файлу конфігурації Charles

CHARLES_REQUEST_TIMEOUT

10

Тайм-аут HTTP-запитів до Charles у секундах

CHARLES_MANAGE_LIFECYCLE

false

Чи має MCP-сервер запускати і зупиняти Charles

CHARLES_REVERSE_STATE_DIR

${CHARLES_STATE_DIR}/reverse

Каталог стану reverse-аналізу: артефакти і база SQLite

CHARLES_MOCK_DIR

~/charles-mocks

Корінь сховища моків Map Local; Charles мапить https://<host>/* у <CHARLES_MOCK_DIR>/<host>/. Правила диспетчера лежать у <CHARLES_MOCK_DIR>/_rules/

CHARLES_DISPATCHER_PORT

18080

Порт локального диспетчера, на який указують правила Map Remote

CHARLES_DISPATCHER_TIMEOUT

20

Тайм-аут у секундах для запитів, які диспетчер пересилає на сервер

Рекомендовані сценарії

Live-аналіз

  1. start_live_capture

  2. group_capture_analysis

  3. query_live_capture_entries

  4. get_traffic_entry_detail

  5. stop_live_capture

Цей шлях дозволяє спершу знайти гарячі точки з мінімальною витратою токенів, а потім розкрити один підтверджений запит.

Аналіз історії

  1. list_recordings

  2. analyze_recorded_traffic

  3. group_capture_analysis(source="history")

  4. get_traffic_entry_detail

Цей шлях підходить, щоб переглянути збережені записи і потім заглибитися в обрані запити.

Підміна відповідей через Map Local

Як влаштовані правила в Charles, коли і як Charles перезапускається, відкат і діагностика — у docs/charles-mapping.uk.md.

  1. mock_setup_host — один раз на хост: створює <CHARLES_MOCK_DIR>/<host>/ і правила Charles. З apply=true (Charles має бути закритий) записує їх у конфіг Charles, інакше повертає інструкцію для ручного налаштування.

  2. start_live_capture + query_live_capture_entries — знайти справжню відповідь.

  3. mock_create_from_entry з правками patches у форматі JSON Pointer (або mock_write, щоб написати відповідь з нуля).

  4. Застосунок повторює запит; перевірте результат через query_live_capture_entries(response_header_name="X-Charles-Map-Local").

  5. mock_remove — повернутися до справжнього сервера (файл іде в архів, а не видаляється); mock_set_enabled(false) — призупинити всі моки.

Мок — це просто файл за шляхом <CHARLES_MOCK_DIR>/<host>/<шлях запиту>. Доки файл існує, Charles віддає його і перечитує на кожен запит; якщо файлу немає, запит іде на справжній сервер.

Обмеження Map Local:

  • статус відповіді завжди 200;

  • query string і HTTP-метод ігноруються, тому всі варіанти одного шляху отримують той самий файл;

  • /users і /users/42 не можна замокати одночасно: users не може бути водночас файлом і каталогом.

Налаштування також додає правило Rewrite, яке віддає моки як application/json: Charles позначає файли без розширення як text/plain.

Багато шляхів і action: правила диспетчера

Використовуйте для справжнього API: багато шляхів, POST-запити, де операцію обирає поле action, і те саме API на кількох хостах (dev, stage тощо). Map Local такі запити не розрізняє, диспетчер розрізняє. Обґрунтування — в ADR-0001.

Правило в Charles ставиться один раз на домен і потребує перезапуску Charles (або ручного введення в UI без перезапуску). Інструменти самі Charles не закривають і не запускають: порядок дій, що втрачається і як відкотити — у docs/charles-mapping.uk.md.

Один раз на домен. mock_route_setup(host="*.example.com", path="/api/*") заводить маршрут і повертає одне правило Map Remote для Charles: https://*.example.com/api/* → локальний диспетчер із порожнім шляхом призначення (Charles зберігає вихідний шлях) і ввімкненим «Preserve host header». apply=true записує його, доки Charles закритий. Після цього всі шляхи, action і хости під маршрутом — лише дані, а запити без правила йдуть на справжній сервер без змін.

На кожну сесію.

  1. start_live_capture, потім пройдіть сценарій у застосунку.

  2. mock_discover_variants(source="live", capture_id) показує всю сесію: метод × хост × шлях × значення action (null для GET) з кількістю, прикладами entry_id і статусами. Фільтри — host_contains / path_contains.

  3. На кожну правку, яку просить користувач: mock_rule_create_from_entry(entry_id, match_body_fields=["/action"], response_patches=[...], request_patches=[...]).

    • mode="patch" (за замовчуванням): відповідає справжній сервер, змінюються лише вказані поля запиту й відповіді.

    • mode="fixture": знята відповідь із правками і будь-яким status, наприклад 500, без звернення до сервера.

    • status підміняє код відповіді, delay_ms затримує її (0–60000 мс) — для перевірки лоадерів і тайм-аутів, request_headers задає або видаляє заголовки запиту перед відправкою.

    • Сегменти шляху, що залежать від платформи чи версії застосунку, замінюйте на * через match_path, наприклад /api/*/payoneer.

    • За замовчуванням правило діє на всіх хостах маршруту (host_scope="any"); host_scope="exact" або host="stage.example.com" звужують його, і правило для конкретного хоста перемагає загальне.

    • Повторне прохання для того самого варіанта доповнює його правило (merge=true); правка того самого поля замінює попередню.

  4. mock_dispatcher(action="start"), потім повторіть дії в застосунку.

  5. Перевірте через query_live_capture_entries(response_header_name="X-Charles-MCP-Rule"): у заголовку id правила або passthrough.

Зберігання в <CHARLES_MOCK_DIR>/_rules/: routes.json (маршрути), _any/ (правила для будь-якого хоста або шаблону хоста), <host>/ (правила для одного хоста), фікстури поруч із правилами як <rule_id>.body. Диспетчер перечитує їх на кожен запит, тому правки діють одразу. Він пересилає лише запити, покриті маршрутом, слухає 127.0.0.1 і має працювати, доки в Charles увімкнене правило Map Remote; для постійної роботи є команда charles-mcp-dispatcher. Маршрут на весь хост (/*) пропускає через диспетчер і статику, і WebSocket: завантаження буферизуються, а WebSocket не підтримується, тому краще вказувати префікс API.

⚠️ Фікстури — це зняті справжні відповіді, у них можуть бути персональні та платіжні дані. Тримайте CHARLES_MOCK_DIR поза репозиторіями і нікому не пересилайте; діліться описами правил із синтетичними даними.

Основні зміни версії (v3.0.3)

  • Точки входу в документацію зведені до docs/README.md.

  • Додані документи для агентів: AGENTS.md у корені та docs/agent-workflows.md зі сценаріями за задачами.

  • У README і docs/contracts/tools.md додані посилання на документи для агентів зі шляхами відносно репозиторію.

  • В описи часто вживаних інструментів додані мінімально потрібні підказки (збереження ідентичності джерела, summary-first, різниця між peek і read), а контрактні тести не дають їм розходитися з документацією.

  • Напрям продукту явно включає реверс-інжиніринг: доступні reverse-інструменти для імпорту, декодування, повтору запитів, пошуку кандидатів у підписи і live-сценаріїв реверс-аналізу.

  • read_live_capture і peek_live_capture тепер повертають лише короткі поля маршруту (host, method, path, status) замість сирих записів Charles. Так частий опит не переповнює контекстне вікно.

  • query_live_capture_entries став інструментом лише для читання і не зсуває live-курсор. Той самий capture_id можна перевикористовувати з різними фільтрами, не «з'їдаючи» накопичений приріст.

  • Зведення analyze_recorded_traffic і query_live_capture_entries повертають matched_fields і match_reasons, щоб агент міг пояснити, чому обрано запит.

  • У get_traffic_entry_detail за замовчуванням include_full_body=false і max_body_chars=2048. Якщо оцінний розмір відповіді перевищує приблизно 12 000 символів, інструмент додає попередження з порадою звузити запит.

  • Зведення і деталі автоматично прибирають значення null і приховують внутрішні поля header_map, parsed_json, parsed_form, lower_name. Заголовки беріть зі списку headers.

Каталог інструментів

Цей README описує весь публічний набір інструментів.

Інструменти live-захоплення

Інструмент

Що робить

Коли використовувати

start_live_capture

Запускає або підхоплює поточне live-захоплення і повертає capture_id; за замовчуванням adopt_existing=true, reset_session=false, не очищає вже записаний трафік Charles і завжди включає його в захоплення

Перед початком спостереження в реальному часі

read_live_capture

Читає нові записи за курсором і повертає лише короткі зведення маршрутів

Для безперервного читання нового трафіку, коли спершу потрібні лише host/path/status

peek_live_capture

Показує нові записи без зсуву курсора, лише короткі зведення маршрутів

Щоб зазирнути в новий трафік, не змінюючи позицію читання

stop_live_capture

Зупиняє захоплення і за потреби зберігає знімок

Під час завершення або експорту live-сесії

query_live_capture_entries

Видає структуроване зведення по live-захопленню без зсуву курсора; since_seconds=N обмежує трафік останніми N секундами

Для багаторазової фільтрації важливих запитів із поточного трафіку

Інструменти аналізу

Інструмент

Що робить

Коли використовувати

group_capture_analysis

Групує live- або history-трафік за ключем

Коли потрібен найощадливіший за токенами огляд гарячих точок

get_capture_analysis_stats

Повертає грубу статистику за класами трафіку

Щоб швидко побачити розподіл: API, статика, помилки

get_traffic_entry_detail

Завантажує деталі одного запису і попереджає про завелику відповідь

Коли entry_id цілі вже відомий

analyze_recorded_traffic

Видає структуроване зведення за збереженим записом із причинами збігу

Для аналізу знімка .chlsj

Інструменти історії

Інструмент

Що робить

Коли використовувати

list_recordings

Показує збережені файли записів

Перед вибором історичного знімка

get_recording_snapshot

Завантажує сирий вміст одного збереженого запису

Коли потрібен сам збережений знімок

query_recorded_traffic

Легка фільтрація останнього збереженого запису

Для швидкого пошуку за host, методом або регулярним виразом

Інструменти стану і керування

Інструмент

Що робить

Коли використовувати

charles_status

Показує зв'язок з Charles і стан активного захоплення; поле recommended_next_action підказує наступний крок

Щоб перевірити, чи доступний Charles і чи активне захоплення

throttling

Вмикає пресет сповільнення мережі в Charles

Для емуляції 3G, 4G, 5G або вимкнення сповільнення

reset_environment

Відновлює конфігурацію Charles і очищає поточне оточення

Коли треба повернутися до чистого стану

⚠️ reset_environment закриває Charles, перезаписує його конфіг із бекапа і видаляє каталог збережених записів. Викликайте його лише свідомо.

Інструменти реверс-аналізу

Інструмент

Що робить

Коли використовувати

reverse_import_session

Імпортує офіційну XML- або нативну сесію Charles у канонічне reverse-сховище

Щоб почати replay, декодування або аналіз підписів зі збережених експортів

reverse_list_captures

Показує імпортовані reverse-захоплення

Щоб обрати захоплення, яке вже лежить у reverse-SQLite

reverse_query_entries

Фільтрує імпортовані reverse-записи за полями маршруту

Щоб звузити набір кандидатів перед детальним переглядом або replay

reverse_get_entry_detail

Повертає канонічну деталізацію одного імпортованого запису

Для глибокого розбору одного базового запиту

reverse_decode_entry_body

Декодує збережене тіло запиту або відповіді, включно з protobuf за дескриптором

Коли треба зрозуміти структуру payload

reverse_replay_entry

Повторює один імпортований запит з необов'язковими мутаціями

Щоб перевірити, чи відтворюється запит і як він реагує на зміни

reverse_discover_signature_candidates

Порівнює кілька імпортованих записів і ранжує поля, схожі на підпис

Для пошуку динамічних параметрів авторизації або підпису

reverse_list_findings

Показує збережені результати replay і аналізу підписів

Щоб переглянути вже зібрані докази

reverse_charles_recording_status

Показує стан запису Charles і reverse live-сесії

Щоб перевірити готовність до live-реверс-аналізу

reverse_start_live_analysis

Запускає reverse live-сесію і знімає сесію Charles через офіційні сторінки експорту

Коли реверс-аналіз має стежити за свіжим трафіком

reverse_peek_live_entries

Читає нові reverse live-записи без зсуву курсора

Щоб подивитися новий трафік до його обробки

reverse_read_live_entries

Читає нові reverse live-записи і зсуває курсор

Щоб просунути reverse live-аналіз

reverse_stop_live_analysis

Зупиняє reverse live-сесію і за потреби відновлює запис

Для акуратного завершення reverse live-сесії

reverse_analyze_live_login_flow

Оцінює новий трафік на зв'язок із логіном і авторизацією та пропонує наступні кроки

Для розбору логіна, отримання токена, встановлення сесії

reverse_analyze_live_api_flow

Оцінює новий трафік як API-ланцюжок і пропонує наступні кроки

Для розбору ланцюжків бізнес-API

reverse_analyze_live_signature_flow

Фокусується на запитах, чутливих до підпису, і планує експерименти з мутаціями

Для розбору захистів на sign, nonce, timestamp

Інструменти моків Map Local

Інструмент

Що робить

Коли використовувати

mock_setup_host

Створює каталог моків для хоста і правила Map Local + Rewrite (інструкція для ручного налаштування або запис у конфіг з apply=true, доки Charles закритий)

Один раз на кожен API-хост

mock_create_from_entry

Перетворює захоплену відповідь на мок, застосовуючи правки JSON Pointer

Коли користувач хоче змінити дані, які отримав застосунок

mock_write

Пише мок із JSON-значення або сирого тексту

Коли справжньої відповіді ще немає

mock_list / mock_get

Список активних моків / вміст одного

Щоб подивитися, що зараз підміняється

mock_remove

Відправляє мок в архів, шлях знову йде на справжній сервер

Коли сценарій завершено

mock_set_enabled

Вмикає або вимикає весь Map Local через Web Interface

Щоб призупинити або відновити всі моки

Інструменти правил диспетчера

Інструмент

Що робить

Коли використовувати

mock_route_setup

Спрямовує хост або шаблон домену (за замовчуванням усі шляхи) через диспетчер і повертає одне правило Map Remote (з apply=true при закритому Charles записує його в конфіг)

Один раз на домен

mock_discover_variants

Групує всю сесію за методом, хостом, шляхом і полем тіла, наприклад /action

Одразу після читання сесії

mock_rule_create_from_entry

Створює або доповнює правило одного варіанта (метод + шлях + значення тіла/query): режим patch або fixture, будь-який статус, затримка, правка заголовків запиту, за замовчуванням на будь-якому хості

На кожну правку, яку назвав користувач

mock_rule_write

Пише документ правила напряму, за бажанням із фікстурою

Коли знятого запиту немає

mock_rule_list / mock_rule_get

Список маршрутів і правил / одне правило з фікстурою

Щоб подивитися, що замокано

mock_rule_set_enabled / mock_rule_remove

Призупинити правило / відправити в архів

Коли сценарій завершено

mock_dispatcher

Запускає, зупиняє або перевіряє локальний диспетчер; start/stop заразом вмикають і вимикають Map Remote у Charles, щоб трафік не впирався в зупинений диспетчер

Перед тестом і після

Ключова поведінка

1. За замовчуванням повертаються сирі дані

Ця версія більше не маскує вміст запитів і відповідей:

  • зведення, деталі, live і history повертають сирі значення;

  • якщо потрібне маскування, його має робити MCP-клієнт або агент.

⚠️ Токени, cookie і персональні дані з трафіку потрапляють у контекст моделі як є. Використовуйте тестові акаунти і стенди.

2. Спочатку зведення, потім деталі

Спершу викликайте group_capture_analysis, query_live_capture_entries або analyze_recorded_traffic, і лише для підтвердженої цілі — get_traffic_entry_detail.

Не вмикайте include_full_body=true без явної причини.

3. Вивід оптимізований під бюджет токенів

Серіалізація всіх зведень і деталей полегшена:

  • внутрішні поля header_map, parsed_json, parsed_form, lower_name не потрапляють у вивід інструментів;

  • значення null автоматично прибираються під час серіалізації;

  • якщо в детальному вигляді є full_text, надлишковий preview_text видаляється.

Значення за замовчуванням зменшені, щоб берегти контекстне вікно:

Параметр

Старе значення

Нове значення

max_items

20

10

max_preview_chars

256

128

max_headers_per_side

8

6

max_body_chars

4096

2048

Якщо потрібен ширший огляд, більші значення так само можна передати явно.

4. Деталі з історії потребують стабільного ідентифікатора джерела

Зведення по історії повертають recording_path, зведення по live — capture_id.

Для get_traffic_entry_detail:

  • в історії передавайте recording_path;

  • у live передавайте capture_id.

5. Збій stop_live_capture відновлюваний

У stop_live_capture два стабільні кінцеві стани:

  • status="stopped" — захоплення справді закрите;

  • status="stop_failed" — короткий повтор теж не вдався, але захоплення збережене.

Якщо результат такий:

{
  "status": "stop_failed",
  "recoverable": true,
  "active_capture_preserved": true
}

означає, що захоплення так само можна читати, діагностувати і згодом зупинити повторно.

Розробка

CI пропускає зміни лише після успішного проходження ruff, mypy і pytest. Локально запускайте те саме:

python -m ruff check charles_mcp tests
python -m mypy charles_mcp
python -m pytest -q

Корисні команди для локального запуску:

python charles-mcp-server.py
python -c "from charles_mcp.main import main; main()"

Див. також

Available Tools

47 tools
analyze_recorded_trafficA

Analyze a saved recording snapshot with compact summaries. HISTORY-PLANE TOOL — only use when the user explicitly references a saved recording (.chlsj file). For ongoing / live traffic, prefer start_live_capture + query_live_capture_entries instead. Preserve recording_path for follow-up detail calls. Returns structured TrafficSummary items with matched_fields and match_reasons. Use get_traffic_entry_detail to drill down into a specific entry_id afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetNoapi_focus
max_itemsNo
method_inNo
status_inNo
scan_limitNo
host_containsNo
path_containsNo
recording_pathNo
max_preview_charsNo
resource_class_inNo
min_priority_scoreNo
request_json_queryNo
request_header_nameNo
response_json_queryNo
include_body_previewNo
max_headers_per_sideNo
request_content_typeNo
response_header_nameNo
request_body_containsNo
response_content_typeNo
response_body_containsNo
request_header_value_containsNo
response_header_value_containsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
sourceYes
warningsNo
truncatedNo
next_cursorNo
total_itemsNo
matched_countNo
scanned_countNo
filtered_out_countNo
filtered_out_by_classNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does state what the tool returns ('structured TrafficSummary items with matched_fields and match_reasons') and that it produces compact summaries. It does not explicitly label the operation as read-only or mention side effects, but 'analyze' and 'saved recording snapshot' make the non-mutating intent clear enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds a distinct piece of guidance: what it does, when to use it, what to prefer instead, what to preserve, what it returns, and how to drill down. The content is front-loaded and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the return-value mention is a bonus, and the description covers usage context, alternatives, and follow-up workflow. It falls just short of fully complete because it never explicitly states that recording_path must be supplied to select the recording, despite all parameters being marked optional in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 23 parameters, and the description only adds meaning for recording_path ('preserve it for follow-up detail calls'). The many filter parameters (host_contains, path_contains, status_in, etc.) rely entirely on their names, so the description does not compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb and resource ('Analyze a saved recording snapshot') and the qualifier 'with compact summaries' clarifies its scope. It explicitly labels itself as the history-plane tool and names live-capture siblings, so an agent can distinguish it from the cluster of live and reverse tools without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit precondition ('only use when the user explicitly references a saved recording (.chlsj file)') and explicit alternatives for live traffic ('start_live_capture + query_live_capture_entries'). It also tells the agent to preserve recording_path for follow-up and to use get_traffic_entry_detail for drill-down, which is exactly the routing guidance needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

charles_statusA

Check Charles connectivity and active live-capture state. Returns recommended_next_action to nudge agents toward the live plane: when no active capture exists, agents should start_live_capture before falling back to history-plane tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
configYes
connectedYes
charles_infoNo
live_captureYes
recommended_next_actionNo

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It discloses that the tool returns a recommended_next_action and ties that to the active-capture state, which is useful behavioral context. However, it does not explain what happens when Charles is unreachable/not connected, or whether this is a read-only operation—gaps that matter given annotations are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight, purposeful sentences with no waste. The first sentence front-loads the tool's purpose, and the second gives actionable context, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless status tool with an output schema, the description covers the essential decision logic and names the relevant sibling tools. It does not list the exact return fields or enumerate all error conditions, but the output schema presumably handles field-level detail and the description provides enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to explain any parameter semantics, and nothing about the schema coverage lowers this bar.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific, actionable verb 'Check' and names the exact resource ('Charles connectivity and active live-capture state'), which immediately clarifies the tool's function. It also differentiates from siblings by referencing start_live_capture and the broader history-plane tool family, so an agent can tell this status check apart from capture management or replay tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit routing guidance: when no active capture exists, agents should call start_live_capture before falling back to history-plane tools. This both tells when using this tool is appropriate and directs the agent to the correct sibling tools under a specific condition, satisfying the when/alternative requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_capture_analysis_statsC

Return coarse traffic class counts for a live capture or saved recording.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetNoapi_focus
sourceYes
capture_idNo
scan_limitNo
recording_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
presetYes
sourceYes
warningsNo
total_itemsNo
scanned_countNo
classified_countsNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure, but it only states the action without any side effects, limits, or operational behavior. It does not explain how 'coarse' numbers are produced or what happens with large capture_id sets, and the scan_limit parameter is absent from the text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one focused sentence with no wasted words and front loads the core action. While it is terse, it is not bloated or redundant, which earns a score above average despite sacrificing details that might help.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With five parameters, conditional requirements (capture_id vs recording_path depending on source), and no annotations, the description is far too thin to guide a correct call. An output schema exists, but the description still fails to cover the input dependencies and choice boundaries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate by explaining the five parameters. The only hint is 'live capture or saved recording', which loosely maps to source and capture_id/recording_path, but the roles of preset, capture_id, recording_path, and scan_limit are left unexplained, leaving agents guessing about required inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action (return) and a clear resource (coarse traffic class counts) with an explicit scope ('live capture or saved recording'), which separates it from entry-level tools. It does not explicitly contrast with sibling tools, but the core function is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over closely related siblings such as get_recording_snapshot, query_live_capture_entries, or group_capture_analysis. It also fails to mention prerequisites or the conditions under which live vs saved recordings should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recording_snapshotA

Load a saved recording snapshot. This tool never reads the live Charles session. HISTORY-PLANE TOOL — only use when the user explicitly references a saved recording (.chlsj file).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNo
itemsYes
sourceYes
warningsNo
total_itemsYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses that the tool does not read the live capture and is a history-plane tool, but it does not explicitly state whether loading is side-effect-free, read-only, or whether internal state is modified. More detail on side effects or read-after-load behavior would be needed for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long and every sentence adds value: the primary action, the distinction from live session, and the trigger for use. It is front-loaded with the core action and uses plain, unambiguous language with minimal fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and the description provides strong guidance on when and how to use the tool, plus a useful negative (no live access). However, the path parameter remains undocumented, and the default/required behavior is not explained. Given the lack of annotations, this minor gap keeps it from being fully complete for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it mentions save as .chlsj files but never directly maps the path parameter to a file path or explains its meaning. The schema only offers a nullable, foreign path with a default of null. An agent is left guessing whether path is required, what format it should take, or how the default is resolved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads a saved recording snapshot and explicitly distinguishes it from live-session tools by asserting it never reads the live Charles session. It also specifies the file type (.chlsj), which helps an agent identify both the resource and the input type. This is specific and separates it from sibling live-capture and recording-analysis tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: only when the user references a saved recording (.chlsj file). It also clearly states a when-not condition: 'never reads the live Charles session'. While it does not name a specific alternative tool (e.g., read_live_capture), the contextual boundary is strong enough for an agent to select or avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_traffic_entry_detailA

Load one traffic entry detail view for drill-down inspection. Requires entry_id from a prior summary/query call. Use detail for one confirmed target, not bulk browsing. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
entry_idYes
capture_idNo
max_body_charsNo
recording_pathNo
include_full_bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
detailYes
sourceYes
entry_idYes
warningsNo

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool requires a prior call and that include_full_body should be kept false unless needed, but it does not mention what the detail view contains, whether it is read-only, or any side effects. It is a read-like operation but that is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by practical usage instructions. Every sentence adds value, and the guidance is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and the description covers the key usage flow, it is mostly complete. The main gap is the lack of explicit read-only/safety context and no mention of max_body_chars semantics, but the description is strong for a detail-inspection tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the meaning of entry_id, recording_path, capture_id, and include_full_body in context, which is valuable. However, it does not explain max_body_chars or the source enum beyond the live/history distinction, leaving some parameters under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads one traffic entry detail view for drill-down inspection, with a specific verb and resource. It distinguishes itself from bulk browsing and references prior summary/query calls, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it ('for one confirmed target, not bulk browsing'), how to obtain required IDs ('from a prior summary/query call'), and how to handle live vs history entries. It also gives a clear directive on include_full_body, which is actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

group_capture_analysisC

Group analyzed traffic so the agent can inspect hot spots with lower token cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetNoapi_focus
sourceYes
group_byYes
method_inNo
status_inNo
capture_idNo
max_groupsNo
scan_limitNo
host_containsNo
path_containsNo
recording_pathNo
max_preview_charsNo
resource_class_inNo
min_priority_scoreNo
request_json_queryNo
request_header_nameNo
response_json_queryNo
max_headers_per_sideNo
request_content_typeNo
response_header_nameNo
request_body_containsNo
response_content_typeNo
response_body_containsNo
request_header_value_containsNo
response_header_value_containsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupsNo
sourceYes
group_byYes
warningsNo
truncatedNo
total_itemsNo
matched_countNo
scanned_countNo
filtered_out_countNo
filtered_out_by_classNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It mentions 'lower token cost' as a benefit, which is useful, but does not clarify key behaviors such as whether the operation is read-only (likely), whether data is consumed or cached, or what the output structure contains. The description is too terse to provide adequate transparency for a complex analysis tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, which is concise and front-loads the primary action ('Group') and benefit ('inspect hot spots'). However, its brevity sacrifices necessary detail, making it more under-specification than optimal conciseness. It earns points for being short and focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (25 params, many filters and grouping options) and the lack of parameter descriptions, the description is incomplete. It provides no guidance on required parameters, preset semantics, or filter usage. The presence of an output schema helps but does not compensate for the absence of operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 25 parameters and 0% schema description coverage, the description must compensate by explaining parameter usage, but it does not. The description only mentions the concepts of grouping and hot spots, leaving all parameters (e.g., 'group_by', 'preset', filters) and their relationships unexplained. This is a significant gap given the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Group analyzed traffic' to help the agent inspect hot spots, which conveys the core function. However, it does not differentiate from sibling tools like 'get_capture_analysis_stats' or 'query_recorded_traffic', which may also operate on analyzed traffic, leaving potential ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a hint of when to use it ('so the agent can inspect hot spots') but provides no explicit guidance on when to prefer this over alternatives or when not to use it. It lacks mention of specific scenarios or exclusions, leaving the agent to infer usage from the tool name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recordingsA

List saved recording files using an explicit history-oriented tool name. HISTORY-PLANE TOOL — only use when the user explicitly references saved recordings (.chlsj files). For ongoing / live traffic, prefer start_live_capture instead. Start history analysis here, then preserve recording_path for summary/detail calls.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
warningsNo
total_itemsYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It implies read-only behavior via 'List' and mentions returning recording_path, but does not explicitly state side effects or confirm it is non-mutating. It also doesn't describe output structure, though an output schema exists. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no fluff. The core purpose is front-loaded, usage guidance is explicit, and the follow-up step is concise. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema, the description is largely sufficient. It clarifies the tool's place in the history plane and provides next steps. Minor gap: it doesn't explicitly state it's read-only or list all recordings without filters, but that's inferable from the name and context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so schema provides no details; baseline is 4. The description adds no parameter-specific info (none needed), but it does mention 'recording_path' in a usage context, which hints at what output might contain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists saved recording files (.chlsj files), with a specific verb ('List') and resource. It differentiates itself from live capture tools by explicitly naming the history plane, making it distinct from siblings like start_live_capture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (only when user references saved recordings) and when not to (prefer start_live_capture for live traffic). It also gives a follow-up instruction to preserve recording_path for later calls, guiding the agent's workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_create_from_entryA

Turn a captured response into a Map Local mock, optionally editing it. Take entry_id from query_live_capture_entries (pass capture_id) or a history summary (pass recording_path). The mock is written for the entry's host and path; a previous mock at that path is archived, never deleted. Read warnings: Map Local always answers 200 and ignores method and query.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
patchesNoEdits applied to the captured JSON response, addressed by JSON Pointer: {"op": "set", "path": "/data/balance", "value": 0} or {"op": "remove", "path": "/data/banner"}. Use "/items/-" to append and "/items/[id=42]/status" to pick an array element by a field.
entry_idYes
capture_idNo
recording_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
mockYes
warningsNo
next_stepYes
patches_appliedNo
source_entry_idNo
archived_previousNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral burden. It discloses important side effects: a previous mock at the same path is archived, never deleted, and Map Local always answers 200 while ignoring method and query. It also points the agent to read the warnings field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: main purpose, source selection, and behavioral caveats. The most important information is front-loaded, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no annotations, and an output schema, the description covers the critical usage decisions, side effects, and response caveats. It doesn't cover error cases or exact entry_id format, but it is sufficient for correct invocation in common flows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description must compensate. It explains how entry_id is obtained from either capture_id or recording_path, and clarifies the source-dependent parameter usage. Patches are already well documented in the schema with JSON Pointer examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Turn a captured response into a Map Local mock, optionally editing it.' It also clarifies the source of the entry_id, which distinguishes this tool from rule-based mock creation siblings like mock_rule_create_from_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when to use it: after query_live_capture_entries or a history summary, and explains which parameter to pass for each source. It doesn't explicitly name alternatives or exclusions, but the source-selection guidance is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_discover_variantsA

Overview of the whole captured session: API requests grouped by method, host, path and the value of a request-body field (default /action; "null" for GETs and bodies without it), with counts, sample entry_ids and response statuses. Use it right after reading a session so the user can name what to change. Filter with host_contains / path_contains / methods. live needs capture_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sourceYes
methodsNo
body_fieldNo/action
capture_idNo
max_groupsNo
host_containsNo
path_containsNo
recording_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupsNo
scannedYes
warningsNo
body_fieldYes
total_groupsNo
host_containsNo
path_containsNo
recording_pathNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it discloses the grouping keys, the default /action field, the 'null' behavior for GETs and bodies without that field, and the live-source dependency. It stops short of explicitly stating that this is a read-only aggregation, though 'Overview' strongly implies it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences deliver the full picture with no filler. The main grouping result is front-loaded, followed by usage timing, filters, and the live-source caveat, all in compact, scannable prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, and the description covers main usage, filters, and the live caveat. But it never explains how history source relates to recording_path, and optional parameters like limit and max_groups are only known by their schema titles. Given 9 parameters and a required source enum, this leaves a meaningful gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains body_field's default and semantics, names host_contains/path_contains/methods as filters, and notes capture_id's role for live. However, it leaves recording_path, limit, max_groups, and the history source semantics unexplained, so the compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete behavior: an overview of the whole captured session, with requests grouped by method, host, path, and request-body field, plus counts, sample entry_ids, and response statuses. This is specific enough for an agent to distinguish it from sibling tools that analyze individual entries or signatures.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit timing ('right after reading a session'), the main filters to apply, and the condition that live requires capture_id. It does not name sibling alternatives or state when not to use it, but the use context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_dispatcherA

Start, stop or check the local dispatcher that Map Remote routes point to. A dispatcher started here lives inside the MCP server and stops with it; for a long-running one use the charles-mcp-dispatcher command. By default start also enables Charles Map Remote and stop disables it (toggle_map_remote), so routed requests never point at a stopped dispatcher; mock files and rules stay.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNo
actionNostatus
toggle_map_remoteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
routesNo
addressYes
messageYes
runningYes
mock_dirYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses key lifetime behavior (dispatcher stops with the server), side effects (start/stop toggles Map Remote), and persistence of mock files. It does not address potential issues like port conflicts or overlapping instances, but it covers the most important operational side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no fluff. The main purpose is front-loaded in the first sentence, and additional behavioral details follow logically. Every sentence adds value, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values are already captured. The description covers the action semantics, side effects, and the alternative for long-running use. The only missing piece is a clear explanation of the `port` parameter, which is a minor gap given the tool's simplicity. Overall, it is complete enough for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It explains `toggle_map_remote` by referencing its default behavior, and `action` is self-evident from the enum. However, `port` is never explained beyond its name; the description doesn't clarify what a port value does, its default meaning when null, or constraints. This is a significant gap given the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb and resource: 'Start, stop or check the local dispatcher that Map Remote routes point to.' This clearly distinguishes it from siblings like charles_status (general status) and mock_* tools (mock content) by narrowing to the dispatcher lifecycle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it explains the dispatcher is short-lived within the MCP server and directs users to the `charles-mcp-dispatcher` command for long-running instances. It does not explicitly contrast with other mock tools, but the alternative for a distinct scenario is given, which is sufficient for routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_getC

Show the content of one active mock.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesBare hostname without scheme or port.
pathYesRequest path starting with `/`, naming a file, e.g. /api/v1/profile. A query string is accepted but ignored by Map Local.
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
mockYes
contentYes
content_truncatedNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. 'Show' implies read-only, but this is not explicit, and there is no mention of side effects, required permissions, or limitations (e.g., only active mocks are accessible). The description adds minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is extremely brief, which is concise in word count, but it is under-specified for a tool with three parameters and no annotations. It front-loads the core purpose but omits crucial context, making it ineffective rather than appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (which covers return values), the description is severely incomplete. It does not explain the purpose of max_chars, any constraints on host/path format, or when to prefer this over sibling tools. An agent with only this description would struggle to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add any parameter-level meaning. The schema covers host and path (67% coverage), but max_chars is left undefined in both the schema description and the tool description. The description fails to clarify how parameters affect the output or behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('show') and resource ('content of one active mock'). It implies a specific fetch operation, distinguishing it from mock_list which likely lists all mocks. However, it does not explicitly mention the identifying parameters (host/path), but the schema covers that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like mock_list or mock_write. It does not mention prerequisites, typical scenarios, or exclusions. The agent is left to infer usage from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_listA

List active mock files, optionally for one host. Archived versions are not listed.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
totalYes
mock_dirYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral disclosure. It adds the useful trait that archived versions are not listed, which prevents an agent from expecting them. However, it does not explicitly state that this is a read-only operation or mention any other side effects, permissions, or rate limits. For a list operation, this is a moderate gap, hence a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action and filter option, and the archived-exclusion note is concise and valuable. Every word earns its place; there is no redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and an output schema, the description covers the key points: what it lists, the filtering capability, and the exclusion of archived versions. The output schema handles return details, so no further explanation is needed. It could be a 5 if it explicitly stated read-only behavior or prerequisites, but it remains sufficiently complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It does so by explaining that the 'host' parameter filters the list to one host. This adds meaning beyond the raw schema (which only shows the type and default), enabling the agent to use the parameter correctly. It could be a 5 if it gave more detail (e.g., exact host format), but it covers the essential semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and a distinct resource ('active mock files'), and explicitly excludes archived versions. This clearly distinguishes it from sibling tools like mock_rule_list (which lists rules) or mock_get (which retrieves a specific mock). The scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it lists active mock files and optionally filters by one host. It does not explicitly mention when to use it instead of other tools (e.g., mock_get for a single mock), but the resource type is distinct enough that an agent can infer appropriate usage. It lacks explicit exclusions or alternatives, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_removeA

Stop mocking one path: the file moves to the archive and requests pass through to the real server again.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesBare hostname without scheme or port.
pathYesRequest path starting with `/`, naming a file, e.g. /api/v1/profile. A query string is accepted but ignored by Map Local.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostYes
pathYes
next_stepYes
archived_toYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description correctly takes on the burden of explaining side effects. It states that the file moves to the archive and that requests pass through to the real server again, which is meaningful behavioral context beyond the tool name. It does not mention permissions or restore options, but the core mutation behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, compact sentence front-loads the action and then gives concrete consequences. It contains no filler and does not repeat schema information, making every word earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple two-parameter tool with fully documented inputs and an output schema present. The description covers the trigger condition, the effect on the mock file, and the runtime effect on requests, which is complete for this operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters fully documented including examples and caveats. The description reinforces that the operation affects a single path, matching the 'path' parameter, but adds no new parameter-level detail. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Stop mocking', and a specific resource, 'one path', then states the consequence. This clearly distinguishes it from related operations like mock_set_enabled or mock_rule_remove even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Stop mocking one path' clearly signals when to use the tool: when a mocked path should no longer be intercepted. It does not explicitly name alternatives, but the pass-through consequence provides enough context for an agent to understand the intended use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_route_setupA

Send a host (or domain glob) through the dispatcher; once per host/domain. One Charles Map Remote mapping (https:// -> local dispatcher, empty destination path, preserve host header) covers every path and action under it; after that, mocks are only data. Unmocked requests pass through unchanged. apply=true writes the mapping into the Charles config; only while Charles is closed, because Charles overwrites its config from memory on quit. This tool never quits or starts Charles: ask the user to save the session and quit Charles, not to reopen it until the write is done, then to start it. apply=false returns manual steps that work in the UI without a restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesHostname or domain glob. Use a glob such as *.example.com when the same API runs on several hosts (dev, stage, ...).
pathNoPath pattern: /* for every path, /api/* for a prefix, or one path./*
portNo
applyNo
verify_tlsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostYes
pathYes
appliedNo
warningsNo
route_fileYes
config_pathNo
instructionsNo
config_backupNo
mapping_addedNo
map_remote_ruleYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly: it discloses config mutation, the Charles overwrite-on-quit risk, that this tool never quits or starts Charles, and that unmocked requests pass through unchanged. This gives an agent the critical side-effect and safety context needed before invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: the mapping mechanism, pass-through behavior, config-write caveat, and exact user workflow are all essential. The most critical warning about Charles being closed is front-loaded, and there is no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a user-interaction workflow and config mutation, the description covers the prerequisites, apply modes, and pass-through behavior well. The missing port/verify_tls semantics and lack of explicit sibling differentiation are the main gaps, but the core workflow is fully described and an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Host and path are already documented in the schema, and the description adds useful routing semantics for them. However, port and verify_tls have no schema descriptions and are never mentioned in the description, so with only 40% schema coverage a significant parameter-meaning gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear operation: send a host/domain glob through the dispatcherorphan via a Charles Map Remote mapping, covering every path and action under that host. The 'once per host/domain' scope makes the resource and purpose specific, though it does not explicitly distinguish itself from the similarly named sibling mock_setup_host.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong operational guidance: use apply=true only while Charles is closed, ask the user to save and quit, and avoid reopening Charles until the write completes. It also explains that apply=false provides manual UI steps without a restart, but it does not explicitly name when to prefer this tool over related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_rule_create_from_entryA

Create or extend the rule for one request variant (method + path + body/query values) from a captured entry. match_body_fields picks the variant, e.g. ["/action"] for POSTs; leave it empty for GETs. host_scope="any" (default) applies the rule on every routed host, since the same API runs on several hosts; "exact" limits it to the entry's host, and host accepts a glob such as .example.com. match_path replaces the entry's exact path with a pattern where * stands for one segment or part of one, for segments that differ by platform or app version: /api//payoneer covers /api/p24-aos2/payoneer and its iOS twin. It must cover the entry's path. mode="patch": the real server answers; request_patches edit the request body, request_headers set (or remove with null) request headers before it is forwarded, response_patches edit only the named response fields. mode="fixture": answer from the captured response with any status (e.g. 500), never contacting the server (request edits are ignored). status overrides the response code in either mode; delay_ms waits that many milliseconds before answering, to test loaders and client timeouts. merge=true adds to the variant's existing rule; a patch on the same pointer replaces the old one. Patches are checked against the captured entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo
modeNopatch
mergeNo
sourceYes
statusNo
rule_idNo
delay_msNo
entry_idYes
priorityNo
capture_idNo
host_scopeNoany
match_pathNo
descriptionNo
recording_pathNo
request_headersNoRequest headers to change before the request is forwarded upstream (patch mode only): {"X-App-Version": "9.9.9", "X-Debug": null}. A value sets or replaces the header; null removes it. Host and Content-Length are managed by the dispatcher and cannot be set.
request_patchesNoJSON Pointer edits: {"op": "set", "path": "/data/balance", "value": 0} or {"op": "remove", "path": "/data/banner"}; "/items/-" appends. Address array elements by a field, not an index, since servers may reorder them: "/data/balanceList/[currency=USD]/balance".
response_patchesNoJSON Pointer edits: {"op": "set", "path": "/data/balance", "value": 0} or {"op": "remove", "path": "/data/banner"}; "/items/-" appends. Address array elements by a field, not an index, since servers may reorder them: "/data/balanceList/[currency=USD]/balance".
match_body_fieldsNoJSON Pointers into the captured request body whose values the rule must match, e.g. ["/action"]. JSON and form bodies are supported.
match_query_fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ruleYes
warningsNo
next_stepYes
rule_jsonYes
fixture_fileNo
archived_previousNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses mode semantics (patch vs fixture), that patch mode contacts the server while fixture uses the captured response, merge behavior (adds to existing rule, replaces on same pointer), host_scope handling, match_path coverage requirement, and that patches are validated against the entry. It does not cover error conditions or side effects beyond 'create or extend', but covers the key runtime behavior well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long (~180 words) but justified for a 19-parameter tool. It front-loads the purpose and then systematically covers parameters. Some sentences, like the match_path example, are dense but add clarity. It could be slightly tightened, but it is well-structured and each sentence contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavior and most key parameters, but leaves several parameters undocumented (priority, description, capture_id, recording_path, match_query_fields) and assumes the agent understands what an 'entry' is and how to obtain entry_id from sibling tools. Given the tool's complexity, an agent might need to consult other tools or schema for full context, but the description is adequate for the primary use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given only 21% schema description coverage, the description compensates by explaining most critical parameters inline: match_body_fields (with example), host_scope (any/exact/host glob), match_path (pattern semantics and example), mode, status, delay_ms, merge, request_patches, response_patches, and request_headers. It adds meaning beyond the schema, though a few parameters (capture_id, recording_path, match_query_fields, priority, description) remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific statement: "Create or extend the rule for one request variant (method + path + body/query values) from a captured entry." It names the verb ('create/extend'), the resource ('rule'), and the precise scope ('one request variant from a captured entry'), making it clearly distinguishable from siblings like mock_create_from_entry, which focuses on a different mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives extensive context on how to use the tool: it explains variant selection via match_body_fields, host_scope options, match_path patterns, mode differences, merge behavior, and status/delay overrides. It doesn't explicitly name alternatives or state 'when not to use', but it implies the use case (creating a rule from a captured entry) and provides enough guidance to select this tool for that purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_rule_getB

Show one rule document and, for fixture rules, the stored fixture.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesRule host: "*" (any routed host), a glob such as *.example.com, or a hostname.
rule_idYes
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fixtureNo
rule_jsonYes
fixture_truncatedNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral burden. It does disclose one meaningful behavior: fixture rules include the stored fixture in the result. However, it does not state that this is a read-only op, what happens for non-fixture rules, or what max_chars trims, leaving the behavioral picture only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states the core action first and appends the conditional caveat. No filler, no redundancy; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no annotations and a low-richness description, the definition is too thin: it offers no help choosing among the many mock_* and mock_rule_* siblings, no clarification of the extra relationship between rule and stored fixture, and no call of max_chars's effect. The output schema spares the need to explain return values, but the selection and param semantics gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description must compensate for rule_id and max_chars semantics — it does not. The description relies on the word 'fixture' to clarify rule_id only by implication and never explains that max_chars constrains the displayed output, leaving parameters substantially under-documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Show one rule document') and adds a valuable distinguishing detail about fixture rules returning the stored fixture. The word 'one' signals a single-item getter against list-style siblings like mock_rule_list, but it never names those alternatives explicitly, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to call this tool instead of mock_rule_list, mock_get, or mock_rule_write. There is no mention of prerequisites such as needing a rule_id, how to obtain one, or when the fixture portion is relevant, so an agent gets no decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_rule_listA

List dispatcher routes and rules, optionally for one host. Invalid rule files are reported in errors and ignored by the dispatcher.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
totalYes
errorsNo
routesNo
mock_dirYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses a notable behavior: invalid rule files are reported in `errors` and ignored by the dispatcher. This is valuable beyond the schema. It does not mention whether the operation is read-only, but 'List' implies a read operation and no mutation is suggested.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The core action and optional filter are front-loaded, and the error-handling behavior is appended in a second concise sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and an output schema, the description covers the key behavioral nuance (invalid rule files reported in errors). It doesn't describe the output structure, but the output schema exists and the description needn't explain return values. Minor gap: no explicit statement that this is a read-only operation, but 'List' makes that clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the `host` parameter's purpose ('optionally for one host'), which adds meaning beyond the bare schema. With only one parameter, this is sufficient; no other parameters need clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('dispatcher routes and rules'), and adds an optional host filter. It is clear enough to distinguish from siblings like mock_rule_get (single rule) and mock_list (generic list), though it doesn't explicitly name a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: call it to list routes/rules, optionally scoped to one host. It does not explicitly state when to prefer this over mock_list or mock_rule_get, nor does it mention any prerequisites. The optional host parameter gives some context but no explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_rule_removeA

Archive one rule (and its fixture); matching requests pass through again.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesRule host: "*" (any routed host), a glob such as *.example.com, or a hostname.
rule_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
hostYes
next_stepYes
archived_toYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the rule is archived (not deleted) and that its fixture is also archived, and that requests will pass through again. This is useful behavioral context. However, with no annotations provided, the description carries the full burden; it does not mention whether the operation is reversible, whether it requires the rule to exist, or what happens to the fixture data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and effect. Every word earns its place; no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values are covered. The description explains the core behavior and effect. However, with no annotations and a mutation-like operation, an agent would benefit from knowing whether archiving is reversible, whether the rule must exist, and how this differs from mock_rule_set_enabled. The description is adequate but not complete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%: the 'host' parameter has a description, but 'rule_id' does not. The description adds context that the rule is archived, but it does not explain how host and rule_id together identify the rule, nor does it clarify the format of rule_id. The description partially compensates but leaves the rule_id parameter under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Archive') and resource ('one rule (and its fixture)'), and clearly explains the effect ('matching requests pass through again'). This distinguishes it from sibling tools like mock_remove and mock_rule_set_enabled, which have different semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: when you want to stop a rule from matching and let requests pass through. However, it does not explicitly contrast with alternatives like mock_rule_set_enabled (which likely disables without archiving) or mock_remove (which may delete permanently). The context is clear but exclusions are not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_rule_set_enabledB

Enable or disable one rule without deleting it.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesRule host: "*" (any routed host), a glob such as *.example.com, or a hostname.
enabledYes
rule_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
fileYes
hostYes
pathYes
methodNo
statusNo
enabledYes
delay_msNo
priorityYes
response_modeYes
body_match_jsonNo
request_patchesNo
response_patchesNo
request_header_editsNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the behavioral burden. It discloses the core side effect—toggling a rule's enabled state without deleting it—but does not mention whether the rule must exist, whether the change persists, or how errors are handled. Basic behavior is disclosed, but deeper effects remain opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the key action and the non-deletion guarantee. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter boolean setter, the description plus schema are nearly sufficient and an output schema exists. Missing usage guidance and behavioral details like persistence and error behavior prevent it from being fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, but the description partially compensates: 'enable or disable' maps to the enabled parameter and 'one rule' maps to rule_id. Host semantics are provided by the schema. This is helpful but still leaves rule_id undocumented beyond minimal inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Enable or disable' targets 'one rule' and adds 'without deleting it' to clarify non-destructive intent. It is clear, though it does not explicitly differentiate from the closely named sibling mock_set_enabled.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus mock_rule_write, mock_rule_remove, or mock_set_enabled. Context is left entirely to inference from the sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_rule_writeA

Write a rule document directly (advanced; prefer mock_rule_create_from_entry). Shape: {"id", "host", "match": {"method", "path", "query", "headers", "body": {"/action": "init"}}, "request": {"patches"}, "response": {"mode": "fixture"|"patch", "status", "headers", "patches"}, "priority", "enabled"}. Fixture rules need fixture_json or fixture_text unless a fixture exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleYes
fixture_jsonNo
fixture_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ruleYes
warningsNo
next_stepYes
rule_jsonYes
fixture_fileNo
archived_previousNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full behavioral load. It correctly states the write (mutation) nature and the key constraint that fixture rules need fixture_json or fixture_text unless a fixture already exists. However, it does not disclose other important behaviors like overwrite semantics, error handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action and alternative preference, followed by the shape and fixture notes. Every sentence adds value, though the shape definition could be slightly more structured, but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the rule structure and fixture requirements, and an output schema exists for return values. It omits edge-case behaviors like whether the write overwrites existing rules, but given the 'advanced' label and the presence of an output schema, it is reasonably complete for an experienced agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and the 'rule' parameter is an unconstrained object (additionalProperties true), so the description is essential. It provides a detailed shape for the rule and explains when fixture_json and fixture_text are needed, significantly compensating for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Write' and the resource 'rule document', and it explicitly recommends the alternative mock_rule_create_from_entry, which differentiates it from that sibling. The term 'directly' hints at a lower-level operation, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the preferred alternative (mock_rule_create_from_entry) and says to prefer it, providing clear 'when-not-to-use' guidance. However, it does not state explicit conditions under which this advanced tool should be chosen, leaving that partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_set_enabledA

Turn the whole Charles Map Local tool on or off. Off means every request goes to real servers; mock files stay on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
enabledYes
messageYes
successYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the side effect of disabling ('every request goes to real servers') and states that mock files are not deleted ('mock files stay on disk'). This is meaningful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with zero filler. The main action is front-loaded, and the clarifying consequence is placed immediately after, making the description easy to scan and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-boolean setter with no annotations and a trivial output schema, the description covers the essential behavior and the parameter meaning. It could slightly improve by explicitly routing to mock_rule_set_enabled for per-rule toggling, but the 'whole tool' phrasing makes that distinction reasonably clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides a boolean 'enabled' with 0% description coverage, so the description must clarify the parameter. It does so by mapping enabled on/off to real behavior: off means bypassing mocks and keeping files. The mapping is clear despite not explicitly saying 'true means enabled.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Turn ... on or off') and a specific resource ('the whole Charles Map Local tool'), and the phrase 'whole' clearly distinguishes it from per-rule tools like mock_rule_set_enabled. An agent immediately knows what this tool controls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use it: to toggle the entire Map Local tool, with the concrete consequence that off sends all requests to real servers while mock files remain on disk. It does not explicitly name alternatives or exclusion criteria, but the global scope is evident from the wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_setup_hostA

One-time setup per host: create the mock directory and the Charles rules (Map Local https:///* -> directory, Rewrite text/plain -> JSON type). After that, mocks are plain files: present = served by Charles, absent = real server. apply=false returns manual steps (UI, no restart); apply=true writes the rules into the Charles config and only works while Charles is closed (Charles overwrites its config on quit). This tool never quits or starts Charles: ask the user to save the session, quit Charles, and start it after the write. A config backup is made first.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesBare hostname without scheme or port.
applyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostYes
appliedNo
host_dirYes
warningsNo
config_pathNo
instructionsNo
config_backupNo
rewrite_addedNo
map_local_ruleYes
map_local_addedNo

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully discloses the tool's side effects: writes rules into Charles config, makes a backup first, and explicitly declares it never quits or starts Charles. It flags the critical constraint that apply=true only works while Charles is closed and explains the user's required manual steps. This is comprehensive behavioral transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: opens with the core purpose, explains the operational model (present/absent files), contrasts the apply modes, then lists side effects and prerequisites. Every sentence adds essential value, and the critical user action is saved for the end without wasting words. It is long but justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Considering the presence of an output schema, the description covers all necessary operational aspects: setup steps, behavioral expectations, prerequisites for apply=true, and post-write actions. There is no obvious missing information an agent would need to safely and correctly invoke this tool. The output schema handles the return details, so the description's completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Overcomes the 50% schema coverage by providing rich context: 'host' is a bare hostname without scheme or port (complementing the schema's examples), and 'apply' is explained in detail—false gives manual steps, true writes to config with the caveat that Charles must be closed. This adds substantial meaning beyond the basic schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('setup') and resource ('host'), precisely describing the one-time initialization action of creating a mock directory and Charles rules for Map Local and Rewrite. Distinguishes itself from siblings like mock_route_setup by emphasizing one-time host-level setup, making the tool's purpose clear and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use: 'One-time setup per host' followed by 'After that, mocks are plain files...' which implies when not to use (only once). Also clearly states the difference between apply=false (manual steps) and apply=true (writes to config) and signals prerequisites (Charles must be closed) and sequence (user must save, quit, then start). This is exceptional guidance for an agent to decide when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mock_writeA

Write a mock response from scratch. Pass body as a JSON value (written pretty-printed) or body_text as raw text, not both. Prefer mock_create_from_entry when a real response exists, so the shape stays valid.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
hostYesBare hostname without scheme or port.
pathYesRequest path starting with `/`, naming a file, e.g. /api/v1/profile. A query string is accepted but ignored by Map Local.
body_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
mockYes
warningsNo
next_stepYes
patches_appliedNo
source_entry_idNo
archived_previousNo

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavior disclosure. It says this writes a mock response but does not state what happens to existing mocks, whether this is a mutating/overwriting operation, or any side effects or destructive consequences. The mutual exclusivity of body/body_text is parameter-level guidance, not behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler. The core action is front-loaded, parameter guidance is crisp (body vs body_text, not both), and the sibling-routing advice is placed last. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write operation with no annotations and only half the params documented in the schema, the description is workable but incomplete. It gives a clear purpose and sibling preference, and an output schema exists so return values are covered, but it omits what happens when used against an existing mock or whether body/body_text may both be omitted. An agent could call this correctly most of the time but may need to inspect surroundings first.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (host, path) and body/body_text have no schema descriptions, so the description must compensate. It clarifies that body is a JSON value, body_text is raw text, and they should not be used together. This is valuable, but it stops short of saying whether one is required or what happens if both are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Write a mock response'), and the qualifier 'from scratch' clearly differentiates it from mock_create_from_entry. Even with many sibling tools, an agent can identify this tool's purpose immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to prefer mock_create_from_entry when a real response exists, telling agents when not to use this tool. It also gives concrete guidance on the body vs body_text choice, so the agent can select parameters correctly without further research.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

peek_live_captureA

Preview incremental traffic without advancing the cursor. Returns compact entry summaries (host/method/path/status only). This peek call does not consume the current increment. Safe to call repeatedly — does not consume items. Use query_live_capture_entries for structured filtering and analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
capture_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
statusYes
warningsNo
truncatedNo
capture_idYes
next_cursorYes
total_new_itemsYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and it does well: it explicitly states the call does not consume messages, is safe to call repeatedly, and returns only compact summaries. That covers the most important behavioral traits an agent needs before invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core behavior and every sentence adds value. It loses a point because the 'does not consume' point is made twice: 'does not consume the current increment' and 'does not consume items'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple peek tool with an output schema, the description covers the core behavior well, but it is not fully complete: it does not explain the meaning of capture_id, limit, or cursor beyond the cursor hint, and it does not state needed prerequisites such as an active capture. These gaps are moderate given the low parameter-level documentation in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain the parameters, but it mostly does not. The only partial light shed is on cursor through the wording 'does not advance the current cursor'; capture_id, limit, and full cursor semantics remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: it previews incremental traffic but does not advance the cursor. It also notes the return type is compact entry summaries, which helps distinguish it from read_live_capture and query_live_capture_entries. The final sentence explicitly routes structured uses to a sibling, reducing ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It directly says to use query_live_capture_entries for structured filtering and analysis, which is a useful when-to-use alternative. The 'does not consume' wording implicitly tells the agent to use this tool when it wants a side-effect-free preview, but it does not explicitly mention when to choose read_live_capture instead, so the when-not boundary is slightly incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_live_capture_entriesA

Analyze the active live capture with structured summary-first filtering. This is the RECOMMENDED tool for inspecting live / ongoing traffic. Prefer this over query_recorded_traffic / analyze_recorded_traffic unless the user explicitly names a saved recording (.chlsj). Use this summary path before calling get_traffic_entry_detail. 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.

Pass since_seconds=N to look only at traffic captured in the last N seconds (relative to "now" at query time). This is the preferred shortcut when the user asks for "just now / recent" traffic and removes the need to thread the cursor through follow-up calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNo
presetNoapi_focus
max_itemsNo
method_inNo
status_inNo
capture_idYes
scan_limitNo
host_containsNo
path_containsNo
since_secondsNo
max_preview_charsNo
resource_class_inNo
min_priority_scoreNo
request_json_queryNo
request_header_nameNo
response_json_queryNo
include_body_previewNo
max_headers_per_sideNo
request_content_typeNo
response_header_nameNo
request_body_containsNo
response_content_typeNo
response_body_containsNo
request_header_value_containsNo
response_header_value_containsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
sourceYes
warningsNo
truncatedNo
next_cursorNo
total_itemsNo
matched_countNo
scanned_countNo
filtered_out_countNo
filtered_out_by_classNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden and does so well: it states the tool does NOT advance the cursor, is safe to call repeatedly, defaults cursor=0 to scan from the beginning, and defines since_seconds as relative to query time. It does not cover every possible behavioral nuance, but the non-mutating, stateless nature is clearly conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but earns its length by front-loading the recommended usage and providing routing and cursor semantics. The get_traffic_entry_detail pointer appears twice in slightly different forms, which is a minor redundancy. Overall it remains well-structured and readable for the complexity involved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers tool selection, cursor safety, and the recent-traffic shortcut, which is enough for basic correct use. However, with 25 parameters, no annotations, and no parameter-level descriptions in the schema, the high-level guidance is not sufficient for an agent to confidently use advanced filters or presets. An output schema exists, but that does not compensate for the underdocumented input semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it only explains cursor and since_seconds. The remaining 23 parameters, including preset, scan_limit, max_items, min_priority_score, and the JSON query filters, are left to be inferred from their names and enum values. This is a significant gap for a 25-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Analyze') and resource ('active live capture'), and explicitly frames the tool as the recommended way to inspect live/ongoing traffic. It clearly distinguishes itself from query_recorded_traffic and analyze_recorded_traffic, and positions itself as a summary layer before get_traffic_entry_detail. An agent can confidently tell what this tool is for and how it differs from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: prefer this for live/ongoing traffic, use recorded-analysis tools only when the user names a saved .chlsj recording. It also instructs to call this summary path before get_traffic_entry_detail, and recommends since_seconds for 'just now / recent' queries. This is exemplary routing guidance with named alternatives and conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_recorded_trafficA

Query the latest saved recording. This tool never reads the live Charles session. HISTORY-PLANE TOOL — only use when the user explicitly references a saved recording (.chlsj file). For ongoing / live traffic, prefer start_live_capture + query_live_capture_entries instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
http_methodNoFilter by HTTP method. Only standard HTTP methods are allowed. It must be a method name, not a regular expression or a path.
keep_requestNo
host_containsNoFilter by host substring. Example: api.example.com
keep_responseNo
keyword_regexNoPython regular expression searched in request and response content. Keep it short to avoid catastrophic backtracking.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNo
itemsYes
sourceYes
warningsNo
truncatedNo
total_itemsYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It clearly discloses the key non-obvious trait: this tool never reads the live Charles session, only saved recordings. This is exactly the kind of safety-relevant behavior an agent needs. It does not describe failure modes or edge cases, but for a read-only query tool the most critical behavior is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core action comes first, followed by the critical scope limitation, the usage condition, and the alternative tool. Every sentence earns its place with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a filtered read tool with an output schema, the description covers the essential invocation context: what it targets, when to use it, and what to use instead. The main gap is the unexplained boolean parameters, but that is already penalized under parameter semantics, and the output schema relieves the description of return-format duties.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 60% of parameters, but keep_request and keep_response are left with only titles and defaults, and the description adds no parameter-level guidance. An agent cannot tell what these booleans control or how they affect query output without additional inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "Query the latest saved recording." It explicitly labels the tool as HISTORY-PLANE and distinguishes it from live-traffic tools, so an agent can separate it from siblings like query_live_capture_entries without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit condition: only use when the user references a saved recording (.chlsj file), and names the preferred alternative for live traffic (start_live_capture + query_live_capture_entries). This is direct, actionable routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_live_captureA

Read incremental traffic and advance the cursor. Returns compact entry summaries (host/method/path/status only). This read call consumes the current increment. Use query_live_capture_entries for structured filtering instead of this tool. This tool advances the internal cursor — repeated calls only return new items.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
capture_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
statusYes
warningsNo
truncatedNo
capture_idYes
next_cursorYes
total_new_itemsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the consuming/advancing behavior, which is a key side effect, and the compact return format. It doesn't mention pagination limits or error conditions, but the core behavioral trait is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each earning its place: what it does, what it returns, when to use an alternative, and the cursor side effect. Front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description covers the essential behavior and side effects. It could mention the limit parameter's default or the meaning of a null cursor, but the core usage is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the cursor parameter's role (advancing cursor) and the limit's effect implicitly, but doesn't detail capture_id or the exact format of the cursor. The description adds some meaning beyond the schema but not full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads incremental traffic and advances a cursor, with a specific verb ('Read') and resource ('live capture'). It also distinguishes itself from the sibling query_live_capture_entries by noting it returns compact summaries and consumes the increment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use query_live_capture_entries for structured filtering instead, and explains the cursor behavior (repeated calls only return new items). This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reset_environmentB

Reset the Charles environment and restore the saved configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a destructive-then-restorative pattern ('Reset... and restore'), implying state reversion rather than clearing to factory defaults. However, it fails to specify what exactly gets reset (active captures? settings? sessions?) or whether unsaved work is permanently destroyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of a single, efficient sentence that frontloads the action verb 'Reset' and immediately qualifies the scope with 'restore the saved configuration.' Every word contributes to understanding the tool's dual-phase behavior without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description identifies the general operation, it lacks critical context for a state-resetting tool: it does not specify the scope of the reset, the source of the 'saved configuration,' or warn about destructive side effects. The existence of an output schema reduces the burden to explain return values, but the operational impact remains under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema contains zero parameters, establishing a baseline score of 4 per evaluation rules. The description appropriately does not invent parameter semantics where none exist in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Reset' and 'restore') with the resource 'Charles environment' and distinguishes this state-management tool from traffic-analysis siblings like 'analyze_recorded_traffic' or 'query_live_capture_entries'. However, it assumes familiarity with what constitutes the 'Charles environment' without defining its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no indication of when to invoke this tool versus alternatives, nor does it warn about potential data loss from resetting active sessions. There is no mention of prerequisites (e.g., whether a configuration must be saved first) or safe usage patterns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_analyze_live_api_flowC

Run a task-oriented live API reverse-analysis workflow on new traffic. Read summary/report first and expand evidence only as needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
advanceNo
run_replayNo
message_typeNo
decode_bodiesNo
host_containsNo
path_keywordsNo
descriptor_pathNo
live_session_idYes
snapshot_formatNoSupported live snapshot export formats: `xml` or `native`.xml
replay_use_proxyNo
replay_json_overridesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing side effects and operational traits. It mentions running a workflow but does not disclose that it may replay traffic (based on parameters like run_replay, replay_use_proxy) or any state changes. The description is too sparse to inform an agent of potential impacts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences, but it is under-specified for a tool with 12 parameters and a complex workflow. It front-loads the action but omits necessary context, making it too short to be considered appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 12 parameters, an output schema, and no annotations, the description is grossly incomplete. It does not explain what the workflow entails, what the summary/report contains, or how parameters influence behavior. The presence of an output schema does not compensate for the lack of operational guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 8% (only snapshot_format has a description). The description adds no information about any of the 12 parameters, such as limit, advance, run_replay, or path_keywords. It fails to compensate for the low schema coverage, leaving parameter meanings entirely to the agent's inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb ('Run') and a resource ('task-oriented live API reverse-analysis workflow'), but 'task-oriented' is vague and does not specify what the task is. It also does not differentiate from sibling tools like reverse_analyze_live_login_flow or reverse_analyze_live_signature_flow, leaving ambiguity about its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The instruction 'Read summary/report first and expand evidence only as needed' gives a workflow hint but does not explain when to choose this tool over alternatives. No exclusions or alternative references are provided, so an agent cannot decide between this and similar analysis tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_analyze_live_login_flowB

Run a task-oriented live login/auth reverse-analysis workflow on new traffic. Read summary/report first and expand evidence only as needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
advanceNo
run_replayNo
message_typeNo
decode_bodiesNo
host_containsNo
path_keywordsNo
descriptor_pathNo
live_session_idYes
snapshot_formatNoSupported live snapshot export formats: `xml` or `native`.xml
replay_use_proxyNo
replay_json_overridesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It mentions a workflow and evidence expansion but does not state whether the operation is read-only, can affect live traffic, what it returns, or any side effects like replay or proxy usage. The behavior remains opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The purpose is front-loaded, and the usage hint is immediately actionable. It is efficient and well-structured, earning top marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 12 parameters, no annotations, and minimal schema descriptions, the description is severely incomplete. It lacks explanation of the workflow, expected inputs, outputs, or limitations, making it inadequate for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 8% (only snapshot_format has a description). The description does not elaborate on any of the 12 parameters, such as live_session_id, limit, advance, or run_replay. It adds no meaning beyond the schema, leaving agents without guidance on how to fill them correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs a 'task-oriented live login/auth reverse-analysis workflow', specifying a specific verb (run), resource (live login/auth reverse-analysis workflow), and scope (new traffic). This distinguishes it from sibling tools like reverse_analyze_live_api_flow and reverse_analyze_live_signature_flow by focusing on login/auth.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a usage hint ('Read summary/report first and expand evidence only as needed') but does not explicitly state when to use this tool over alternatives like reverse_analyze_live_api_flow. The login/auth focus is implied but not contrasted with siblings, leaving selection criteria ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_analyze_live_signature_flowC

Run a task-oriented live signature reverse-analysis workflow on new traffic. Read summary/report first and expand evidence only as needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
advanceNo
run_replayNo
message_typeNo
decode_bodiesNo
host_containsNo
path_keywordsNo
descriptor_pathNo
live_session_idYes
signature_hintsNo
snapshot_formatNoSupported live snapshot export formats: `xml` or `native`.xml
replay_use_proxyNo
replay_json_overridesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only hints at a summary/report workflow and expanding evidence, but doesn't disclose side effects, safety, or how the workflow processes traffic. It's minimal and insufficient for an analysis tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff, front-loading the purpose and giving a usage hint. It's structurally sound and concise, though extremely brief for a 13-parameter tool. It earns points for efficiency, not completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 params, no annotations, low schema coverage), the description is severely incomplete. It doesn't explain the workflow, parameter meanings, or when to use it, making it inadequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 8%, so the description must compensate for 12 undocumented parameters. It provides no explanation of any parameters, leaving the agent to infer from names like 'limit', 'advance', 'run_replay', etc. This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it runs a task-oriented live signature reverse-analysis workflow on new traffic, providing a verb and resource. It hints at a focus on signatures, which somewhat differentiates it from login/api flows, but it doesn't specify what the workflow does, what a signature is, or what the output is. The purpose is clear in a general sense but lacks precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is 'Read summary/report first and expand evidence only as needed,' which is about how to handle output, not when to choose this tool over siblings. No mention of alternatives like reverse_analyze_live_login_flow or conditions for selecting this workflow over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_charles_recording_statusC

Inspect Charles recording state and optional reverse live-session state.

ParametersJSON Schema
NameRequiredDescriptionDefault
live_session_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It says 'Inspect' which implies a read-only operation, but it does not disclose what the returned status contains, whether the optional live_session_id changes the response shape, or whether any side effects occur. The description adds minimal behavioral context beyond the verb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the primary purpose and appends the optional scope. No wasted words, though it could have used the space to add parameter semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the return value shape is covered elsewhere, but the description still lacks guidance on when to pass live_session_id, how this differs from charles_status, and what 'reverse live-session state' means. For a status-inspection tool with no annotations and one undocumented parameter, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented live_session_id parameter. The description mentions 'optional reverse live-session state' which loosely maps to the parameter, but it does not explain what values are valid, what the parameter controls, or how omitting it changes behavior. This is insufficient for a parameter with zero schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Inspect') and resource ('Charles recording state'), and adds 'optional reverse live-session state' to distinguish it from the plain charles_status sibling. It is clear but does not explicitly name the sibling it differs from, so it loses one point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the inspection counterpart to charles_status and the reverse_* live-session tools, but it does not explicitly say when to use this tool versus charles_status or reverse_peek_live_entries. The optional live_session_id hints at a conditional use case, but no explicit when/when-not guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_decode_entry_bodyC

Decode a stored request/response body, including protobuf when a descriptor is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
entry_idYes
message_typeNo
descriptor_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It says 'Decode' but does not mention any potential side effects, required permissions, error behavior, or limitations on input size/format. The protobuf note is a start but insufficient for a tool that could fail if parameters are inconsistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise and front-loaded with the core action. However, it is under-specified to the point of being terse, sacrificing helpfulness for brevity. While there is no wasted text, the minimalism reduces its value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters (2 required) and an output schema, yet the description explains almost nothing about required inputs like 'entry_id' and 'side' or the expected output. Even though an output schema exists, parameter semantics are so poorly covered that the description is incomplete for a tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the four parameters. It only hints at 'descriptor' for protobuf, but does not explain the purpose of 'entry_id', 'side', 'message_type', or 'descriptor_path'. The agent has no meaningful guidance on what each parameter expects, making correct invocation unlikely without opening the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Decode' and the resource 'stored request/response body', which is specific and distinguishes it from sibling tools like 'reverse_get_entry_detail' that retrieve entries. It also mentions protobuf support, adding a relevant capability. It could be more explicit about what 'body' refers to, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a conditional hint ('when a descriptor is provided') for protobuf decoding but provides no explicit guidance on when to use this tool versus alternatives. There is no mention of when not to use it or which sibling tools might be more appropriate for similar tasks, leaving the agent to infer the use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_discover_signature_candidatesC

Compare multiple requests and rank fields that look signature-related.

ParametersJSON Schema
NameRequiredDescriptionDefault
entry_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a read-only analysis operation (compare, rank), but it does not explicitly state that it has no side effects, nor does it mention any limitations, performance considerations, or input requirements. The description leaves the agent uncertain about whether this tool mutates state or has other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action and goal. It is appropriately sized for the tool's simplicity, though it could be slightly expanded to include usage context without becoming verbose. No wasted words, but it omits useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values are covered. However, the description does not clarify what entry_ids refer to (e.g., from a capture session) or what constitutes 'multiple requests'. It provides a basic understanding but lacks sufficient context for an agent to call it correctly without additional information, such as where the entry IDs come from or any prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage for the sole parameter, entry_ids. The description only hints that these represent 'multiple requests' but does not explain what they are, their expected format, or any constraints. It adds minimal value beyond the parameter name, leaving the agent with insufficient guidance on how to populate the argument.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('compare' and 'rank') on a specific resource ('multiple requests') with a clear goal ('fields that look signature-related'). It clearly conveys the tool's purpose, though it does not explicitly distinguish it from similar analysis tools like reverse_analyze_live_signature_flow. The purpose is understandable but could be sharper in differentiating from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have multiple requests and want to identify signature fields, but it offers no explicit when-to-use guidance, no exclusions, and no mention of alternatives. An agent must infer the usage context from the tool name and sibling tools, which is insufficient for confident tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_get_entry_detailA

Get the canonical detail view for one imported entry. Use after candidate selection; this is not a bulk-browsing endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
entry_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It adds a useful prerequisite and clarifies single-entry scope, but it never explicitly states whether this is a read-only operation or whether any state is affected; the 'get' wording implies it but does not confirm it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the core purpose first and the usage constraint second. There is no filler or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter detail getter with an output schema, the description supplies the prerequisite and the non-bulk scope; nothing else is needed to invoke it correctly. The 'imported entry' phrasing also separates it from traffic/live-entry tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description never mentions entry_id by name, format, or expected source. 'One imported entry' and 'candidate selection' imply the ID identifies a previously imported candidate, but this is too indirect to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a specific resource ('canonical detail view for one imported entry'), and explicitly scopes it to a single entry rather than bulk browsing. This clearly separates it from list-style siblings like reverse_query_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use after candidate selection' gives a clear trigger condition, and 'this is not a bulk-browsing endpoint' gives an explicit exclusion. It stops short of naming a specific alternative tool for bulk browsing, so the routing is strong but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_import_sessionC

Import an official Charles XML/native session into the canonical reverse-analysis store.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
source_kindNohistory_import
source_formatNoxml

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Import', implying mutation, but does not describe what happens to existing data, whether the operation is idempotent, authentication requirements, or any side effects. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is concise, though it lacks any structured breakdown or clarification of key aspects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that imports data and has three parameters (one required) plus an output schema, the description is too sparse. It does not explain the output, the meaning of parameters, or any behavioral context. Given no annotations, completeness is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters. It only hints at the format (XML vs native) but does not explain the 'path' parameter or the meaning of 'source_kind'. The defaults are left unexplained, and the agent cannot infer parameter usage from the given text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Import') and resource ('official Charles XML/native session') and names the target store ('canonical reverse-analysis store'). It clearly states what the tool does, but it does not differentiate from sibling tools or name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. There is no mention of use cases, exclusions, or conditions under which this tool is preferred over other reverse-* or import-like tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_list_capturesB

List imported captures from the local SQLite store.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'List imported captures' but does not disclose whether this is a read-only operation, whether it affects state, what the output format is, or any side effects. For a tool that lists data, the lack of explicit read-only confirmation and return format details is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. It is appropriately sized for a simple list tool, with no wasted words. It could add a bit more context about the limit parameter or return format, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no nested objects, output schema exists), the description is mostly adequate. However, it lacks explicit behavioral context (e.g., read-only nature, ordering, or what 'imported captures' means in contrast to other capture types). The output schema exists, so return values are covered, but the description could better clarify the scope of 'imported captures'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The description does not mention the 'limit' parameter at all, but the parameter is simple (an integer with a default of 20) and its meaning is fairly inferable from the name 'limit'. The description adds no explicit meaning beyond the schema, so a baseline of 3 is appropriate given the simplicity of the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('imported captures from the local SQLite store'), which clearly identifies the tool's function. It distinguishes itself from siblings like reverse_query_entries or list_recordings by specifying 'imported captures' and 'local SQLite store', though it doesn't explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it lists imported captures from the local SQLite store, which suggests it is for reviewing previously imported data. However, it does not explicitly state when to use this tool versus alternatives like reverse_query_entries or list_recordings, nor does it provide exclusions or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_list_findingsC

List persisted findings from replay or signature-candidate analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
subject_idNo
subject_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it only adds that findings are 'persisted' and that the operation is a list. It does not disclose filtering behavior, pagination, ordering, state expectations, or whether live analysis results are included. Some useful context is present, but it is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action, containing no filler. However, it is under-sized for a tool with two undocumented parameters and no annotations, so brevity comes at the cost of useful operational detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too sparse to fully support correct invocation: it does not explain what a 'finding' is, how subject_id and subject_type alter the result, or how this tool relates to the replay and signature-candidate sibling tools. The output schema may cover return structure, but the invocation contract is still under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema exposes subject_id and subject_type with no descriptions, and the tool description does not mention either parameter. An agent cannot infer how these parameters filter findings, what values are valid, or whether they are required. This is a significant gap given 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('List') and resource ('persisted findings'), and scopes the tool to 'replay or signature-candidate analysis.' This makes the tool's place in the family reasonably clear, though it does not explicitly distinguish it from other analysis-related list/query siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from replay or signature-candidate analysis' implies this is the read-back step after those analyses have run, but there is no explicit when-to-use or when-not-to-use guidance. The large sibling list includes several analysis and query tools, and the description does not route the agent between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_peek_live_entriesC

Snapshot the current Charles session and inspect only new entries without advancing the live cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
method_inNo
status_inNo
host_containsNo
path_containsNo
live_session_idYes
snapshot_formatNoSupported live snapshot export formats: `xml` or `native`.xml

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the key behavior (snapshot, inspect new entries, no advance) but omits important details: whether it requires an active capture, how 'new' is defined, what happens to the live cursor (explicitly no advance, but no mention of side effects like locking), or whether it consumes resources. It does not contradict annotations (none exist), but transparency is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key purpose and behavior. No unnecessary words, but it could have been two sentences to add usage guidance without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, live session context, output schema), the description is inadequate. It does not state prerequisites (e.g., must start capture first), clarify the meaning of 'new' entries, or note that all filters are optional. The output schema exists but the description doesn't explain how to interpret the snapshot format, so agents may misuse filters or misinterpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, so the description must compensate for undocumented parameters. The description only covers the core 'live_session_id' implicitly and the non-advancing behavior, but does not explain filters (method_in, status_in, etc.) or the 'snapshot_format' meaning beyond the enum. No parameter semantics are added by the description; it leaves most parameters to schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Snapshot'), a specific resource ('Charles session'), and a distinct behavior ('inspect only new entries without advancing the live cursor'). It clearly distinguishes itself from siblings like 'read_live_entries' by emphasizing non-advancing inspection, which is strong but not fully exhaustive (e.g., doesn't mention whether it filters by session).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case (peeking at new entries without consuming them) but does not explicitly state when to use this versus alternatives like 'query_live_capture_entries' or 'peek_live_capture'. No when-not-to-use guidance is provided, but the non-advancing behavior is a clear contextual hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_query_entriesB

Query imported entries using route-level filters. Use this as the summary-first narrowing step for a reverse capture_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
method_inNo
status_inNo
capture_idYes
host_containsNo
path_containsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It signals a read-only query operation and the 'summary-first narrowing' hint implies it returns a summary-level view, which is useful. However, it does not disclose pagination behavior, ordering, limits, or any caveats beyond what the name and schema imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the core purpose is front-loaded. Every word adds value, and the usage note is immediately actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no parameter documentation, no annotations, and only a terse usage hint, the description is too thin for an agent to confidently invoke this tool with the correct filters. The output schema exists and covers return values somewhat, but the input-side ambiguity remains significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not enumerate or explain host_contains, path_contains, method_in, status_in, limit, offset, or the meaning of capture_id beyond the phrase 'a reverse capture_id'. 'Route-level filters' is too generic to compensate for the complete lack of per-parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Query imported entries using route-level filters', which gives a specific verb, resource, and a distinguishing scope: imported entries rather than live captures. It also calls out 'summary-first narrowing', which suggests its role in a larger reverse-workflow. It does not explicitly contrast with sibling tools, but the 'imported' qualifier separates it from live-entry tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this as the summary-first narrowing step for a reverse capture_id' is an explicit usage directive that tells the agent when this tool fits into the workflow. It lacks explicit exclusions or named alternatives, so it does not earn a 5, but the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_read_live_entriesC

Snapshot the current Charles session and advance the live cursor to consume new entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
method_inNo
status_inNo
host_containsNo
path_containsNo
live_session_idYes
snapshot_formatNoSupported live snapshot export formats: `xml` or `native`.xml

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It mentions snapshotting and advancing the cursor, which implies side effects, but does not state whether entries are returned, whether the operation is destructive, or what happens to the cursor after calling. The output schema exists but the description does not reference it or clarify the return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary actions (snapshot and advance). It is efficient with no wasted words, though it could benefit from a second sentence about parameters or behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no annotations, and an output schema, the description is incomplete. It does not explain the meaning of 'live cursor' or how 'consume new entries' relates to the output, nor does it mention that filters apply. An agent cannot fully understand the tool's behavior or invocation context from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% (only snapshot_format has a description). The tool description does not explain any parameters, such as filters like method_in, status_in, host_contains, path_contains, or the meaning of limit. It adds no value beyond the parameter names themselves, which is insufficient given the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: snapshot the Charles session and advance the live cursor to consume new entries. It clearly distinguishes from reverse_peek_live_entries which likely peeks without consuming, and from other read tools. It does not mention filtering parameters but the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It does not mention that this should be used instead of reverse_peek_live_entries when the cursor needs to advance, nor any conditions for using filters or snapshot_format. The user must infer usage from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_replay_entryC

Replay one imported entry with optional mutations and store the experiment result.

ParametersJSON Schema
NameRequiredDescriptionDefault
entry_idYes
use_proxyNo
form_overridesNo
json_overridesNo
query_overridesNo
follow_redirectsNo
header_overridesNo
body_text_overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'store the experiment result' as a persistence side effect, which is useful, but it does not disclose that replaying likely involves outbound network requests, potential proxy usage, redirect handling, or other state-changing effects. The description is too sparse to convey meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no fluff, but it is under-specified rather than concise. It fails to earn its brevity because it omits critical usage and behavioral information. A concise but complete description would still be tight while providing more signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity—8 parameters, no annotation coverage, and an output schema—the description is severely incomplete. Agent cannot determine what entry_id refers to, how mutations are applied, or the meaning of proxy and redirect options. The output schema may document return values, but the invocation context is largely missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining at least the core parameters. It only says 'optional mutations', which vaguely hints at the various override parameters but does not explain entry_id, use_proxy, follow_redirects, or the distinctions among form, json, query, header, and body overrides. This is entirely inadequate for an 8-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Replay'), a resource ('one imported entry'), and a side effect ('store the experiment result'), making the core purpose clear. It does not explicitly name sibling alternatives, but the action of replaying with mutations is distinctive enough among the listed reverse_* and mock_* siblings. A higher score would require explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as reverse_import_session or reverse_query_entries. It only states what the tool does; the context of replaying a single imported entry is implied but not stated as a recommendation. There are no exclusions, prerequisites, or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_start_live_analysisB

Start a near-real-time live analysis session without using undocumented JSON export. Preserve and reuse live_session_id for follow-up reverse live tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
reset_sessionNo
snapshot_formatNoSupported live snapshot export formats: `xml` or `native`.xml
start_recording_if_stoppedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It discloses that the tool returns a live_session_id that must be preserved, and that it avoids undocumented JSON export. However, it does not explain side effects like what happens when reset_session is true or how start_recording_if_stopped behaves beyond defaults. The description gives minimal behavioral context, leaving important behaviors untold.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The core purpose is front-loaded, and the crucial note about preserving live_session_id is placed second. Every sentence earns its place; it is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential action and the critical output (live_session_id). It mentions the relationship to follow-up reverse live tools, which helps an agent understand the workflow. However, it omits prerequisites (e.g., whether a recording must exist), potential error conditions, and how the parameters affect the session. The output schema exists, so return format is presumably defined, but the description alone is not fully complete for an agent to confidently call this tool without further research.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only snapshot_format has a description). The tool description adds no explanation for reset_session or start_recording_if_stopped. The names are somewhat self-explanatory, but the description does not clarify their behavior or how they interact with the session. With low schema coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Start a near-real-time live analysis session.' It also provides a differentiator by mentioning 'without using undocumented JSON export,' which hints at an alternative approach. However, it does not explicitly name sibling tools like start_live_capture, so there is some ambiguity about when to choose this over that. Still, the verb-resource pair is specific and distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when you want live analysis and want to avoid undocumented JSON export) and instructs to preserve the live_session_id for follow-up tools. It does not explicitly state when not to use it or name alternative tools, so the guidance is implied rather than explicit. The mention of follow-up reverse live tools provides context but not exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_stop_live_analysisB

Stop a reverse live-analysis session and optionally restore Charles recording.

ParametersJSON Schema
NameRequiredDescriptionDefault
live_session_idYes
restore_recordingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. It states that the session is stopped and recording may be restored, but it does not disclose side effects such as whether session data is discarded, whether the action is reversible, whether an active session is required, or what happens to in-flight captures. This is too thin for a mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the primary action ('Stop a reverse live-analysis session') and then mentions the optional restore behavior. Every word contributes meaning, with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, 0% schema description coverage, and only a short one-sentence description, the agent is underinformed about side effects and prerequisites for what is likely a state-changing operation. The presence of an output schema covers return-value details, and the tool is relatively simple, so this is minimally viable but still leaves behavioral questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps the live_session_id parameter to the 'live-analysis session' concept and the restore_recording parameter to 'restore Charles recording,' adding some meaning beyond the raw schema. However, it does not explain the session ID format, how to obtain it, or what exactly restoring recording entails when false, leaving important gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the explicit verb 'Stop' with a specific object, 'reverse live-analysis session,' and mentions the optional 'restore Charles recording' action. This makes it clear which operation is performed and differentiates it from reverse_start_live_analysis and other reverse-family tools, though it does not explicitly distinguish itself from stop_live_capture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The verb 'Stop' implies this tool is for ending a reverse live-analysis session, likely one started by reverse_start_live_analysis. However, the description gives no explicit when-to-use guidance, no exclusions, and does not mention alternatives such as stop_live_capture for non-reverse sessions, leaving the routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_live_captureA

Start or adopt a live capture session for incremental polling. PREFER THIS TOOL when the user wants to inspect ongoing / just-now traffic. This is the default entry point for live-plane analysis; do NOT default to list_recordings or query_recorded_traffic unless the user explicitly names a saved recording (.chlsj).

DEFAULT BEHAVIOR (safe): adopts the user's ongoing Charles session WITHOUT clearing the traffic that is already there, and ensures Charles is recording (start_recording is idempotent). The capture always includes the traffic recorded before this call, so query and read tools see the whole session: the first read_live_capture returns the existing entries, later reads return only new ones.

Pass reset_session=true ONLY when the user explicitly asks to clear / wipe the current Charles session before starting a fresh capture (e.g. debugging a single isolated flow). Reset is destructive and cannot be undone by this server.

Returns a capture_id required by all other live tools. Preserve and reuse capture_id across follow-up live calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
reset_sessionNo
adopt_existingNo
start_recording_if_stoppedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
managedYes
warningsNo
capture_idYes
include_existingYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses that the safe default adopts the existing session without clearing traffic, that start_recording is idempotent, that prior traffic remains visible, that reset is destructive and irreversible, and that a capture_id is returned. This is unusually transparent for a mutating-capable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with clear sections and front-loads the core purpose and usage preference. While long, every sentence adds operational value: defaults, exclusions, destructive caveats, and return-value requirements are all covered without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations, the presence of an output schema, and three optional boolean parameters, the description is complete enough for an agent to invoke this tool correctly. It covers safe defaults, destructive alternatives, incremental read behavior, and the capture_id contract with follow-up tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the three boolean parameters. It does explain reset_session as destructive and alludes to start_recording_if_stopped through idempotent recording behavior, but it never explicitly defines adopt_existing=false semantics, leaving one parameter under-explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly says 'Start or adopt a live capture session for incremental polling' and further clarifies it is the default entry point for live-plane analysis. It clearly distinguishes from saved-recording tools like list_recordings and query_recorded_traffic by naming them as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states exactly when to prefer this tool ('when the user wants to inspect ongoing / just-now traffic') and explicitly warns against defaulting to saved-recording tools unless a .chlsj file is named. It also gives precise conditions for using reset_session=true, tied to explicit user requests to clear/wipe the session.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_live_captureA

Stop an active live capture and optionally persist the filtered snapshot. Only status='stopped' means the capture is fully closed.

ParametersJSON Schema
NameRequiredDescriptionDefault
persistNo
capture_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
statusYes
warningsNo
capture_idYes
recoverableNo
total_itemsYes
persisted_pathNo
active_capture_preservedNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It adds valuable context about the persistence option and status verification, but fails to disclose mutation characteristics, idempotency concerns, or what occurs when persist=false (e.g., data loss risks).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey the core action, optional persistence behavior, and critical status-checking guidance without redundancy. Every sentence earns its place and critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (reducing the need to describe return values) and a simple 2-parameter structure, the description covers the primary behavioral concerns. However, gaps remain in parameter documentation and explicit state transition prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, requiring the description to compensate. It implicitly references the 'persist' parameter via 'optionally persist' but provides no semantics for 'capture_id' (what format, where to obtain it). Partial compensation warrants a below-average score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Stop an active live capture') and resource, distinguishing it from siblings like start_live_capture, peek_live_capture, and read_live_capture. The mention of 'filtered snapshot' adds specific context about what is being handled.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying 'active' live capture and provides a validation hint ('Only status='stopped' means the capture is fully closed'), but lacks explicit guidance on when to use this versus peek_live_capture or read_live_capture, and omits prerequisites like requiring an active capture_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

throttlingB

Set a network throttling preset in Charles.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYesNetwork throttling preset name. Allowed values: 3G/4G/5G/fibre/100mbps/56k/256k/deactivate/off/on/start.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the action 'Set a network throttling preset' without explaining whether the change applies immediately, affects ongoing captures, is reversible, or what side effects 'on'/'start' versus 'off'/'deactivate' have.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the action and resource, making it appropriately sized for a one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema fully documents the only parameter, so the description is minimally sufficient. However, it omits behavioral context such as whether the preset applies globally, how it interacts with active captures, or what 'on' versus 'start' means, leaving some ambiguity for an agent invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is fully documented with an enum and a descriptive title. The description adds no parameter semantics beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Set a network throttling preset in Charles.' It clearly identifies the tool's unique function among siblings, none of which relate to throttling, so an agent can distinguish it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives, no prerequisites, and no mention of conditions like 'use only when Charles is running' or 'use deactivate to reset.' The purpose implies usage, but the description does not provide additional routing or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 47 tool updatesv0.1.0
    • First observedanalyze_recorded_traffic
    • First observedcharles_status
    • First observedget_capture_analysis_stats
    • First observedget_recording_snapshot
    • First observedget_traffic_entry_detail
    • First observedgroup_capture_analysis
    • First observedlist_recordings
    • First observedmock_create_from_entry
    • First observedmock_discover_variants
    • First observedmock_dispatcher
    • First observedmock_get
    • First observedmock_list
    • First observedmock_remove
    • First observedmock_route_setup
    • First observedmock_rule_create_from_entry
    • First observedmock_rule_get
    • First observedmock_rule_list
    • First observedmock_rule_remove
    • First observedmock_rule_set_enabled
    • First observedmock_rule_write
    • First observedmock_set_enabled
    • First observedmock_setup_host
    • First observedmock_write
    • First observedpeek_live_capture
    • First observedquery_live_capture_entries
    • First observedquery_recorded_traffic
    • First observedread_live_capture
    • First observedreset_environment
    • First observedreverse_analyze_live_api_flow
    • First observedreverse_analyze_live_login_flow
    • First observedreverse_analyze_live_signature_flow
    • First observedreverse_charles_recording_status
    • First observedreverse_decode_entry_body
    • First observedreverse_discover_signature_candidates
    • First observedreverse_get_entry_detail
    • First observedreverse_import_session
    • First observedreverse_list_captures
    • First observedreverse_list_findings
    • First observedreverse_peek_live_entries
    • First observedreverse_query_entries
    • First observedreverse_read_live_entries
    • First observedreverse_replay_entry
    • First observedreverse_start_live_analysis
    • First observedreverse_stop_live_analysis
    • First observedstart_live_capture
    • First observedstop_live_capture
    • First observedthrottling

TDQS

B3.1/5.0

Scored across 47 tools

Disambiguation3/5

Many tools have intentionally duplicated surfaces across live/history/reverse planes (read_live_capture vs reverse_read_live_entries, query_recorded_traffic vs analyze_recorded_traffic vs reverse_query_entries, mock_* vs mock_rule_*), and descriptions carry most of the burden. Prefixes like mock_ and reverse_ help, but an agent could easily select the wrong capture/read/query variant without reading deeply.

Naming Consistency4/5

Most tools follow a consistent [domain]_[verb]_[object] pattern (start_live_capture, mock_get, reverse_replay_entry), and the mock_/reverse_ prefixes make families recognizable. Minor deviations like throttling, reset_environment, charles_status, and mock_dispatcher break the verb-first pattern but do not obscure meaning.

Tool Count2/5

47 tools is well into the 'too many' range and reflects substantial duplication: several near-parallel subsystems (live/history/reverse/mock-rule) each re-implement list/read/query/stop-style operations. The broad Charles domain justifies many tools, but consolidation would meaningfully improve the surface.

Completeness4/5

The surface is broad and covers the main lifecycle: live capture, saved recordings, filtering/detail drill-down, mocking, replay, reverse analysis, and environment control. Minor gaps such as no way to start/quit Charles or delete recordings/imports can be worked around, but they are not fatal dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Integrates Charles Proxy with MCP clients to provide real-time and historical network traffic capture and structured analysis. It features a summary-first approach that filters noise and desensitizes data for efficient, low-token agent debugging and monitoring.
    18
    64 PyPI
    312
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI to analyze real-time HTTP(S) traffic captured by ProxyPin, with tools to browse, search, and inspect requests and responses, as well as access saved history sessions.
    7 npm
    4
    MIT