Skip to main content
Glama
adefemi-dev
by adefemi-dev

jCodeMunch MCP

tree-sitter AST 파싱을 통한 정밀 소스 코드 검색을 제공하는 가장 토큰 효율적인 MCP 서버. 코드 탐색에서 AI 토큰 비용을 86-99% 절감하고(평균 96%, grep-and-read 에이전트 대비 27.9배 적은 토큰으로 벤치마크됨), 전체 파일을 읽으며 컨텍스트 창을 태우는 일을 멈추세요.

실제 결과, 프로덕션에서 실시간 제공 838B+ 토큰 절감 · 136,000+ 설치 보고 · $4.2M+ AI 지출 절감 · 100,000+ kg CO₂ 방지 카운터 수치는 2026-08-17 기준이며, $5/MTok Claude Opus 입력 요금으로 산정되었습니다. 네 가지 모두 계속 증가하므로 최소값으로 보시면 됩니다. 실시간 현황: jcodemunch.com.

Claude Code, Cursor, VS Code, Codex CLI, Windsurf, Continue 및 모든 MCP 호환 클라이언트와 함께 작동합니다.

지금 설치 · 빠른 시작 · 근거 확인 · 가격

PyPI version PyPI - Python Version License MCP Local-first Issues closed DOI

개인 사용은 무료입니다. 돈을 버는 데 사용한다면, Uncle J.도 한몫 챙깁니다. 공평하죠? 상업용 라이선스는 아래를 참조하세요. 우리의 보장: jCodeMunch가 비용을 회수하지 못하면, jCodeMunch 비용도 지불하지 않으셔도 됩니다.


왜 jCodeMunch인가?

대부분의 AI 에이전트는 비싼 방식으로 저장소를 탐색합니다: 전체 파일을 열고, 수천 줄의 관련 없는 코드를 훑고, 반복합니다. 이것은 "약간 비효율적"인 수준이 아닙니다. 이것은 토큰 소각로입니다.

jCodeMunch는 코드베이스를 한 번 인덱싱하고 에이전트가 필요한 정확한 코드만 검색할 수 있게 합니다: 함수, 클래스, 메서드, 상수, 개요, 그리고 바이트 단위 정밀도의 밀접하게 범위가 지정된 컨텍스트 번들. tree-sitter로 소스를 파싱하고, 구조화된 심볼 메타데이터(시그니처, 종류, 정규화된 이름, 요약, 바이트 오프셋)를 원시 파일 콘텐츠와 함께 로컬 인덱스에 저장하며, 파일을 반복해서 다시 읽는 대신 요청 시 정확한 구현을 가져옵니다.

작업

기존 방식

jCodeMunch 사용 시

함수 찾기

큰 파일을 열고 스캔

심볼 검색, 정확한 구현 가져오기

모듈 이해

넓은 파일 영역 읽기

관련 심볼과 임포트만 가져오기

저장소 구조 탐색

파일을 하나씩 순회

개요, 트리, 대상 번들 쿼리

"X를 바꾸면 무엇이 깨질까?"

불가능

get_blast_radius

한 번 인덱싱하세요. 저렴하게 쿼리하세요. 계속 진행하세요. 정밀 컨텍스트가 무차별 컨텍스트를 이깁니다.


Related MCP server: Symbol Delta Ledger

근거

재현 가능한 토큰 효율 벤치마크

tiktoken cl100k_base로 측정했으며, 업스트림 커밋에 고정된 세 개의 공개 저장소를 대상으로 2026-08-03에 v1.108.233에서 실행되었습니다. 워크플로우: 쿼리당 search_symbols(상위 5개) + get_symbol_source × 3. 동일한 실행, 동일한 코퍼스, 동일한 파일 리더로 두 가지 기준선을 사용했습니다:

  • Grep-top-3: rg -l로 쿼리 용어를 검색하고, 매치 수로 파일 순위를 매긴 후 상위 3개를 전체 엽니다. 이는 도구 없이 유능한 에이전트가 실제로 하는 방식이며, 인용할 수치입니다.

  • Read-all: 인덱싱된 모든 소스 파일을 연결. 아무도 지불하지 않는 상한선이며, 이전에 발표된 수치와의 연속성을 위해 유지됩니다.

저장소

파일

심볼

Grep-top-3 기준선

jCodeMunch

vs grep

vs read-all

expressjs/express

182

200

15,724 평균

1,007 평균

15.6x

153.2x

fastapi/fastapi

1,182

6,841

85,296 평균

2,209 평균

38.6x

372.9x

gin-gonic/gin

98

1,179

31,975 평균

1,545 평균

20.7x

98.3x

총계 (15개 작업 실행)

664,975

23,805

27.9x

237.3x

grep-and-read 에이전트 대비: 96.4% 절감, 27.9배 적은 토큰. 쿼리별 결과는 7.3x에서 84.3x 범위(중앙값 25.5x)이며, 단일 배수가 모든 쿼리를 설명하지는 않습니다. read-all 대비 수치는 99.6%이지만, 아무도 그 상한선을 지불하지 않습니다. 컴팩트한 MUNCH 와이어 인코딩은 응답에서 중앙값 45.5%의 추가 바이트를 절감합니다.

전체 방법론, 고정 커밋, 하네스 및 알려진 제한 사항: benchmarks/METHODOLOGY.md · 직접 재현하기 · TOKEN_SAVINGS.md

프로덕션 코드베이스에서의 독립 A/B 테스트

실제 Vue 3 + Firebase 프로덕션 코드베이스에서 50회 반복 A/B 테스트, jCodeMunch vs 네이티브 도구(Grep/Glob/Read), Claude Sonnet 4.6, 반복마다 새 세션: 성공률 80% vs 72%, 타임아웃률 32% vs 40%, 평균 캐시 생성 10.5% 감소. 고정 오버헤드와 분리된 도구 계층 절감: 15-25%. jCodeMunch 변형에서만 독점적으로 나타난 발견 범주가 하나 있었습니다: find_importers를 통한 고아 파일 감지 — 네이티브 도구가 스크립팅 없이는 답할 수 없는 구조적 쿼리입니다. 전체 보고서: benchmarks/ab-test-naming-audit-2026-03-18.md

언급된 곳

  • Artur Skowroński (VirtusLab): "토큰 약 80% 절감, 즉 5배 더 효율적 — 한 번 인덱싱하고 영원히 저렴하게 쿼리" · GitHub All-Stars #15

  • Traci Lim (AWS · ASEAN AI Lead): "네이티브 도구가 답할 수 없는 구조적 쿼리: find_importers, get_blast_radius, get_class_hierarchy, find_dead_code" · 5 Repos That Save Token Usage in Claude Code

  • Julian Horsey (Geeky Gadgets): "3,850 토큰이 700개로 줄어듦 — 5.5배 개선" · JCodeMunch AI Token Saver

  • Eric Grill: "컨텍스트가 희소 자원입니다. 90% 줄이면 전체 스택이 더 저렴하고 더 안정적이 됩니다" · jCodemunch: Context Engine for AI Agents

전체 인정 페이지 →


설치

원클릭 설치

Install in VS Code Install in VS Code Insiders Install in Cursor

권장: 한 줄 명령

uv tool install jcodemunch-mcp
jcodemunch-mcp init

관리할 virtualenv가 없고, 시스템 Python에 아무것도 기록되지 않으며, 순수 pip install이 거부되는 PEP 668 배포판(Ubuntu 24.04+, Debian 12+)에서도 그대로 작동합니다. 아직 uv가 없으신가요?

init은 MCP 클라이언트(Claude Code, Claude Desktop, Cursor, Windsurf, Continue)를 자동 감지하고, 해당 구성 항목을 작성하며, 에이전트가 실제로 jCodeMunch를 사용하도록 CLAUDE.md 프롬프트 정책을 설치하고, 선택적으로 강제 훅을 설치하고, 선택적으로 프로젝트를 인덱싱하며, 에이전트 구성 파일에서 토큰 낭비를 감사합니다.

명령어

사용 시점

uvx jcodemunch-mcp

설치 없음. 임시 환경에서 실행 — 디스크에 영구적으로 남는 것이 없습니다. init이 작성하는 클라이언트 항목은 이미 이 방식으로 서버를 호출하므로, 대부분의 설정에서 이것만 실행됩니다. ⚠ 강제 훅은 예외입니다: 최소 PATH 서브셸에서 생성되어 실행 파일을 이름으로 찾기 때문에 작동하려면 uv tool install(또는 pipx/pip)이 필요합니다.

pipx install jcodemunch-mcp

이미 pipx로 표준화한 경우

pip install jcodemunch-mcp

직접 관리하는 virtualenv 내부

확인:

jcodemunch-mcp --version

수동 Claude Code 설정

claude mcp add -s user jcodemunch -- uvx jcodemunch-mcp

설치 단계 없음 — uvx가 요청 시 서버를 가져와 실행합니다. PATH에 두는 것을 선호하시나요(강제 훅에 필요)? uv tool install jcodemunch-mcp를 실행한 다음 claude mcp add -s user jcodemunch jcodemunch-mcp를 실행하세요.

그런 다음 에이전트에게 도구를 선호하라고 지시하세요. 이것은 사람들이 생각하는 것보다 중요합니다. 설치는 도구를 사용 가능하게 만들지만 에이전트의 무차별 읽기 습관을 깨지는 않습니다. CLAUDE.md의 한 줄이면 충분합니다:

Call the jcodemunch_guide tool and strictly follow its instructions.

Cursor, Windsurf, Codex CLI, Antigravity, Gemini CLI, Qwen Code, Kiro, Cline, Zed, Goose, Hermes, Odysseus 또는 Paperclip을 사용 중이신가요? 테스트된 모든 클라이언트 구성은 **CLIENTS.md**에 있습니다. 선택적 확장 기능(로컬 의미 검색, 공급자별 AI 요약)은 QUICKSTART.md에 있으며, 각 확장 기능이 끌어오는 시스템 표면은 SECURITY.md에 문서화되어 있습니다.


빠른 시작

전체 워크스루: QUICKSTART.md. init 이후 에이전트 내부에서 2분 버전:

  1. *"jcodemunch로 이 저장소를 인덱싱해줘."*라고 요청하세요.

  2. *"jcodemunch를 사용해서 인증을 처리하는 함수를 찾고 그 소스를 보여줘."*라고 요청하세요.

에이전트는 search_symbols와 get_symbol_source를 통해 응답해야 하며, 전체 파일 대신 수십 줄을 반환해야 합니다. get_session_stats로 확인하세요. 세션의 토큰 제공량과 절감량을 보고합니다. 미터의 숫자는 여기서 나옵니다.

인기 프레임워크의 초기 인덱싱을 건너뛰고 싶으신가요? 사전 구축된 스타터 팩: jcodemunch-mcp install-pack --list (무료 팩은 라이선스가 필요 없습니다).


할 수 있는 작업

  • 파일을 로드하는 대신 하나의 심볼을 검색합니다. get_symbol_source는 700줄 파일에서 한 함수를 수정하는 대부분의 편집 작업에 대해 정확한 함수 본문을 바이트 단위로 반환합니다(해당 읽기에서 약 95% 절감).

  • 한 번의 호출로 전체 작업 컨텍스트를 조합합니다. assemble_task_context는 작업 의도를 분류하고, 앵커 심볼을 추출하며, 하나의 토큰 예산으로 올바른 도구 시퀀스를 실행합니다. plan_turn은 첫 번째 읽기 전에 턴을 라우팅합니다.

  • grep이 답할 수 없는 구조적 질문을 합니다. find_importers, get_blast_radius, get_call_hierarchy, find_dead_code, get_changed_symbols, get_hotspots, search_ast 안티패턴 스캔 등이 있습니다.

  • 위험한 변경을 사전 점검하고, 언제 멈춰야 하는지 압니다. check_edit_safe, check_delete_safe, get_pr_risk_profile, 그리고 편집 준비된 {old_text, new_text} 블록이 포함된 plan_refactoring. 두 안전 검사는 stop_rule.terminal을 반환합니다. true는 더 이상의 jcodemunch 호출이 판정을 바꾸지 않는다는 뜻이므로, 확신을 위해 find_importers나 check_references를 다시 실행하는 것은 낭비입니다. 이는 최종(final)을 의미하며 안전(safe)을 의미하지 않습니다. false는 답을 바꿀 특정 사항을 지목합니다.

  • 답변을 신뢰합니다. 보정된 신뢰도 점수, 신선도 플래그, 부재 주장에 대한 커버리지 계약, SCIP 가져오기를 통한 컴파일러 검증 참조, 그리고 LLM에 도달하기 전의 자동 비밀 정보 삭제.

  • 인덱스를 자동으로 최신 상태로 유지합니다. 감시 모드, 에이전트 훅, VS Code 확장이 오래된 데이터 격차를 해소합니다.

이것이 하이라이트입니다. 90개 이상의 도구 전체 둘러보기, MUNCH 컴팩트 와이어 형식, 증거 영수증, 오프로드 가능 작업 주석, 세션 경제 계측은 **CAPABILITIES.md**에 있으며, 내부 구조는 UNDER_THE_HOOD.md에 있습니다.

새로운 소식

  • v1.108.293 (2026-08-23) — 209개의 테스트를 숨긴 건너뛴 모듈 10개

  • v1.108.292 (2026-08-23) — 도구 연기를 견디는 하나의 문자열

  • v1.108.291 (2026-08-22) — 소스의 각 바이트를 한 번씩 계산


언제 도움이 되나요 (그리고 언제 아닌가요)?

시나리오

네이티브 도구

jCodeMunch

절감 효과

한 함수 편집 (700줄 파일)

Read → 700줄

get_symbol_source → 30줄

~95%

파일 구조 파악

Read → 전체 내용

get_file_outline → 이름 + 시그니처

~80%

편집할 파일 찾기

Grep 여러 파일

search_symbols → 정확한 일치

비슷함

편집에 전체 파일 컨텍스트 필요

Read → 전체 내용

get_file_content → 전체 내용

~0%

"X를 바꾸면 무엇이 깨지나요?"

불가능

get_blast_radius

고유 기능

대부분의 실제 편집 작업인 목표 지향적 편집(함수 하나, 메서드 하나, 클래스 하나)에 가장 큰 도움이 됩니다. 전체 파일이 진정으로 필요한 편집(파일 수준 상태 재구성, 수백 줄에 걸친 로직 재정렬)은 이점이 없습니다. 가장 적합한 경우: 대규모 저장소, 익숙하지 않은 코드베이스, 에이전트 주도 탐색, 리팩터링 및 영향 분석, 에이전트를 더 멍청하게 만들지 않으면서 AI 토큰 비용을 줄이려는 팀.

언어: tree-sitter를 통한 70개 이상, Python, JavaScript/TypeScript, Go, Rust, Java, C/C++, C#, PHP, Ruby, Swift, Kotlin 포함. 전체 매트릭스: LANGUAGE_SUPPORT.md. 모노레포: 지원; 증분 인덱싱, 워크스페이스 멤버 감지, 하위 경로 범위 지정.


보안, 개인정보 보호, 백그라운드 동작

설계상 로컬 우선: 인덱스는 ~/.code-index/에 있으며, 기본 패키지의 유일한 기본 네트워크 동작은 익명 절감 카운터입니다(임의 ID + 집계 토큰 수, 코드 없음, 경로 없음, 개인정보 없음, share_savings: false로 거부 가능). 서버가 도구 호출 응답 외에 수행하는 모든 작업(파일 감시, 옵트인 로그인 서비스, 라이선스 검증, 모델 다운로드, 조직 보고)은 옵트인 또는 옵트아웃이며, 가시적이고 되돌릴 수 있으며, 모든 항목은 경로 탐색, 심볼릭 링크, 비밀 정보 삭제 제어와 함께 **SECURITY.md**에 열거되어 있습니다.


문서

문서

다루는 내용

QUICKSTART.md

3단계로 인덱싱 완료

CLIENTS.md

모든 MCP 클라이언트에 대한 테스트된 구성

USER_GUIDE.md

전체 도구 참조, 워크플로, 모범 사례

CAPABILITIES.md

하이라이트를 넘어선 전체 기능 참조

CONFIGURATION.md

구성 파일 참조, 토큰 제어 레버, 도구 계층, 카운터

UNDER_THE_HOOD.md

기술 매뉴얼: 판정, 랭킹 내부, 출처 계약

ARCHITECTURE.md

내부 설계, 저장 모델, 확장 지점

GROQ.md

Groq Remote MCP, gcm CLI, speedreview GitHub Action

HEADLESS.md

claude -p와 함께 jCodeMunch 사용

AGENT_HOOKS.md

에이전트 훅 및 프롬프트 정책

LANGUAGE_SUPPORT.md

지원 언어 및 파싱 세부 정보

SECURITY.md

보안 제어, 데이터 이동, 백그라운드 동작

TROUBLESHOOTING.md

일반적인 문제 및 해결 방법

CHANGELOG.md · ROADMAP.md

릴리스 기록 및 향후 계획


라이선스 및 상업적 사용

jCodeMunch-MCP는 jCodeMunch-MCP 이중 사용 라이선스(전체 약관)로 배포됩니다. 비상업적 사용은 무료입니다. 상업적 사용은 유료 라이선스가 필요하며, 일회성으로 jMunch LLC가 Stripe를 통해 판매합니다:

jCodeMunch 전용: Builder, $79 (개발자 1명) · Studio, $349 (최대 5명) · Platform, $1,999 (조직 전체 내부 배포)

전체 jMunch 제품군 (코드 + 문서 + 데이터): Trio Builder, $99 · Trio Studio, $449 · Trio Platform, $2,499

가치가 있는지 확실하지 않으신가요? ROI 계산기에서 직접 수치를 계산해 보거나, 승인하는 사람에게 재무팀 버전을 전달하세요. 보증은 유효합니다: jCodeMunch가 비용을 회수하지 못하면 jCodeMunch 비용을 지불하지 않으셔도 됩니다.

모든 사용에 대한 조건: 저작권 고지를 유지하고, 수정 사항을 명확히 표시하며, 원저작자의 이름을 그대로 유지하고(그는 꽤 자기만족적입니다), 소스 재배포 시 눈에 띄는 수정 고지를 포함해야 합니다. 소프트웨어는 이름을 바꾸거나, 리브랜딩하거나, 공개 패키지 레지스트리에 게시할 수 없으며, 보증 없이 "있는 그대로" 제공됩니다. LICENSE가 적용됩니다.


FAQ

Claude / Opus 토큰을 얼마나 절약할 수 있나요? 검색 중심 워크플로에서 코드 읽기 토큰은 일반적으로 86-99% 감소하며, 15개 작업과 3개 저장소에 걸쳐 grep-and-read 에이전트 대비 평균 96.4%(27.9배)로 벤치마킹되었습니다. 쿼리별 결과는 7.3배에서 84.3배까지 다양합니다. 방법론: TOKEN_SAVINGS.md 및 benchmarks/.

RAG나 grep 기반 도구와 어떻게 다른가요? jCodeMunch는 퍼지 청크(RAG)나 에이전트가 여전히 읽고 추론해야 하는 원시 줄 일치(grep)가 아닌, 심볼 수준에서 바이트 수준 정밀도(함수, 클래스, 임포터, 블래스트 반경, 계층 구조)로 검색합니다.

개인 사용은 무료인가요? 네. 상업적 사용은 라이선스가 필요합니다. 위를 참조하세요.

X에 대한 심층 분석은 어디에 있나요? 기능: CAPABILITIES.md. 구성: CONFIGURATION.md. 클라이언트: CLIENTS.md. 내부: UNDER_THE_HOOD.md. 또는 종합 정보: jcodemunch.com.


추가 자료: OSS 코드 건강 관측소 (Express, FastAPI, Gin, Django 등의 주간 6축 스냅샷) · 토큰 비용 레이더 (일일 AI 토큰 비용 인텔리전스) · jMunch Console (원클릭 업그레이드를 위한 무료 MIT GUI)

Available Tools

6 tools
announce_modelA

Agent self-reports its active model identifier. Server resolves to a tier via model_tier_map (fuzzy: normalize → exact → glob → substring → '*' → 'full') and narrows the exposed tool list accordingly. Idempotent: a second call with the same model is a cheap no-op. Prefer calling plan_turn(model=...) for routine per-task use; use announce_model as a fallback when plan_turn is not appropriate for the current task.

NameRequiredDescriptionDefault
modelYesYour active model identifier, e.g. 'claude-haiku-4-5'.

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses multiple behavioral traits beyond the annotations: idempotency ('a second call with the same model is a cheap no-op'), the fuzzy tier resolution order, and the side effect of narrowing the tool list. These details help the agent anticipate what will happen when it calls the tool, well beyond the sparse annotations.

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 action and purpose, then detailed resolution logic, and ends with usage guidance. Every clause carries value, and there is no fluff.

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 single-parameter tool with no output schema, the description covers purpose, effect, idempotency, and when to use it. Nothing an agent needs to decide whether to call it or to understand the outcome is missing.

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?

The input schema already provides a clear description of the model parameter with an example ('claude-haiku-4-5'), so schema coverage is 100%. The description adds little beyond restating that the agent reports its model identifier, which is already implied by the schema. 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 states a specific verb ('self-reports') and resource ('active model identifier'), and clearly explains the consequence: the server resolves to a tier and narrows the exposed tool list. It also distinguishes itself from plan_turn by name, so an agent can tell them apart 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 Guidelines5/5

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

Explicit guidance is given: 'Prefer calling plan_turn(model=...) for routine per-task use; use announce_model as a fallback when plan_turn is not appropriate.' This tells the agent exactly when to use this tool and when to use the alternative, leaving nothing to inference.

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

jcodemunch_guideA
Read-only

Return the version-current CLAUDE.md / AGENT.md policy snippet for jcodemunch-mcp — the same text produced by jcodemunch-mcp claude-md --generate. Lets an agent keep a one-line CLAUDE.md (e.g. "Call jcodemunch_guide and strictly follow its instructions.") instead of pasting a static snippet that drifts from the installed version. Idempotent, no repo context required. Matches the active tool surface, tier and disabled_tools — list 'jcodemunch_guide' in disabled_tools to hide it.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description consistently describes a read operation with no contradiction. It adds valuable context beyond the annotations: idempotency, that no repo context is required, and that output dynamically matches the current tool surface, tier, and disabled_tools configuration.

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 purpose and each subsequent sentence earns its place: the drift-prevention use case, idempotency/no-repo-context, and the config-matching behavior. It is slightly dense — four ideas in one block — but efficient with 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?

For a zero-parameter, read-only tool with no output schema, the description is thorough: it covers return content, the rationale, safety (idempotent, read-only), and the config-sensitive output behavior. The only minor omission is a concrete sketch of the returned snippet's shape, but given tool simplicity this is not a material gap.

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 and the schema is an empty object (100% coverage trivially), so the schema leaves nothing to explain. Per rubric, a zero-parameter tool gets a baseline of 4, and the description adds the useful note that no repo context is required, reinforcing the no-input contract.

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 ('Return') plus a precise resource: the version-current CLAUDE.md/AGENT.md policy snippet generated by `jcodemunch-mcp claude-md --generate`. This is clearly distinct from its siblings (set_tool_tier, announce_model, menu, order, route), which are all operational actions, so an agent can disambiguate without opening schemas.

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 explains why and when to call it: to keep a one-line CLAUDE.md instead of a static snippet that drifts from the installed version, and notes 'no repo context required' so it can be invoked standalone. It does not explicitly name alternatives or state when not to use it, but the clean use-case motivation covers the main guidance need.

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

orderA

Dispatch any jcodemunch action by name: order(action, args). The single-verb front door to the full tool catalog. Read-only by default — actions that change index/session state require allow_state_change=true, and execution/file-write verbs are refused. For exploration questions ('how does X work'), order('get_ranked_context', {repo, query, token_budget}) answers in ONE call — prefer it over chained search/outline/source hops; add compress=true to fit more symbols in the same budget. Call 'menu' to discover actions, or 'route' to pick one from a task.

NameRequiredDescriptionDefault
argsNoArguments for that action, exactly as you'd pass them directly.
actionYesName of the catalog action to run (e.g. 'search_symbols').
allow_state_changeNoOpt in to dispatching an index/session state-changing action (e.g. index_repo).

TDQS

A4.4/5.0
Behavior5/5

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

Despite openWorldHint=true and readOnlyHint=false in annotations, the description adds valuable behavioral detail: it is read-only by default, requires allow_state_change=true for state-changing actions, and refuses execution/file-write verbs. This goes beyond the annotation flags and helps an agent predict 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 dense but efficient. Each sentence adds functional value: the call pattern, read-only default, state-change opt-in, exploration recommendation, and menu/route routing. It could be slightly trimmed, but the structure is logical and front-loaded with the primary usage pattern.

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 generic dispatcher with no output schema and dynamic behavior, the description is impressively complete. It covers invocation, safety constraints, suggested use cases, and fallback tools for discovery. It does not describe return values, but given the open-world nature of dispatched actions, that is an acceptable omission.

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 coverage is 100%, so the baseline is 3. The description adds meaningful semantics by showing the call pattern order(action, args), explaining that args are passed 'exactly as you'd pass them directly,' and clarifying allow_state_change with a concrete example (index_repo). The compress=true hint further enriches parameter understanding.

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-resource pair ('dispatch any jcodemunch action by name') and positions itself as 'the single-verb front door to the full tool catalog.' It distinguishes itself somewhat from siblings by noting that 'menu' discovers actions and 'route' picks one, though it could more sharply contrast with 'route' as a dispatcher vs. a router.

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?

Excellent guidance: it explicitly recommends order('get_ranked_context', ...) for exploration questions over chained search/outline/source hops, suggests adding compress=true, and directs users to 'menu' for discovery or 'route' for task-based selection. It also states that execution/file-write verbs are refused, giving a clear boundary.

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

routeA

Map a natural-language task to the best catalog action(s): route(task, repo?, execute?). Returns ranked recommendations with ready-to-run argument templates. With execute=true, dispatches the top recommendation and returns its result in the same call, collapsing discover-then-call into one round-trip. Recommends assemble_task_context / plan_turn for context-gathering intents.

NameRequiredDescriptionDefault
repoNoRepository identifier (required to execute repo-scoped actions).
taskYesWhat you're trying to do, in plain language.
modelNoOptional active model id; piggybacks tier-switch like plan_turn(model=...).
executeNoIf true, dispatch the top recommended action and return its result.

TDQS

A4.2/5.0
Behavior4/5

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

The annotations provide readOnlyHint=false and openWorldHint=true, so the tool is not read-only. The description builds on this by disclosing that execute=true dispatches the top recommendation and returns the result, collapsing the discover-then-call flow into one round-trip. It also clarifies that without execute it returns recommendations only, giving the agent a clear behavioral model without contradicting annotations.

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, front-loaded with the core purpose, then explains the execution option and a usage hint for context-gathering intents. Every sentence 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.

Completeness4/5

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

For a router that can optionally execute, the description covers the main behavior (recommendations vs. execution), the return type (ranked recommendations with argument templates), and even suggests related tools for specific intents. It does not detail error handling or authentication, but these are not essential given the tool's simplicity and the presence of a schema with parameter semantics.

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?

The input schema contains full descriptions for all 4 parameters (100% coverage), including task, repo, model, and execute. The description does not add new parameter-specific semantics; it reiterates the execute behavior already documented. Given the schema covers meaning, the description adds no v、alue here, aligning with the baseline of 3.

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 'Map a natural-language task to the best catalog action(s)' – a specific verb + resource that clearly distinguishes it from sibling tools like set_tool_tier or menu, which are direct actions. It also describes its primary output (ranked recommendations) and the optional execution path, 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 Guidelines4/5

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

The description clarifies when to use the tool by indicating it is for natural-language task routing and explicitly recommends assemble_task_context / plan_turn for context-gathering intents. However, it does not explicitly state exclusions (e.g., 'use when you know the exact action'), though this is strongly implied by the router nature. It provides actionable context without being prescriptive about alternatives.

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

set_tool_tierA

Explicit tier override for the current session. Narrows or widens the exposed tool list to 'core' / 'standard' / 'full'. Prefer plan_turn(model=...) for routine per-task use; use set_tool_tier only when you need an explicit override (e.g. escalate mid-task to 'full' after a capability-gated failure).

NameRequiredDescriptionDefault
tierYes

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and openWorldHint=false, so agents know this is a mutating, closed-world operation. The description adds that it narrows/widens the exposed tool list and applies to the current session, which is useful context beyond the annotations. It doesn't disclose every side effect (e.g., persistence), but it's adequate given the annotation coverage.

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, front-loaded with the core purpose, then usage guidance. Every word earns its place with no filler or redundancy. Efficiently structured for quick comprehension.

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 single-parameter, no-output-schema tool, the description fully covers what it does, when to use it, and the allowed parameter values. There is nothing critical missing for a correct invocation.

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?

Schema has zero description coverage for the parameter, but the description lists the enum values ('core', 'standard', 'full') and explains their effect (narrow/widen tool list). This fully compensates for the schema gap, making the parameter's meaning clear without needing to open the schema.

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?

Clearly states a specific action (override tier for current session) and the resource (exposed tool list), and explicitly names the three allowed values. It also distinguishes itself from plan_turn, the routine alternative, so an agent can immediately tell what this tool is for.

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 explicit routing: prefer plan_turn(model=...) for routine per-task use, use set_tool_tier only for explicit overrides, and provides a concrete example (escalate mid-task to 'full' after a capability-gated failure). This leaves no ambiguity about when to pick this tool over the alternative.

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. 6 tool updatesv1.108.293
    • First observedannounce_model
    • First observedjcodemunch_guide
    • First observedmenu
    • First observedorder
    • First observedroute
    • First observedset_tool_tier

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation4/5

Tools are mostly distinct: tier management (set_tool_tier vs announce_model), discovery (menu vs route), dispatch (order), and policy (jcodemunch_guide) each have clear purposes. However, menu and route both aid in discovering actions, and set_tool_tier/announce_model both influence tier, so a small overlap exists but descriptions clarify boundaries.

Naming Consistency2/5

Naming is inconsistent: set_tool_tier and announce_model follow a verb_noun pattern, but menu, order, and route are single words, and jcodemunch_guide is a noun phrase. There is no uniform convention across the set, which makes the API slightly harder to predict.

Tool Count5/5

Six tools is well within the ideal range for a server focused on agent self-management and action dispatch. Each tool has a clear role, and the count feels neither thin nor bloated.

Completeness4/5

The surface covers the core lifecycle: tier control (set_tool_tier, announce_model), discovery (menu, route), dispatch (order), and policy guidance (jcodemunch_guide). Potential gaps like a direct 'get current tier' tool are minor and workaroundable via announce_model, so the set is largely complete for its stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers