본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 02:44

heizaheiza/Charles-mcp

요약

Charles MCP Server는 Charles Proxy의 트래픽 데이터를 MCP 클라이언트에 연결하여 AI 에이전트가 실시간 및 과거 네트워크 패킷을 분석할 수 있게 돕는 도구입니다. v3.0 업데이트를 통해 단순 트래픽 조회를 넘어 인증, 서명, 파라미터 변이 등을 다루는 리버스 엔지니어링 워크플로우로 기능을 확장합니다.

핵심 포인트

  • 에이전트가 실시간 증분 트래픽과 과거 패킷 기록을 안정적으로 읽고 분석할 수 있음
  • 요약 우선(summary-first) 출력 방식을 통해 효율적인 데이터 드릴다운 지원
  • 리버스 엔지니어링을 위한 도구 체인(디코딩, 서명 후보 분석 등) 추가 예정
  • uvx를 통한 간편한 설치 및 AI 에이전트를 활용한 자동 설정 프롬프트 제공

문서 | 도구 계약 (Tool Contract) | 에이전트 (AGENTS) | 에이전트 워크플로우 가이드 (Agent Workflow Guide) | 영어 README

저장소 유지보수 공지 (2026-04-21)

본 저장소의 공개 Git 히스토리는 2026-04-21에 재정리되었습니다. 만약 해당 날짜 이전에 본 저장소를 클론(clone)했다면, 기여를 계속하기 전에 다시 클론해 주세요. 오래된 로컬 클론에서 직접 병합(merge)하거나 푸시(push)하지 마십시오. 그렇지 않으면 만료된 히스토리가 저장소에 다시 유입될 수 있습니다.

Charles MCP Server는 Charles Proxy를 MCP 클라이언트에 연결하여, 에이전트(agent)가 실시간 트래픽을 안정적으로 읽고, 과거 패킷 기록을 분석하며, 필요할 때 개별 요청의 세부 사항을 확장하여 확인할 수 있도록 합니다.

이 도구가 해결하는 핵심 문제는 단 세 가지입니다:

  • 녹화가 진행 중인 상태에서도 에이전트가 현재 세션(session)의 증분 트래픽을 지속적으로 읽을 수 있음
  • 라이브(live)와 히스토리(history) 모두 구조화된 분석을 거치며, 에이전트가 원시 패킷 딕셔너리를 직접 소비하지 않도록 함
  • 기본적으로 요약 우선(summary-first) 출력을 사용하여, 먼저 핫스팟과 요약을 확인한 후 개별 상세 내용(detail)으로 드릴다운(drill-down)함

v3.0의 업데이트 방향은 다음과 같습니다: charles-mcp의 능력이 "트래픽 조회/필터링"에서 "리버스 엔지니어링(reverse engineering) 워크플로우"로 확장되기 시작합니다.

  • 기존의 live/history 분석 능력을 유지하는 동시에, 새로운 리버스 분석(reverse-analysis) 도구 체인(가져오기, 쿼리, 디코딩, 재생, 서명 후보 분석, live 리버스 세션)을 추가합니다.
  • 목표는 에이전트가 단순히 트래픽을 보는 것에 그치지 않고, 인증(authentication), 서명(signature), 파라미터 변이(parameter mutation) 및 재전송 가능성(replayability)을 중심으로 더 완전한 리버스 분석 루프를 형성하도록 하는 것입니다.

Charles에서 다음 순서로 진입하십시오: Proxy -> Web Interface Settings

다음 사항을 확인하십시오:

  • Enable web interface 체크
  • 사용자 이름: admin
  • 비밀번호: 123456

메뉴 위치 예시:

설정 창 예시:

저장소를 클론할 필요도, 가상 환경을 수동으로 생성할 필요도 없습니다. 먼저 uv를 설치해야 합니다.

claude mcp add-json charles '{
"type": "stdio",
"command": "uvx",
...
{
"mcpServers": {
"charles": {
...
[mcp_servers.charles]
command = "uvx"
args = ["charles-mcp"]
...

다음 프롬프트를 임의의 AI 에이전트(Claude Code, ChatGPT, Gemini CLI, Cursor Agent 등)에 복사하여 붙여넣으면, 에이전트가 설치와 설정을 자동으로 완료합니다:

🔴 자동 설치 프롬프트 펼치기 (권장)

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.
...
  • Python 3.10+
  • 로컬에 Charles Proxy가 실행 중일 것
  • Charles Web Interface가 활성화되어 있을 것
  • Charles 프록시가 기본적으로 127.0.0.1:8888을 리스닝하고 있을 것

CHARLES_MANAGE_LIFECYCLE=false 설정을 기본적으로 유지하는 것을 권장합니다.

MCP 서버가 Charles의 생명주기(lifecycle)를 제어하기를 명확히 원하는 경우가 아니라면, 종료 시 Charles 프로세스가 함께 닫히지 않도록 설정하십시오.

변수기본값설명
CHARLES_USERadminCharles Web Interface 사용자 이름
CHARLES_PASS123456Charles Web Interface 비밀번호
CHARLES_PROXY_HOST127.0.0.1Charles 프록시 호스트
CHARLES_PROXY_PORT8888Charles 프록시 포트
CHARLES_CONFIG_PATH자동 탐지Charles 설정 파일 경로
CHARLES_REQUEST_TIMEOUT10제어면 (control plane) HTTP 타임아웃(초)
CHARLES_MAX_STOPTIME3600유계 녹화 (bounded recording) 최대 지속 시간
CHARLES_MANAGE_LIFECYCLEfalseMCP 서버가 Charles의 시작 및 종료를 관리할지 여부
CHARLES_REVERSE_STATE_DIR${CHARLES_STATE_DIR}/reversereverse-analysis의 SQLite 및 아티팩트 (artifacts) 상태 디렉토리
CHARLES_VNEXT_STATE_DIR이전 변수이전 버전의 reverse-analysis 상태 디렉토리. 메인 charles-mcp가 처음 시작될 때 CHARLES_REVERSE_STATE_DIR로 자동 마이그레이션됩니다.

start_live_capture

group_capture_analysis

query_live_capture_entries

get_traffic_entry_detail

stop_live_capture

이 경로는 최소한의 토큰 (token)을 사용하여 먼저 핫스팟 (hotspot)을 찾은 다음, 필요에 따라 개별 요청을 확장하는 것을 목표로 합니다.

list_recordings

analyze_recorded_traffic

group_capture_analysis(source="history")

get_traffic_entry_detail

이 경로는 먼저 녹화된 패킷을 브라우징한 다음, 구조화된 요약 (summary)에 대해 필터링 및 드릴다운 (drill-down)을 수행하기에 적합합니다.

  • 기본 공개 도구 인터페이스는 정형화된(canonical) 31개 도구로 축소되었습니다. 레거시 별칭 (legacy aliases) (filter_func, proxy_by_time, list_sessions)은 더 이상 기본적으로 노출되지 않습니다.
  • 명시적인 호환성 스위치가 추가되었습니다: create_server(expose_legacy_tools=True) 또는 환경 변수 CHARLES_EXPOSE_LEGACY_TOOLS=true를 통해 레거시 호환 계층을 활성화할 수 있습니다.
  • 문서 진입점이 docs/README.md로 통합되었으며, 레거시 마이그레이션에 대한 권위 있는 설명서로서 docs/migrations/legacy-tools.md가 새로 추가되었습니다.
  • 새로운 에이전트 (Agent) 실행 규격 문서가 추가되었습니다: 저장소 루트에 AGENTS.md가 추가되었고, 작업화된 호출 매뉴얼로서 docs/agent-workflows.md가 추가되었습니다.
  • README와 docs/contracts/tools.md에 에이전트 문서 진입점이 추가되었으며, 다양한 환경에서 확인하기 쉽도록 저장소 상대 경로를 일관되게 사용합니다.
  • 빈번하게 사용되는 진입점 도구의 설명에 최소한의 필수 의미론 (identity 유지, summary-first, peek/read 차이점 등)이 보완되었으며, 문서와 도구 설명 간의 괴리를 방지하기 위한 계약 테스트 (contract testing)가 추가되었습니다.
  • 기능 방향이 리버스 엔지니어링 (reverse engineering) 쪽으로 발전하기 시작했습니다: 임포트, 디코딩, 재생, 시그니처 후보 발견 및 라이브 리버스 분석 워크플로우를 아우르는 reverse-analysis 도구 인터페이스가 도입되었습니다.

read_live_capturepeek_live_capture는 이제 host, method, path, status와 같은 라우팅 수준의 요약 필드만 반환하며, 더 이상 전체 원본 Charles entry를 직접 반환하지 않습니다. 이는 실시간 폴링 (polling) 시 컨텍스트 (context)를 빠르게 소진하는 것을 방지하기 위함입니다. query_live_capture_entries는 읽기 전용 분석 진입점으로 변경되어 라이브 커서 (live cursor)를 진행시키지 않습니다. 동일한 capture_id를 기반으로 이력의 증분 (incremental) 데이터를 "소비"하지 않고도 필터 조건을 바꿔가며 반복해서 쿼리할 수 있습니다. analyze_recorded_trafficquery_live_capture_entries의 요약 (summary) 항목은 matched_fieldsmatch_reasons를 명시적으로 반환합니다.

get_traffic_entry_detail는 에이전트(agent)가 "왜 이 트래픽이 선택되었는지"를 설명하기 용이하도록 합니다.

기본값은 include_full_body=false, max_body_chars=2048입니다. 만약 상세 정보(detail)의 추정 출력량이 약 12,000자를 초과할 경우, warnings를 통해 범위를 축소하거나 전체 본문(full body)을 끄라는 안내가 표시됩니다. - 상세 정보(detail) / 요약(summary) 출력 시 null 값은 자동으로 제거되며, header_map, parsed_json, parsed_form, lower_name 등 내부 필드는 숨겨집니다. 헤더 정보를 확인해야 할 때는 headers 리스트를 사용하십시오.

README에는 권장되는 주요 프로세스 도구만 포함되어 있습니다. 호환성을 위해 유지되는 엔트리(entry)들은 본 문서에서 자세히 다루지 않습니다.

도구역할사용 시점
start_live_capture현재 라이브 캡처(live capture)를 시작하거나 제어권을 가져오며, capture_id를 반환실시간 관찰을 시작하기 전
read_live_capture커서(cursor)를 따라 라이브 캡처를 증분 읽기하며, 압축된 라우팅 요약만 반환새로운 트래픽을 연속적으로 소비하거나, 우선 host/path/status만 확인하고 싶을 때
peek_live_capture커서를 진행시키지 않고 새로운 트래픽을 미리 보기 하며, 압축된 라우팅 요약만 반환읽기 진행 상태를 변경하지 않고 살짝 확인만 하고 싶을 때
stop_live_capture캡처를 종료하고, 필요 시 스냅샷을 영구 저장마무리 작업 또는 이번 실시간 패킷 캡처를 내보낼 때
query_live_capture_entries라이브 캡처에 대해 구조화된 요약(summary)을 출력하며, 커서를 진행시키지 않음실시간 트래픽에서 핵심 요청을 반복적으로 필터링하고 싶을 때
도구역할사용 시점
group_capture_analysis라이브 또는 히스토리(history) 결과에 대해 그룹화 및 집계 수행주요 host, path, status를 먼저 확인하고 싶을 때
get_capture_analysis_stats분류 통계 결과를 반환API, 정적 리소스, 에러 트래픽의 비중을 빠르게 알고 싶을 때
get_traffic_entry_detail단일 엔트리(entry)의 상세 정보(detail)를 읽으며, 응답이 너무 클 경우 경고(warnings)를 제공대상 entry_id를 확보한 후, 상세 분석(drill-down)을 준비할 때
analyze_recorded_traffic지정된 녹화 파일 또는 최신 녹화 파일에 대해 구조화된 요약(summary)을 출력하며, 매칭 이유를 첨부히스토리 .chlsj 파일을 분석하고 싶을 때
도구역할사용 시점
list_recordings현재 저장된 녹화 파일 목록을 나열어떤 히스토리 녹화 파일들이 있는지 먼저 알고 싶을 때
get_recording_snapshot특정 녹화 파일의 원본 스냅샷을 읽음저장된 특정 스냅샷을 전체적으로 확인해야 할 때
query_recorded_traffic최신 녹화 파일에 대해 직접 경량 필터링 수행host, method, 정규식(regex) 일치 여부를 빠르게 찾아야 할 때
도구역할사용 시점
charles_statusCharles 연결 상태 및 현재 라이브 캡처(live capture) 상태 확인연결 이상이 의심되거나 캡처가 여전히 활성화되어 있는지 확인하고 싶을 때
throttlingCharles 네트워크 제한(throttling) 프리셋 설정3G / 4G / 5G / off 등의 네트워크 조건을 시뮬레이션해야 할 때
reset_environmentCharles 설정을 복구하고 현재 환경을 정리깨끗한 환경으로 되돌아가야 할 때
도구역할언제 사용하는가
reverse_import_session공식 Charles XML / native session을 canonical reverse store로 가져옴이미 내보낸 Charles 세션으로부터 재생(replay), 디코딩 또는 서명(signature) 분석을 시작하고 싶을 때
reverse_list_captures가져온 reverse-analysis capture 목록을 나열저장된 reverse 데이터셋을 선택하고 싶을 때
reverse_query_entries라우팅 필드를 통해 가져온 reverse entry를 필터링상세 정보(detail) 확인이나 재생(replay)을 하기 전에 후보 요청 범위를 좁히고 싶을 때
reverse_get_entry_detail가져온 단일 reverse entry의 canonical detail을 반환특정 베이스라인 요청을 심층 분석하고 싶을 때
reverse_decode_entry_body저장된 request / response body를 디코딩하며, descriptor 기반의 protobuf를 지원구조화된 페이로드(payload) 뷰를 얻고 싶을 때
reverse_replay_entry가져온 단일 요청에 대해 변이(mutation) 파라미터를 포함하여 재생(replay) 수행요청의 재현 가능성이나 파라미터 민감도를 검증하고 싶을 때
reverse_discover_signature_candidates여러 개의 가져온 요청을 비교하여 의심되는 서명(signature) 필드 순위를 제공동적 인증(auth) / 서명(sign) 파라미터의 위치를 찾고 싶을 때
reverse_list_findings영구 저장된 replay / signature 탐색 결과(findings)를 확인기존의 역공학(reverse engineering) 증거를 다시 보고 싶을 때
reverse_charles_recording_statusCharles의 현재 녹화 상태와 reverse live session 상태를 반환reverse live 분석이 준비되었는지 확인하고 싶을 때
reverse_start_live_analysisreverse live session을 시작하고, 공식 내보내기 페이지를 통해 현재 Charles session을 캡처새로 발생하는 역공학 대상 트래픽을 지속적으로 추적하고 싶을 때
reverse_peek_live_entries새로운 reverse live entry를 읽되, reverse 커서(cursor)를 진행시키지 않음상태를 소비(consume)하지 않고 새로 추가된 트래픽을 미리 보고 싶을 때
reverse_read_live_entries새로운 reverse live entry를 읽고 소비(consume)reverse live 분석 진행 상태를 전진시키고 싶을 때
reverse_stop_live_analysisreverse live session을 중단하고, 필요에 따라 Charles 녹화 상태를 복구reverse live 분석을 깔끔하게 마무리하고 싶을 때
reverse_analyze_live_login_flow새로 추가된 live 트래픽에 대해 로그인 / 인증 관련 점수를 매기고 후속 동작 제안을 제공로그인, 토큰(token) 획득, 세션(session) 수립 프로세스를 분석하고 싶을 때
reverse_analyze_live_api_flow새로 추가된 live 트래픽에 대해 API 워크플로우 점수를 매기고 후속 동작 제안을 제공비즈니스 API 요청 체인을 분석하고 싶을 때
reverse_analyze_live_signature_flow서명 민감 요청에 집중하여 변이 실험에 더 특화된 제안을 생성sign, nonce, timestamp 등의 보호 메커니즘을 분석하고 싶을 때

모든 도구는 기본적으로 데이터 마스킹(masking) 처리를 하지 않고 전체 원본 콘텐츠를 반환합니다. 상위 계층에서 마스킹이 필요한 경우, MCP 클라이언트 또는 에이전트가 직접 처리해야 합니다.

먼저 group_capture_analysis, query_live_capture_entries 또는 analyze_recorded_traffic를 사용하여 대상을 확인한 후, get_traffic_entry_detail을 호출하는 것을 권장합니다.

처음부터 include_full_body=true를 요청하지 마십시오.

모든 요약(summary) 및 상세(detail) 출력은 직렬화(serialization)를 통해 경량화되었습니다:

  • header_map, parsed_json, parsed_form, lower_name 등 내부 필드는 출력에 더 이상 나타나지 않습니다.
  • 값이 null인 필드는 직렬화 시 자동으로 제거됩니다.
  • detail 뷰에 full_text가 존재하는 경우, 중복되는 preview_text는 제거됩니다.

컨텍스트 윈도우(context window) 보호를 위해 기본 파라미터 값이 낮게 설정되어 있습니다.

파라미터기존 기본값새로운 기본값
max_items2010
max_preview_chars256128
max_headers_per_side86
max_body_chars40962048

더 넓은 범위를 확인하려면 여전히 수동으로 더 높은 값을 전달할 수 있습니다.

history summaryrecording_path를 반환하며,
live summarycapture_id를 반환합니다.

get_traffic_entry_detail에 대하여:

  • history 시나리오에서는 recording_path를 우선적으로 전달합니다.
  • live 시나리오에서는 capture_id를 우선적으로 전달합니다.

stop_live_capture에는 두 가지 안정적인 종료 상태가 있습니다:

status="stopped": 실제로 종료가 완료됨
status="stop_failed": 짧은 재시도 후에도 실패했으나, capture는 여전히 유지됨

stop_failed가 반환될 때는 다음 사항을 동시에 확인해야 합니다:

recoverable
active_capture_preserved

만약 결과가 다음과 같다면:

{
"status": "stop_failed",
"recoverable": true,
...

이는 현재 capture를 계속해서 읽기, 진단, 다시 중지(stop)할 수 있음을 의미하며, 이미 종료된 것이 아닙니다.

테스트 실행:

python -m pytest -q

자주 사용하는 로컬 점검:

python charles-mcp-server.py
python -c "from charles_mcp.main import main; main()"
  • 공개 저장소(public repository)의 이력 정리를 완료하여, 개편된 공개 이력 배포를 준비합니다.

  • 기본 공개 도구 범위를 canonical 31개 도구로 축소하며, legacy aliases는 명시적인 호환 계층(explicit compatibility layer)으로 변경합니다 (기본적으로 공개되지 않음).

  • 새로운 호환 스위치 추가:
    expose_legacy_tools 파라미터 및 CHARLES_EXPOSE_LEGACY_TOOLS 환경 변수 (파라미터 우선순위가 환경 변수보다 높음).

  • 새로운 docs hub (docs/README.md) 및 legacy 마이그레이션 문서 (docs/migrations/legacy-tools.md)를 추가하고, 진입점 네비게이션을 통합합니다.

  • docs/contracts/tools.md를 통해 canonical public surface를 명확히 하고, 테스트 정렬을 위해 안정적으로 파싱 가능한 JSON 영역을 새로 추가합니다.

  • Agent 실행 규격 문서를 도입 및 배포합니다: 저장소 루트 디렉토리에 AGENTS.mddocs/agent-workflows.md를 추가합니다.

  • READMEdocs/contracts/tools.md에 Agent 문서 진입점 링크를 추가하고, 저장소 상대 경로를 사용하도록 통일합니다.

  • 빈번하게 사용되는 진입점 도구의 최소 프롬프트(prompt)를 동기화하고, 문서/도구 시맨틱 계약(semantic contract) 테스트를 추가하여 규칙이 MCP 설명과 지속적으로 일치하도록 보장합니다.

  • reverse-analysis 메인 도구 범위를 도입하여 임포트, 쿼리, 디코딩, 재생, 시그니처 후보 발견 및 live 역공학(reverse engineering) 프로세스를 포괄합니다. 이를 통해 기능 경계가 "트래픽 확인"에서 "역공학 워크플로우"로 확장됩니다.

  • live/history의 구조화된 분석 경로를 업그레이드합니다:
    query_live_capture_entries는 읽기 전용을 유지하며, summary에는 매칭 이유를 추가하고, detail 출력은 기본적으로 더 가볍게 구성하되 대규모 응답 시 경고를 제공합니다.

  • 외부 문서를 v3.0 시맨틱으로 업데이트합니다: README의 새로운 기능 섹션에 버전 번호를 명시적으로 표시하고, 중문 및 영문 설명을 동기화합니다.

  • Trusted Publisher (OIDC) 기반의 GitHub Actions 자동 배포 프로세스를 추가하여, 공식 GitHub Release 배포 후 PyPI로 자동 동기화할 수 있습니다.

  • 배포 보호 기능 추가: Release tag가 프로젝트 버전과 일치하는지 검증하고 twine check --strict를 실행합니다.

  • 저장소 가시성 및 배포 메타데이터를 보완하여 GitHub Release와 PyPI 배포 링크가 일치하도록 보장합니다.

기록된 패키지 경로 읽기 제한: 히스토리 스냅샷 관련 진입점은 이제 관리되는 디렉토리 내의 .chlsj 파일에만 접근할 수 있어, 도구 인터페이스를 통해 임의의 로컬 JSON 파일을 읽는 것을 방지합니다.
live 스캔 윈도우 수정: query_live_capture_entries 및 관련 live 분석 경로는 이제 실제로 scan_limit를 준수하며, 더 이상 아주 작은 고정된 윈도우 하나만 조용히 스캔하지 않습니다.
body 필터링 누락 수정: request_body_containsresponse_body_contains

더 이상 잘린(truncated) preview 텍스트만 매칭하지 않고, 더 완전한 요청(request) 및 응답(response) 본문을 정확하게 커버할 수 있습니다.

런타임 데이터 디렉토리 조정: 설치 환경의 기본값을 사용자 상태 디렉토리로 변경하여 스냅샷과 백업을 저장하도록 수정했습니다. 이를 통해 런타임 데이터가 패키지 설치 디렉토리에 작성되는 것을 방지합니다.

배포: 위의 수정 사항들을 동기화하였으며, GitHub 및 PyPI 버전을 2.0.1로 업데이트했습니다.

수정: lower_name

  • 검증(validation) 크래시 HeaderKV.lower_name 수정
  • get_traffic_entry_detail 호출 시 발생하는 'lower_name' is a required property 출력 검증 오류를 해결하기 위해 기본값 및 자동 계산 validator를 추가했습니다. 이로 인해 도구가 완전히 사용 불가능했던 문제를 해결했습니다.

커서(cursor) 로직 함정 수정: query_live_capture_entries

  • 읽기 전용 분석(내부 cursor를 진행시키지 않음) 방식으로 변경했습니다. 이를 통해 에이전트(agent)가 반복 호출할 때 과거 데이터가 "소비"되어 항상 빈 리스트만 반환하던 문제를 방지합니다.

컨텍스트(Context) 폭발 방지: read_live_capturepeek_live_capture

  • 반환 전 원본 엔트리(entry)를 라우트 요약(host/method/path/status)으로 자동 압축합니다. 이제 전체 HTTP 요청/응답 원문을 대규모 언어 모델(LLM)에 직접 전달하지 않습니다.

에이전트 무한 루프 타파: 위의 세 가지 수정 사항은 에이전트가 실시간 분석 중 상세 정보(detail) 크래시 → 쿼리 백트래킹 → 커서 경과로 인한 데이터 없음 → 지속적인 재시도 패턴의 무한 루프에 빠지는 현상을 공동으로 제거합니다.

도구 설명 개선: 모든 live/history 도구에 사용 가이드, 부작용(side effects) 설명 및 권장 호출 경로를 추가했습니다.

토큰(Token) 예산 최적화: 직렬화(serialization) 출력을 약 50% 축소하여, 여러 번의 get_traffic_entry_detail 호출 후 컨텍스트 제한 초과(Context limit reached)가 발생하는 문제를 해결했습니다.

  • header_map, parsed_json, parsed_form, lower_name을 내부 필드로 지정하여 도구 출력에 나타나지 않도록 했습니다.
  • TrafficQueryResultTrafficDetailResult에서 null 값을 자동으로 제거합니다.
  • 상세(detail) 뷰에서 full_text가 존재하는 경우 중복되는 preview_text를 자동으로 제거합니다.

기본 파라미터 하향 조정: max_items (20→10), max_preview_chars (256→128), max_headers_per_side (8→6), max_body_chars (4096→2048)

대규모 응답 경고: get_traffic_entry_detail의 출력이 12,000자를 초과할 경우, warnings를 통해 에이전트가 요청 범위를 좁히도록 안내합니다.

폐기된 redaction 체계 제거: include_sensitive 파라미터와 모든 redactions_applied / redacted / sensitive_included 필드를 삭제하여 도구 시그니처(signature)의 노이즈를 줄였습니다.

수정: 해당 프리셋은 이제 자동으로 errors_only 프리셋 의미인 has_error=True를 주입하여, 실제로 오류가 발생한 트래픽만 반환합니다.

HTTP 연결 재사용: LiveCaptureService가 start → read → stop의 전체 생명주기 동안 동일한 HTTP 연결을 재사용하여, 빈번한 폴링(polling) 시의 TCP 오버헤드를 줄입니다.

entry_id 계산 경량화: JSON 전체 직렬화 방식에서 주요 필드를 파이프라인으로 연결한 후 SHA1을 생성하는 방식으로 변경하여, 대규모 본문(body)에 대한 불필요한 직렬화를 방지합니다.

본 프로젝트는 처음에 tianhetonghua/Charles-mcp-server에서 영감을 얻었으나, 해당 프로젝트의 사용 경험이 좋지 않았기 때문에 이후 코드베이스를 대폭 재작성 및 재구성하였습니다. 다양한 아키텍처와 사용 시나리오를 지향하며, 현재 유지 관리자에 의해 독립적으로 지속 관리되고 있습니다.

이전 작업의 핵심 능력은 캐시(cache)를 중심으로 전개되었습니다. 반면 본 프로젝트의 목표는 Claude Code, Codex, Cursor와 같은 MCP 클라이언트 내에서 일반적인 AI 에이전트가 실시간 트래픽과 과거 캡처된 패킷을 안정적이고, 낮은 토큰 사용량으로

전작이 시작점을 제공했다면, 이 저장소(repository)는 서로 다른 목표를 향해 단계적으로 진화해 온 독립적인 구현체입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0