Skip to main content
Glama

옐혼 MCP

Yellhorn 로고

Claude Code에서 전체 코드베이스를 사용하여 소프트웨어 개발 작업을 수행할 수 있도록 Gemini 2.5 Pro 및 OpenAI 기능을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 패턴은 Claude Code 또는 기타 MCP 호환 코딩 에이전트와 같은 코드 어시스턴트가 수행할 작업을 정의하고, 결과를 검토하여 원래 명시된 요구 사항을 정확히 충족하는지 확인하는 데 매우 유용합니다.

특징

  • 작업 계획 생성 : 프롬프트에 따라 자세한 구현 계획을 생성하고 전체 코드베이스를 고려하여 이를 GitHub 이슈로 게시하고 코딩 에이전트를 위한 MCP 리소스로 노출합니다.

  • Judge Code Diffs : 전체 코드베이스 컨텍스트를 사용하여 원래 작업 계획에 대한 git diff를 평가하는 도구를 제공하고 자세한 피드백을 제공하여 구현이 원래 요구 사항에서 벗어나지 않도록 보장하고 그렇게 하기 위해 무엇을 변경해야 하는지에 대한 지침을 제공합니다.

  • 원활한 GitHub 통합 : 레이블이 지정된 이슈를 자동으로 생성하고 원래 작업 계획 이슈에 대한 참조와 함께 판단 하위 이슈를 게시합니다.

  • 컨텍스트 제어 : .yellhornignore 파일을 사용하여 .gitignore 와 유사하게 AI 컨텍스트에서 특정 파일 및 디렉토리를 제외합니다.

  • MCP 리소스 : 작업 계획을 표준 MCP 리소스로 표시하여 쉽게 나열하고 검색할 수 있습니다.

Related MCP server: mcp-agent-review

설치

지엑스피1

구성

서버에는 다음과 같은 환경 변수가 필요합니다.

  • GEMINI_API_KEY : Gemini API 키(Gemini 모델에 필요)

  • OPENAI_API_KEY : OpenAI API 키(OpenAI 모델에 필요)

  • REPO_PATH : 저장소 경로(기본값은 현재 디렉토리)

  • YELLHORN_MCP_MODEL : 사용할 모델입니다(기본값은 "gemini-2.5-pro-preview-03-25"). 사용 가능한 옵션은 다음과 같습니다.

    • 제미니 모델: "gemini-2.5-pro-preview-03-25", "gemini-2.5-flash-preview-04-17"

    • OpenAI 모델: "gpt-4o", "gpt-4o-mini", "o4-mini", "o3"

서버를 사용하려면 GitHub CLI( gh )를 설치하고 인증해야 합니다.

용법

시작하기

VSCode/커서 설정

VSCode 또는 Cursor에서 Yellhorn MCP를 구성하려면 다음 내용이 포함된 작업 공간 루트에 .vscode/mcp.json 파일을 만듭니다.

{
  "inputs": [
    {
      "type": "promptString",
      "id": "gemini-api-key",
      "description": "Gemini API Key"
    }
  ],
  "servers": {
    "yellhorn-mcp": {
      "type": "stdio",
      "command": "/Users/msnidal/.pyenv/shims/yellhorn-mcp",
      "args": [],
      "env": {
        "GEMINI_API_KEY": "${input:gemini-api-key}",
        "REPO_PATH": "${workspaceFolder}"
      }
    }
  }
}

클로드 코드 설정

Claude Code를 사용하여 Yellhorn MCP를 직접 구성하려면 다음 내용이 포함된 루트 수준 .mcp.json 파일을 프로젝트에 추가하세요.

{
  "mcpServers": {
    "yellhorn-mcp": {
      "type": "stdio",
      "command": "yellhorn-mcp",
      "args": ["--model", "o3"],
      "env": {}
    }
  }
}

도구

작업 계획을 만듭니다

제목과 자세한 설명을 기반으로 자세한 작업 계획을 담은 GitHub 이슈를 생성합니다.

입력 :

  • title : GitHub 이슈의 제목(이슈 제목 및 헤더로 사용됨)

  • detailed_description : 작업 계획에 대한 자세한 설명

  • codebase_reasoning : (선택 사항) AI 향상을 수행할지 여부를 제어합니다.

    • "full" : (기본값) AI를 사용하여 전체 코드베이스 컨텍스트로 작업 계획을 향상시킵니다.

    • "lsp" : 가벼운 코드베이스 컨텍스트(Python 및 Go의 함수/메서드 시그니처, 클래스 속성 및 구조체 필드)를 사용하여 AI를 사용합니다.

    • "none" : AI 향상을 건너뛰고 제공된 설명을 그대로 사용합니다.

  • debug : (선택 사항) true 로 설정하면 생성에 사용되는 전체 프롬프트와 함께 문제에 대한 주석이 추가됩니다.

출력 :

  • JSON 문자열에는 다음이 포함됩니다.

    • issue_url : 생성된 GitHub 이슈에 대한 URL

    • issue_number : GitHub 이슈 번호

get_workplan

작업 계획과 관련된 작업 계획 콘텐츠(GitHub 이슈 본문)를 검색합니다.

입력 :

  • issue_number : 작업 계획에 대한 GitHub 이슈 번호입니다.

출력 :

  • 작업 계획 문제의 내용을 문자열로 표현

판사_업무 계획

GitHub 이슈에 설명된 작업 계획을 기준으로 두 개의 git 참조(브랜치 또는 커밋)를 비교하는 비동기 코드 판단을 실행합니다. 실행 후(백그라운드에서) 해당 판단을 포함하는 GitHub 하위 이슈를 비동기적으로 생성합니다.

입력 :

  • issue_number : 작업 계획에 대한 GitHub 이슈 번호입니다.

  • base_ref : 비교를 위한 기본 Git 참조(커밋 SHA, 브랜치 이름, 태그). 기본값은 'main'입니다.

  • head_ref : 비교를 위한 헤드 Git 참조(커밋 SHA, 브랜치 이름, 태그). 기본값은 'HEAD'입니다.

  • codebase_reasoning : (선택 사항) 제공되는 코드베이스 컨텍스트를 제어합니다.

    • "full" : (기본값) 전체 코드베이스 컨텍스트를 사용합니다.

    • "lsp" : 더 가벼운 코드베이스 컨텍스트를 사용합니다(Python 및 Go에 대한 함수 시그니처만 포함, 전체 diff 파일 포함)

    • "none" : 가장 빠른 처리를 위해 코드베이스 컨텍스트를 완전히 건너뜁니다.

  • debug : (선택 사항) true 로 설정하면 생성에 사용되는 전체 프롬프트와 함께 하위 문제에 주석이 추가됩니다.

출력 :

  • 판단 작업이 시작되었음을 알리는 확인 메시지

리소스 액세스

Yellhorn MCP는 또한 작업 계획에 대한 액세스를 제공하기 위해 표준 MCP 리소스 API를 구현합니다.

  • list-resources : 모든 작업 계획을 나열합니다(yellhorn-mcp 레이블이 있는 GitHub 문제)

  • get-resource : 이슈 번호별로 특정 작업 계획의 내용을 검색합니다.

이러한 기능은 표준 MCP CLI 명령을 통해 액세스할 수 있습니다.

# List all workplans
mcp list-resources yellhorn-mcp

# Get a specific workplan by issue number
mcp get-resource yellhorn-mcp 123

개발

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage report
pytest --cov=yellhorn_mcp --cov-report term-missing

CI/CD

이 프로젝트에서는 지속적인 통합 및 배포를 위해 GitHub Actions를 사용합니다.

  • 테스트 : 풀 리퀘스트에서 자동으로 실행되고 메인 브랜치에 푸시됩니다.

    • flake8로 린팅하기

    • 검은색으로 형식 검사

    • pytest로 테스트하기

  • 게시 : 버전 태그가 푸시되면 PyPI에 자동으로 게시됩니다.

    • 태그는 pyproject.toml의 버전과 일치해야 합니다(예: v0.2.2)

    • GitHub 저장소 비밀(PYPI_API_TOKEN)로 저장된 PyPI API 토큰이 필요합니다.

새 버전을 출시하려면:

  1. pyproject.toml 및 yellhorn_mcp/__init__.py에서 버전을 업데이트합니다.

  2. 새로운 변경 사항으로 CHANGELOG.md를 업데이트하세요.

  3. 변경 사항 커밋: git commit -am "Bump version to XYZ"

  4. 커밋에 태그를 지정합니다: git tag vX.YZ

  5. 변경 사항 및 태그 푸시: git push && git push --tags

변경 내역을 보려면 변경 로그를 참조하세요.

더 자세한 지침은 사용 가이드를 참조하세요.

특허

MIT

Available Tools

5 tools
create_workplanA

Creates a GitHub issue with a detailed implementation plan.

This tool will:

  1. Create a GitHub issue immediately with the provided title and description

  2. Launch a background AI process to generate a comprehensive workplan

  3. Update the issue with the generated workplan once complete

The AI will analyze your entire codebase (respecting .gitignore) to create a detailed plan with:

  • Specific files to modify/create

  • Code snippets and examples

  • Step-by-step implementation instructions

  • Testing strategies

Codebase reasoning modes:

  • "full": Complete file contents (most comprehensive)

  • "lsp": Function signatures and docstrings only (lighter weight)

  • "file_structure": Directory tree only (fastest)

  • "none": No codebase context

Returns the created issue URL and number immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
detailed_descriptionYes
codebase_reasoningNofull
debugNo
disable_search_groundingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden and does well by disclosing key behaviors: immediate issue creation, background AI process, codebase analysis respecting .gitignore, and return of issue URL/number. It lacks details on permissions, rate limits, or error handling, but provides substantial operational context.

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-structured with bullet points and clear sections, front-loaded with the main purpose. Every sentence adds value, such as explaining the process steps and codebase modes, without redundancy or fluff.

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 5 parameters with 0% schema coverage and an output schema (which handles return values), the description is mostly complete. It covers the tool's process and key parameter semantics but misses some parameter details and behavioral aspects like error cases, making it slightly incomplete for full 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?

Schema description coverage is 0%, so the description must compensate. It explains codebase_reasoning modes in detail (full, lsp, file_structure, none), adding meaning beyond the schema. However, it doesn't clarify title, detailed_description, debug, or disable_search_grounding parameters, leaving some gaps.

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 creates a GitHub issue with an implementation plan, specifying it's for GitHub issues and distinguishes from siblings like get_workplan (retrieval) and revise_workplan (modification). The verb 'creates' and resource 'GitHub issue' are specific 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 Guidelines4/5

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

The description implies usage when needing a detailed implementation plan for a codebase, with context on codebase reasoning modes for different scenarios. However, it doesn't explicitly state when to use this versus alternatives like curate_context or judge_workplan, or any prerequisites for GitHub access.

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

curate_contextA

Analyzes the codebase and creates a .yellhorncontext file listing directories to be included in AI context.

This tool helps optimize AI context by:

  1. Analyzing your codebase structure

  2. Understanding the task you want to accomplish

  3. Creating a .yellhorncontext file that lists relevant directories

  4. Subsequent workplan/judgement calls will only include files from these directories

The .yellhorncontext file acts as a whitelist - only files matching the patterns will be included. This significantly reduces token usage and improves AI focus on relevant code.

Example .yellhorncontext: src/api/ src/models/ tests/api/ *.config.js

ParametersJSON Schema
NameRequiredDescriptionDefault
user_taskYes
codebase_reasoningNofile_structure
ignore_file_pathNo.yellhornignore
output_pathNo.yellhorncontext
disable_search_groundingNo
debugNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden of behavioral disclosure. It effectively describes key behaviors: it analyzes codebase structure, creates a whitelist file, reduces token usage, and improves AI focus. However, it lacks details on potential side effects (e.g., file overwriting), error handling, or performance characteristics like rate limits, leaving some gaps for a tool with significant impact.

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 well-structured and front-loaded with the core purpose, followed by a bulleted list of steps and benefits. It's appropriately sized for a complex tool, though the example section could be slightly trimmed without losing clarity. Every sentence contributes to understanding, with minimal redundancy.

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 complexity (6 parameters, no annotations) and the presence of an output schema (which handles return values), the description is mostly complete. It explains the tool's role, benefits, and output format (.yellhorncontext file). However, it lacks details on parameter interactions or edge cases, which could aid in more robust usage, leaving room for slight improvement.

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 mentions analyzing 'codebase structure' and 'the task you want to accomplish,' which loosely relates to parameters like user_task and codebase_reasoning, but doesn't explain specific semantics (e.g., what user_task entails or how ignore_file_path works). The example .yellhorncontext file adds some context but doesn't directly clarify parameters, resulting in marginal value over 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?

The description explicitly states the tool's purpose: 'Analyzes the codebase and creates a .yellhorncontext file listing directories to be included in AI context.' It uses specific verbs ('analyzes,' 'creates') and identifies the resource (codebase, .yellhorncontext file), clearly distinguishing it from sibling tools like create_workplan or judge_workplan, which focus on different aspects of the workflow.

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 guidance on when to use this tool: 'This tool helps optimize AI context' and 'Subsequent workplan/judgement calls will only include files from these directories.' It implicitly distinguishes it from siblings by highlighting its role in context curation before other steps, though it doesn't explicitly name alternatives, the context makes the workflow clear.

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

get_workplanB

Retrieves the workplan content (GitHub issue body) for a specified issue number.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 states it's a retrieval operation, implying read-only behavior, but doesn't cover critical aspects like authentication requirements, rate limits, error handling (e.g., if the issue doesn't exist), or response format. The mention of 'GitHub issue body' adds some context, but overall, behavioral traits are minimally described for a tool with no 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?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('retrieves') and resource, making it easy to parse. Every part of the sentence adds value, such as specifying 'GitHub issue body,' and there's no redundancy or 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?

Given the tool's low complexity (one parameter) and the presence of an output schema (which likely covers return values), the description is somewhat complete but has gaps. It adequately explains what the tool does but lacks usage guidelines, behavioral details (like error cases), and doesn't fully compensate for the 0% schema coverage. For a simple retrieval tool, it's minimally viable but could be more informative.

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 description adds meaning by specifying that the 'issue_number' parameter corresponds to a GitHub issue, which clarifies its purpose beyond the schema's generic title. However, with 0% schema description coverage and only one parameter, the baseline is 3, as the schema lacks descriptions but the description provides some compensation. It doesn't detail format constraints (e.g., numeric string) or examples, leaving 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 clearly states the verb ('retrieves') and resource ('workplan content'), specifying it's the GitHub issue body for a given issue number. It distinguishes from siblings like create_workplan or revise_workplan by focusing on retrieval rather than creation or modification. However, it doesn't explicitly differentiate from other read operations like curate_context or judge_workplan, which may also involve reading workplan data.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), exclusions (e.g., not for creating or editing), or comparisons to siblings like curate_context or judge_workplan, which might also access workplan content. Usage is implied by the verb 'retrieves,' but no explicit context or alternatives are stated.

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

judge_workplanA

Triggers an asynchronous code judgement comparing two git refs against a workplan.

This tool will:

  1. Create a sub-issue linked to the workplan immediately

  2. Launch a background AI process to analyze the code changes

  3. Update the sub-issue with the judgement once complete

The judgement will evaluate:

  • Whether the implementation follows the workplan

  • Code quality and completeness

  • Missing or incomplete items

  • Suggestions for improvement

Supports comparing:

  • Branches (e.g., feature-branch vs main)

  • Commits (e.g., abc123 vs def456)

  • PR changes (automatically uses PR's base and head)

Returns the sub-issue URL immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_numberYes
base_refNomain
head_refNoHEAD
codebase_reasoningNofull
debugNo
disable_search_groundingNo
subissue_to_updateNo
pr_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 and does so well. It discloses key behavioral traits: the process is asynchronous, creates a sub-issue, launches a background AI analysis, and updates the sub-issue upon completion. It also details what the judgement evaluates (e.g., workplan adherence, code quality) and the immediate return of a sub-issue URL, covering most operational aspects.

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 appropriately sized and front-loaded, starting with the core purpose. Each sentence adds value: the bullet points clarify steps and evaluation criteria, and the final sentence states the return. There is no wasted text, making it efficient and well-structured for quick understanding.

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 complexity (asynchronous AI process, 8 parameters) and no annotations, the description is largely complete, covering purpose, behavior, and output. It mentions an output schema exists, so return values need not be detailed. However, it could improve by addressing parameter specifics or error handling, but it's sufficient for effective tool use.

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 adds meaning by explaining the types of comparisons supported (branches, commits, PRs), which relates to parameters like base_ref and head_ref. However, it does not detail other parameters (e.g., codebase_reasoning, debug), leaving gaps. The baseline is lowered due to incomplete coverage of the 8 parameters.

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's purpose: 'Triggers an asynchronous code judgement comparing two git refs against a workplan.' It specifies the verb ('triggers'), resource ('code judgement'), and scope ('against a workplan'), distinguishing it from sibling tools like create_workplan or revise_workplan, which focus on workplan creation or modification rather than evaluation.

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 context for when to use this tool: for comparing code changes (branches, commits, PRs) against a workplan. It does not explicitly mention when not to use it or name alternatives among siblings (e.g., get_workplan for retrieval), but the focus on judgement implies it's for evaluation scenarios, offering adequate guidance.

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

revise_workplanA

Updates an existing workplan based on revision instructions.

This tool will:

  1. Fetch the existing workplan from the specified GitHub issue

  2. Launch a background AI process to revise the workplan based on your instructions

  3. Update the issue with the revised workplan once complete

The AI will use the same codebase analysis mode and model as the original workplan.

Returns the issue URL and number immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_numberYes
revision_instructionsYes
codebase_reasoningNofull
debugNo
disable_search_groundingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden and provides good behavioral context: it describes a multi-step process (fetch, AI revision, update), mentions background execution, specifies AI uses same analysis mode/model as original, and notes immediate return of issue URL/number. It doesn't cover permissions, rate limits, or error handling, but adds substantial value beyond basic purpose.

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-structured and front-loaded: the first sentence states the purpose, followed by a bulleted list of steps and additional details. Every sentence adds value—no repetition or waste—making it efficient and easy to parse.

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 5 parameters with 0% schema coverage, no annotations, and an output schema (which handles return values), the description does well by explaining the core process and key parameters. It could improve by covering optional parameters and more behavioral aspects like error cases, but it's largely complete for a mutation tool with output schema support.

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 implicitly explains 'issue_number' (fetches from GitHub issue) and 'revision_instructions' (basis for AI revision), covering the two required parameters. However, it doesn't address optional parameters like 'codebase_reasoning' or 'debug', leaving some gaps in parameter understanding.

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's purpose: 'Updates an existing workplan based on revision instructions.' It specifies the verb ('Updates'), resource ('existing workplan'), and distinguishes from siblings like 'create_workplan' (creates new) and 'get_workplan' (reads only). The three-step breakdown further clarifies the scope.

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?

Usage is implied by mentioning it updates an existing workplan from a GitHub issue, suggesting it's for revisions after creation. However, it lacks explicit guidance on when to use this vs. alternatives like 'create_workplan' for new workplans or 'judge_workplan' for evaluation, and doesn't mention prerequisites or exclusions.

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. 7 tool updatesv1.0.0
    • Addedcreate_workplan
    • Addedcurate_context
    • Removedgenerate_work_plan
    • Addedget_workplan
    • Addedjudge_workplan
    • Removedreview_work_plan
    • Addedrevise_workplan
  2. 2 tool updates
    • First observedgenerate_work_plan
    • First observedreview_work_plan

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct primary purpose: create_workplan initiates planning, curate_context manages codebase context, get_workplan retrieves plans, judge_workplan evaluates implementations, and revise_workplan updates plans. There is minor potential overlap between create_workplan and revise_workplan (both generate/update workplans), but their distinct triggers and descriptions help differentiate them effectively.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (e.g., create_workplan, judge_workplan, revise_workplan). The verbs are clear and descriptive, and the snake_case style is uniformly applied across all five tools, making the set predictable and easy to navigate.

Tool Count5/5

With 5 tools, the server is well-scoped for its purpose of managing AI-driven workplan creation and evaluation in GitHub contexts. Each tool serves a specific, necessary function in the workflow, from planning to context curation to judgement, without redundancy or bloat, fitting a typical range for focused MCP servers.

Completeness4/5

The tool set covers the core lifecycle of workplan management: creation (create_workplan), retrieval (get_workplan), revision (revise_workplan), and evaluation (judge_workplan), with context optimization (curate_context) as a supporting function. A minor gap exists in direct deletion or archiving of workplans, but agents can likely handle this through GitHub's native tools, and the coverage supports end-to-end workflows effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers