Skip to main content
Glama
PhialsBasement

GitHub MCP Server Plus

GitHub MCP 服务器 Plus

npm 下载

GitHub API 的 MCP 服务器,支持文件操作、存储库管理、搜索功能等。

特征

  • 自动创建分支:创建/更新文件或推送更改时,如果分支不存在,则会自动创建分支

  • 全面的错误处理:针对常见问题的清晰错误消息

  • Git 历史记录保存:操作无需强制推送即可维护正确的 Git 历史记录

  • 批量操作:支持内容或文件路径的单文件和多文件操作

  • 高级搜索:支持搜索代码、问题/PR 和用户

工具

  1. create_or_update_file

    • 在存储库中创建或更新单个文件

    • 输入:

      • owner (字符串):存储库所有者(用户名或组织)

      • repo (字符串):存储库名称

      • path (字符串):创建/更新文件的路径

      • content (字符串):文件的内容

      • message (字符串):提交消息

      • branch (字符串):创建/更新文件的分支

      • sha (可选字符串):被替换文件的 SHA(用于更新)

    • 返回:文件内容和提交详细信息

  2. push_files_content

    • 在一次提交中推送具有直接内容的多个文件

    • 输入:

      • owner (字符串):存储库所有者

      • repo (字符串):存储库名称

      • branch (字符串):要推送到的分支

      • files (数组):要推送的文件,每个文件都有path和content

      • message (字符串):提交消息

    • 返回:更新的分支参考

  3. push_files_from_path

    • 在一次提交中从文件系统路径推送多个文件

    • 输入:

      • owner (字符串):存储库所有者

      • repo (字符串):存储库名称

      • branch (字符串):要推送到的分支

      • files (数组):要推送的文件,每个文件包含:

        • path (字符串):存储库中的目标路径

        • filepath (字符串):要读取的源文件系统路径

      • message (字符串):提交消息

    • 返回:更新的分支参考

  4. search_repositories

    • 搜索 GitHub 存储库

    • 输入:

      • query (字符串):搜索查询

      • page (可选数字):分页的页码

      • perPage (可选数字):每页结果数(最多 100 条)

    • 返回:存储库搜索结果

  5. create_repository

    • 创建一个新的 GitHub 存储库

    • 输入:

      • name (字符串):存储库名称

      • description (可选字符串):存储库描述

      • private (可选布尔值):repo 是否应为私有

      • autoInit (可选布尔值):使用 README 初始化

    • 返回:创建的存储库详细信息

  6. get_file_contents

    • 获取文件或目录的内容

    • 输入:

      • owner (字符串):存储库所有者

      • repo (字符串):存储库名称

      • path (字符串):文件/目录的路径

      • branch (可选字符串):从中获取内容的分支

    • 返回:文件/目录内容

  7. create_issue

    • 创建新问题

    • 输入:

      • owner (字符串):存储库所有者

      • repo (字符串):存储库名称

      • title (字符串):问题标题

      • body (可选字符串):问题描述

      • assignees (可选字符串[]):要分配的用户名

      • labels (可选字符串[]):要添加的标签

      • milestone (可选数字):里程碑编号

    • 返回:创建问题详情

  8. create_pull_request

    • 创建新的拉取请求

    • 输入:

      • owner (字符串):存储库所有者

      • repo (字符串):存储库名称

      • title (字符串):PR 标题

      • body (可选字符串):PR 描述

      • head (字符串):包含更改的分支

      • base (字符串):要合并到的分支

      • draft (可选布尔值):创建为 PR 草稿

      • maintainer_can_modify (可选布尔值):允许维护者编辑

    • 返回:创建的拉取请求详细信息

  9. fork_repository

    • 派生一个存储库

    • 输入:

      • owner (字符串):存储库所有者

      • repo (字符串):存储库名称

      • organization (可选字符串):要分叉的组织

    • 返回:分叉存储库详细信息

  10. create_branch

  • 创建新分支

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • branch (字符串):新分支的名称

    • from_branch (可选字符串):源分支(默认为 repo default)

  • 返回:创建的分支引用

  1. list_issues

  • 列出并过滤存储库问题

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • state (可选字符串):按状态过滤('打开','关闭','全部')

    • labels (可选字符串[]):按标签过滤

    • sort (可选字符串):按('创建','更新','评论')排序

    • direction (可选字符串):排序方向('asc','desc')

    • since (可选字符串):按日期过滤(ISO 8601 时间戳)

    • page (可选数字):页码

    • per_page (可选数字):每页结果数

  • 返回:问题详细信息数组

  1. update_issue

  • 更新现有问题

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • issue_number (数字):要更新的问题编号

    • title (可选字符串):新标题

    • body (可选字符串):新的描述

    • state (可选字符串):新状态(“打开”或“关闭”)

    • labels (可选字符串[]):新标签

    • assignees (可选字符串[]):新受让人

    • milestone (可选数字):新的里程碑编号

  • 返回:更新的问题详情

  1. add_issue_comment

  • 向问题添加评论

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • issue_number (数字):要评论的问题编号

    • body (字符串):评论文本

  • 返回:创建的评论详情

  1. search_code

  • 在 GitHub 存储库中搜索代码

  • 输入:

    • q (字符串):使用 GitHub 代码搜索语法的搜索查询

    • sort (可选字符串):排序字段(仅限“索引”)

    • order (可选字符串):排序顺序('asc' 或 'desc')

    • per_page (可选数字):每页结果数(最多 100 条)

    • page (可选数字):页码

  • 返回:带有存储库上下文的代码搜索结果

  1. search_issues

  • 搜索问题和拉取请求

  • 输入:

    • q (字符串):使用 GitHub 问题搜索语法进行搜索查询

    • sort (可选字符串):排序字段(评论、反应、创建等)

    • order (可选字符串):排序顺序('asc' 或 'desc')

    • per_page (可选数字):每页结果数(最多 100 条)

    • page (可选数字):页码

  • 返回:问题和拉取请求搜索结果

  1. search_users

  • 搜索 GitHub 用户

  • 输入:

    • q (字符串):使用 GitHub 用户搜索语法的搜索查询

    • sort (可选字符串):排序字段(关注者、存储库、加入)

    • order (可选字符串):排序顺序('asc' 或 'desc')

    • per_page (可选数字):每页结果数(最多 100 条)

    • page (可选数字):页码

  • 返回:用户搜索结果

  1. list_commits

  • 获取存储库中分支的提交

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • page (可选字符串):页码

    • per_page (可选字符串):每页记录数

    • sha (可选字符串):分支名称

  • 返回:提交列表

  1. get_issue

  • 获取存储库中问题的内容

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • issue_number (数字):要检索的问题编号

  • 返回:GitHub Issue 对象和详细信息

  1. get_pull_request

  • 获取特定拉取请求的详细信息

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

  • 返回:拉取请求详细信息,包括差异和审核状态

  1. list_pull_requests

  • 列出并过滤存储库拉取请求

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • state (可选字符串):按状态过滤('打开','关闭','全部')

    • head (可选字符串):按主管用户/组织和分支进行过滤

    • base (可选字符串):按基本分支过滤

    • sort (可选字符串):按('创建','更新','受欢迎程度','长期运行')排序

    • direction (可选字符串):排序方向('asc','desc')

    • per_page (可选数字):每页结果数(最多 100 条)

    • page (可选数字):页码

  • 返回:拉取请求详细信息数组

  1. create_pull_request_review

  • 对拉取请求创建评论

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

    • body (字符串):评论文本

    • event (字符串):审查操作('APPROVE','REQUEST_CHANGES','COMMENT')

    • commit_id (可选字符串):提交审核的 SHA

    • comments (可选数组):特定于行的注释,每行包含:

      • path (字符串):文件路径

      • position (数字):差异中的行位置

      • body (字符串):评论文本

  • 返回:创建评论详情

  1. merge_pull_request

  • 合并拉取请求

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

    • commit_title (可选字符串):合并提交的标题

    • commit_message (可选字符串):合并提交的额外详细信息

    • merge_method (可选字符串):合并方法('merge','squash','rebase')

  • 返回:合并结果详情

  1. get_pull_request_files

  • 获取拉取请求中更改的文件列表

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

  • 返回:包含补丁和状态详细信息的已更改文件数组

  1. get_pull_request_status

  • 获取拉取请求所有状态检查的综合状态

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

  • 返回:综合状态检查结果和个人检查详情

  1. update_pull_request_branch

  • 使用基础分支中的最新更改来更新拉取请求分支

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

    • expected_head_sha (可选字符串):拉取请求的 HEAD ref 的预期 SHA

  • 返回:分支更新时的成功消息

  1. get_pull_request_comments

  • 获取拉取请求的审核意见

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

  • 返回:拉取请求评论数组

  1. get_pull_request_reviews

  • 获取拉取请求的评论

  • 输入:

    • owner (字符串):存储库所有者

    • repo (字符串):存储库名称

    • pull_number (数字):拉取请求编号

  • 返回:拉取请求评论数组

Related MCP server: mcp-github

搜索查询语法

代码搜索

  • language:javascript :按编程语言搜索

  • repo:owner/name :在特定存储库中搜索

  • path:app/src :在特定路径中搜索

  • extension:js :按文件扩展名搜索

  • 例如: q: "import express" language:typescript path:src/

问题搜索

  • is:issue或is:pr :按类型过滤

  • is:open或is:closed :按状态过滤

  • label:bug :按标签搜索

  • author:username :按作者搜索

  • 例如: q: "memory leak" is:issue is:open label:bug

用户搜索

  • type:user或type:org :按帐户类型过滤

  • followers:>1000 :按关注者过滤

  • location:London :按地点搜索

  • 例如: q: "fullstack developer" location:London followers:>100

有关详细的搜索语法,请参阅GitHub 的搜索文档。

设置

个人访问令牌

创建具有适当权限的 GitHub 个人访问令牌:

  • 转到个人访问令牌(在 GitHub 设置 > 开发人员设置中)

  • 选择您希望此令牌可以访问的存储库(公共、全部或选择)

  • 创建具有repo范围的令牌(“完全控制私有存储库”)

    • 或者,如果仅使用公共存储库,则仅选择public_repo范围

  • 复制生成的token

与 Claude Desktop 一起使用

要将其与 Claude Desktop 一起使用,请将以下内容添加到您的claude_desktop_config.json中:

Docker

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "mcp/github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

NPX

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

建造

Docker 构建:

docker build -t mcp/github -f src/github/Dockerfile .

执照

此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。

Available Tools

18 tools
add_issue_commentC

Add a comment to an existing issue

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
issue_numberYes
bodyYes

TDQS

C2.7/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 full burden for behavioral disclosure. While 'Add a comment' implies a write/mutation operation, the description doesn't address critical aspects like required permissions, rate limits, whether the comment is editable/deletable, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 with zero wasted words. It's appropriately sized for a simple tool and front-loads the core purpose immediately. Every word earns its place in conveying the essential action.

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 a mutation tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't address parameter meanings, behavioral traits, or output expectations. While conciseness is good, the description lacks necessary context for the agent to use this tool effectively beyond basic inference from the name.

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%, meaning none of the 4 parameters (owner, repo, issue_number, body) are documented in the schema. The description adds no parameter information beyond what's implied by the tool name ('issue' hints at issue_number). It doesn't explain what 'owner' and 'repo' refer to, the format of 'issue_number', or constraints on 'body'. This fails to compensate for the schema's lack of 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 clearly states the action ('Add a comment') and target resource ('to an existing issue'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential sibling tools like 'update_issue' or 'create_issue' that might also involve commenting functionality, which prevents a perfect score.

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., issue must exist), exclusions, or comparisons to sibling tools like 'update_issue' or 'get_issue' that might be relevant in different contexts. The agent receives minimal contextual direction.

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

create_branchC

Create a new branch in a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
branchYesName for the new branch
from_branchNoOptional: source branch to create from (defaults to the repository's default branch)

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 states the action ('Create') which implies a write operation, but doesn't mention permission requirements, rate limits, whether the branch becomes active immediately, or what happens on failure. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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 gets straight to the point with no wasted words. It's appropriately sized for a straightforward tool and front-loads the essential information.

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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address authentication requirements, error conditions, what the tool returns, or how it differs from related operations. The 100% schema coverage helps with parameters, but overall context for safe and effective use is lacking.

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 schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline expectation when the schema does the heavy lifting, but doesn't provide additional context about parameter relationships or constraints.

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 ('Create') and resource ('new branch in a GitHub repository'), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'fork_repository' or 'create_pull_request' which also involve branch-like operations, but it's sufficiently specific for basic understanding.

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 (like authentication needs), when not to use it, or how it relates to sibling tools like 'create_pull_request' or 'fork_repository' which might be alternatives for certain scenarios.

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

create_issueC

Create a new issue in a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
titleYes
bodyNo
assigneesNo
milestoneNo
labelsNo

TDQS

C2.8/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 burden for behavioral disclosure but offers minimal information. It states it creates an issue but doesn't describe what happens after creation (e.g., issue number assignment, notifications), authentication requirements, rate limits, error conditions, or whether the operation is idempotent. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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 gets straight to the point with zero wasted words. It's appropriately front-loaded with the core action and resource, making it easy to parse quickly despite its brevity.

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 mutation tool with 7 parameters, 0% schema description coverage, no annotations, and no output schema, the description is insufficiently complete. It covers the basic purpose but lacks crucial details about parameters, behavioral expectations, error handling, and output format. The agent would need to guess about many aspects of tool invocation.

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 0% schema description coverage for 7 parameters, the description provides no parameter information beyond what's implied by the tool name. It doesn't explain what 'owner', 'repo', 'title', 'body', 'assignees', 'labels', or 'milestone' represent, their formats, or constraints. The description fails to compensate for the complete lack of 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 clearly states the action ('Create a new issue') and target resource ('in a GitHub repository'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'update_issue' or 'get_issue' by specifying creation rather than modification or retrieval. However, it doesn't explicitly differentiate from other creation tools like 'create_project' or 'create_pull_request' beyond the resource type.

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., repository access), when not to use it (e.g., for updating existing issues), or how it differs from similar creation tools like 'create_pull_request'. The agent must infer usage from the tool name and context alone.

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

create_or_update_fileC

Create or update a single file in a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
pathYesPath where to create/update the file
contentYesContent of the file
messageYesCommit message
branchYesBranch to create/update the file in
shaNoSHA of the file being replaced (required when updating existing files)

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 of behavioral disclosure. It states the action but doesn't mention critical details like required permissions (e.g., write access to the repo), whether it's idempotent, potential side effects (e.g., creating commits), or error handling. This is a significant gap for a mutation tool with zero 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 any fluff. It's front-loaded and wastes no words, making it easy for an agent to parse quickly.

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 complexity of a file mutation tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It lacks details on behavior, usage context, and output format, leaving the agent with insufficient information to use the tool effectively beyond basic parameter passing.

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 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining parameter interactions or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('create or update') and resource ('a single file in a GitHub repository'), making the purpose unambiguous. However, it doesn't distinguish this tool from sibling tools like 'push_files' or 'get_file_contents', which might handle similar file operations, so it doesn't reach the highest score.

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. For example, it doesn't clarify if this is preferred over 'push_files' for single-file operations or when to use 'get_file_contents' for reading instead. This lack of context leaves the agent to guess based on tool names alone.

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

create_pull_requestC

Create a new pull request in a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
titleYesPull request title
bodyNoPull request body/description
headYesThe name of the branch where your changes are implemented
baseYesThe name of the branch you want the changes pulled into
draftNoWhether to create the pull request as a draft
maintainer_can_modifyNoWhether maintainers can modify the pull request

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 full burden for behavioral disclosure but only states the basic action. It doesn't mention that this is a write operation (implied by 'create'), potential authentication requirements, rate limits, error conditions, or what happens on success (e.g., returns a PR object). For a mutation tool with zero annotation coverage, this is insufficient.

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 states the core function without unnecessary words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point.

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 complex write operation with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation, error handling, authentication needs, or how this differs from similar tools. The schema handles parameter documentation, but the description fails to provide necessary behavioral context.

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 no parameter-specific information beyond what's already in the schema (which has 100% coverage with clear descriptions for all 8 parameters). This meets the baseline of 3 for high schema coverage, but doesn't provide additional context like parameter relationships or GitHub-specific conventions.

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 ('create') and resource ('new pull request in a GitHub repository'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'merge_pull_request' or 'update_pull_request_branch', which would require explicit differentiation for a perfect score.

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 like 'create_issue' or 'list_pull_requests', nor does it mention prerequisites such as having appropriate repository permissions or existing branches. It's a basic statement of function without contextual usage information.

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

create_repositoryC

Create a new GitHub repository in your account

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRepository name
descriptionNoRepository description
privateNoWhether the repository should be private
autoInitNoInitialize with README.md

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 full burden but only states the basic action. It doesn't disclose behavioral traits like authentication requirements, rate limits, whether it's idempotent, what happens on duplicate names, or what the response contains. For a mutation tool with zero annotation coverage, this is inadequate.

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 gets straight to the point with zero wasted words. It's appropriately sized and front-loaded with the essential information.

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 mutation tool that creates resources with 4 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what happens after creation, error conditions, authentication needs, or how it differs from similar tools. The context demands more completeness than provided.

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 100%, so the schema already documents all 4 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, but it correctly implies the 'name' parameter is central. Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('Create') and resource ('new GitHub repository in your account'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'fork_repository' or specify what type of account (user vs. organization), which prevents a perfect score.

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 provided on when to use this tool versus alternatives like 'fork_repository' or 'create_project'. The description only states what it does without context about prerequisites, when it's appropriate, or what happens after creation.

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

fork_repositoryC

Fork a GitHub repository to your account or specified organization

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
organizationNoOptional: organization to fork to (defaults to your personal account)

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 full burden but offers minimal behavioral context. It states the action but doesn't disclose critical traits like authentication requirements, rate limits, whether it's a write operation, what happens on success/failure, or if it triggers notifications. 'Fork' implies a write, but this isn't explicitly confirmed.

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 with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly.

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 mutation tool (forking implies writing) with no annotations and no output schema, the description is incomplete. It lacks details on authentication, permissions, error handling, return values, or how it fits into the GitHub workflow context. This leaves significant gaps for an AI agent to use it correctly.

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 100%, so the schema fully documents all three parameters (owner, repo, organization). The description adds no additional meaning beyond implying the default behavior for 'organization' (personal account), which is already covered in the schema description. Baseline 3 is appropriate as the schema does the heavy lifting.

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 ('Fork') and resource ('a GitHub repository') with the destination ('to your account or specified organization'). It's specific but doesn't explicitly differentiate from siblings like 'create_repository' which creates a new repository rather than forking an existing one.

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 provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication, permissions), when not to use it, or how it compares to similar tools like 'create_repository' or 'clone' operations.

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

get_file_contentsC

Get the contents of a file or directory from a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
pathYesPath to the file or directory
branchNoBranch to get contents from

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 but offers minimal information. It mentions reading ('Get') but doesn't specify whether this requires authentication, rate limits, what happens with non-existent paths, or if it returns raw content vs. metadata. For a tool with 4 parameters and no annotation coverage, this is insufficient.

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 front-loads the core functionality without unnecessary words. Every part of the sentence ('Get the contents of a file or directory from a GitHub repository') directly contributes to understanding the tool's purpose.

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 (4 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain return values (e.g., file content vs. directory listing), error conditions, or authentication requirements. For a read operation in a GitHub context with many sibling tools, more contextual information is needed to guide effective 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 100%, so the input schema already documents all parameters (owner, repo, path, branch) with clear descriptions. The description adds no additional meaning beyond implying the tool operates on GitHub repositories, which is redundant with the schema. This meets the baseline for high 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 clearly states the action ('Get the contents') and resource ('file or directory from a GitHub repository'), making the purpose immediately understandable. However, it doesn't differentiate from similar sibling tools like 'search_code' or 'get_pull_request_files', which could also retrieve file-related information in different contexts.

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 like 'search_code' for broader searches or 'get_pull_request_files' for PR-specific content. It lacks context about prerequisites (e.g., needing repository access) or typical use cases, leaving the agent to infer usage from the tool name alone.

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

get_issueC

Get details of a specific issue in a GitHub repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
issue_numberYes

TDQS

C2.8/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 burden for behavioral disclosure. It states 'Get details' which implies a read-only operation, but doesn't mention authentication requirements, rate limits, error conditions, or what details are returned. This leaves significant gaps for a tool interacting with an external API.

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 gets straight to the point with no wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose effectively.

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 moderate complexity (3 required parameters, no annotations, no output schema), the description is insufficient. It doesn't explain parameter meanings, return values, error handling, or how it differs from similar tools. For a GitHub API tool, this leaves too many unknowns for reliable agent use.

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 input schema has 0% description coverage, so parameters are completely undocumented in structured fields. The description mentions 'specific issue in a GitHub repository' which implies parameters for identifying the issue and repository, but doesn't name or explain the three required parameters (owner, repo, issue_number) or their formats.

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 ('Get details') and resource ('specific issue in a GitHub repository'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_issues' or 'search_issues', which would require more specific language about retrieving a single issue by identifier.

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 like 'list_issues' or 'search_issues'. It mentions retrieving a 'specific issue' but doesn't clarify prerequisites (e.g., needing the issue number) or exclusions (e.g., not for bulk retrieval).

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

list_commitsC

Get list of commits of a branch in a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
shaNo
pageNo
perPageNo

TDQS

C2.8/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 burden for behavioral disclosure but offers minimal information. It doesn't describe whether this is a read-only operation (implied but not stated), pagination behavior (though parameters suggest it), rate limits, authentication requirements, or what the return format looks like. The description merely restates the basic function without adding 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every word earns its place, making it easy to parse quickly. No structural issues or redundancy are present.

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 complexity (5 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain parameter usage, behavioral traits like pagination or authentication, or what the output contains. For a tool with multiple parameters and no structured guidance, more descriptive context is needed to help the agent use 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 compensate but adds no parameter information beyond what's inferable from the tool name. It doesn't explain what 'owner', 'repo', 'sha', 'page', or 'perPage' mean, their expected formats, or how they interact (e.g., that 'sha' specifies the branch). The description fails to provide semantic context for any of the 5 parameters.

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 ('Get list') and target resource ('commits of a branch in a GitHub repository'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_pull_requests' or 'list_issues', which would require mentioning it's specifically for commit history rather than other repository elements.

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., authentication needs), when not to use it, or how it compares to similar listing tools in the sibling set. The agent must infer usage purely from the tool name and parameters.

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

list_issuesC

List issues in a GitHub repository with filtering options

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
directionNo
labelsNo
pageNo
per_pageNo
sinceNo
sortNo
stateNo

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. While 'List issues' implies a read operation, the description doesn't address important behavioral aspects like pagination behavior (implied by 'page' and 'per_page' parameters but not explained), rate limits, authentication requirements, error conditions, or what the output looks like. The mention of 'filtering options' is helpful but insufficient for a mutation-free tool with 9 parameters.

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, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a listing tool, though it could be slightly more informative without losing conciseness. The structure is straightforward and front-loaded with the main purpose.

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 complexity (9 parameters, 3 with enums, no output schema, and no annotations), the description is insufficiently complete. For a tool with this many filtering options and no structured output documentation, the description should provide more guidance about what the tool returns, how pagination works, and the meaning of key parameters. The current description leaves too much undefined for effective agent use.

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 0% schema description coverage for all 9 parameters, the description provides minimal parameter semantics. It mentions 'filtering options' which hints at the purpose of parameters like 'labels', 'state', and 'since', but doesn't explain any specific parameters, their formats, or constraints. For example, it doesn't clarify that 'owner' and 'repo' are required, what 'since' expects (ISO timestamp), or what the enums mean. The description adds some value but doesn't adequately compensate for the complete lack of schema descriptions.

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 ('List') and resource ('issues in a GitHub repository'), making the purpose unambiguous. It also mentions 'filtering options' which adds specificity. However, it doesn't explicitly distinguish this tool from sibling tools like 'search_issues' or 'get_issue', which would be needed for a perfect score.

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. With sibling tools like 'search_issues' and 'get_issue' available, there's no indication of when this listing approach is preferable versus searching or fetching individual issues. The description only states what the tool does, not when to choose it.

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

push_files_contentA

Push multiple files with direct content to a GitHub repository in a single commit

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
branchYesBranch to push to (e.g., 'main' or 'master')
filesYesArray of files to push with their content
messageYesCommit message

TDQS

A3.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 full burden for behavioral disclosure. It states the tool performs a write operation ('push') but doesn't mention critical behavioral aspects: whether it overwrites existing files, requires authentication/permissions, handles errors, or has rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves beyond the basic action.

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, well-structured sentence that efficiently communicates the core functionality without unnecessary words. It's front-loaded with the main action and includes all essential elements: what (push files with content), where (GitHub repository), and how (single commit). 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 mutation tool with 5 parameters, 100% schema coverage, but no annotations or output schema, the description is minimally complete. It covers the basic purpose and scope but lacks behavioral details (overwrite behavior, error handling, authentication needs) and output information. Given the complexity of a GitHub file-push operation, more context would be helpful, though the schema handles parameter documentation adequately.

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 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema by implying 'multiple files' (matching the 'files' array parameter) and 'single commit' (related to the 'message' parameter), but doesn't provide additional semantic context about parameter usage, constraints, or relationships. This meets the baseline for high schema coverage.

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 ('push multiple files with direct content'), the target resource ('to a GitHub repository'), and the operational scope ('in a single commit'). It distinguishes itself from sibling tools like 'push_files_from_path' by specifying 'direct content' rather than file paths, and from 'create_or_update_file' by handling multiple files in one commit.

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 context by specifying 'multiple files with direct content' and 'single commit', suggesting it's for batch updates rather than individual file operations. However, it doesn't explicitly state when to use this tool versus alternatives like 'push_files_from_path' (which likely uses file system paths) or 'create_or_update_file' (which handles single files). The context is clear but lacks explicit comparison guidance.

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

push_files_from_pathA

Push multiple files from filesystem paths to a GitHub repository in a single commit

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner (username or organization)
repoYesRepository name
branchYesBranch to push to (e.g., 'main' or 'master')
filesYesArray of files to push from filesystem paths
messageYesCommit message

TDQS

A3.9/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 full burden. It discloses the batch operation and single-commit behavior, which is useful. However, it lacks details on permissions required, error handling (e.g., if files don't exist), rate limits, or whether it overwrites existing files. For a mutation tool with zero annotation coverage, this leaves gaps in behavioral understanding.

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 front-loads the core purpose with no wasted words. It clearly communicates the tool's function without redundancy or unnecessary elaboration, making it easy to parse quickly.

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 mutation tool with 5 parameters and no annotations or output schema, the description is adequate but incomplete. It covers the basic operation but lacks details on behavioral aspects (e.g., side effects, error cases) and doesn't hint at return values. Given the complexity, more context would be beneficial for safe and effective 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 100%, so the schema already documents all 5 parameters clearly. The description adds minimal value beyond the schema by implying 'multiple files' and 'filesystem paths,' but doesn't explain parameter interactions (e.g., how 'files' array works) or provide examples. Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('push multiple files'), resource ('from filesystem paths to a GitHub repository'), and scope ('in a single commit'). It distinguishes itself from sibling tools like 'push_files_content' (which likely pushes content directly rather than from filesystem paths) and 'create_or_update_file' (which handles individual files).

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 context by specifying 'multiple files from filesystem paths' and 'single commit,' suggesting it's for batch operations rather than individual file updates. However, it doesn't explicitly state when to use this tool versus alternatives like 'push_files_content' or 'create_or_update_file,' nor does it mention prerequisites (e.g., authentication, file existence).

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

search_codeC

Search for code across GitHub repositories

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
orderNo
pageNo
per_pageNo

TDQS

C2.8/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 burden for behavioral disclosure but provides minimal information. It mentions searching across repositories but doesn't describe what the search returns, pagination behavior, rate limits, authentication requirements, or whether this is a read-only operation. The agent must infer these critical behavioral 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 extremely concise at just 6 words, front-loading the essential information with zero wasted words. Every word contributes directly to conveying the tool's purpose.

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 search tool with 4 parameters, 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what the search returns, how results are structured, or provide any context about the search scope beyond 'across GitHub repositories.' The agent lacks sufficient information to use this tool effectively.

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 0% schema description coverage and 4 parameters (1 required), the description provides no information about any parameters. It doesn't mention the required 'q' query parameter or optional pagination parameters, leaving the agent to rely solely on the schema without semantic context about what constitutes a valid search query or how pagination works.

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 ('Search for code') and resource ('across GitHub repositories'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling search tools like 'search_issues' or 'search_repositories' beyond specifying the search target is 'code' rather than issues or repositories.

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 when to prefer searching code over searching issues/repositories, nor does it specify any prerequisites or constraints for using this search functionality.

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

search_issuesC

Search for issues and pull requests across GitHub repositories

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
orderNo
pageNo
per_pageNo
sortNo

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 states the action ('search') but doesn't cover critical traits like authentication needs, rate limits, pagination behavior (implied by 'page' and 'per_page' params but not explained), or what the output looks like (no output schema). This is a significant gap for a search tool with multiple parameters.

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 with zero waste—it directly states the tool's purpose without fluff. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 complexity (5 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It lacks parameter explanations, behavioral context (e.g., search syntax, limits), and output details, making it inadequate for an agent to use the tool effectively without external knowledge.

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 schema provides no parameter descriptions. The description adds no semantic information about parameters—it doesn't explain 'q' as a query string, 'order' as sorting direction, 'sort' as criteria, or 'page'/'per_page' for pagination. With 5 parameters (1 required) and no schema help, the description fails to compensate, leaving parameters largely unexplained.

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 ('search') and resource ('issues and pull requests') with scope ('across GitHub repositories'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_code', 'search_repositories', or 'search_users', which all search GitHub but for different resources.

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 sibling search tools (e.g., 'search_code' for code, 'search_repositories' for repos) or non-search tools like 'list_issues' for unfiltered listing, leaving the agent to infer usage from the name alone.

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

search_repositoriesC

Search for GitHub repositories

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (see GitHub search syntax)
pageNoPage number for pagination (default: 1)
perPageNoNumber of results per page (default: 30, max: 100)

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 full burden for behavioral disclosure. It mentions 'search' but doesn't describe what the search returns (e.g., repository metadata), rate limits, authentication needs, or pagination behavior beyond what's in the schema. This is inadequate for a tool with potential complexity.

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 with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a search tool.

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 no annotations, no output schema, and multiple sibling search tools, the description is incomplete. It doesn't explain return values, differentiate from other searches, or cover behavioral aspects like rate limits, leaving significant gaps for agent understanding.

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 100%, so the schema already documents all parameters (query, page, perPage) with descriptions. The description adds no additional parameter semantics beyond implying GitHub as the platform, meeting the baseline for high 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 'Search for GitHub repositories' clearly states the verb ('Search') and resource ('GitHub repositories'), making the purpose immediately understandable. However, it doesn't differentiate from sibling search tools like 'search_code' or 'search_issues', which would require a 5.

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 like 'search_code' or 'search_issues', nor does it mention any prerequisites or contextual constraints. It's a basic statement of function without usage context.

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

search_usersC

Search for users on GitHub

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
orderNo
pageNo
per_pageNo
sortNo

TDQS

C2.6/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 burden for behavioral disclosure. 'Search for users' implies a read-only operation, but it doesn't describe authentication requirements, rate limits, pagination behavior, or what constitutes a successful search. The description is too minimal to provide adequate behavioral context for a search tool with 5 parameters.

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 extremely concise with just 4 words. It's front-loaded with the core purpose and wastes no words. While it may be too brief for completeness, it achieves perfect conciseness for what it does cover.

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 complexity (5 parameters, 0% schema coverage, no annotations, no output schema), the description is inadequate. It doesn't explain what the search returns, how results are structured, authentication requirements, or parameter usage. For a search tool with multiple configuration options, this minimal description leaves too many questions unanswered.

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 but provides no parameter information. The description doesn't mention any parameters, their purposes, or how they affect the search. For a tool with 5 parameters including a required query parameter and multiple enums, this is a significant gap in documentation.

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 'Search for users on GitHub' clearly states the action (search) and resource (users on GitHub), but it's vague about scope and doesn't distinguish from sibling search tools like search_code, search_issues, and search_repositories. It specifies the platform (GitHub) which is helpful context.

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 provided about when to use this tool versus alternatives. The description doesn't mention when this search is appropriate compared to other user-related operations or other search tools on the server. There's no indication of prerequisites, limitations, or typical use cases.

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

update_issueC

Update an existing issue in a GitHub repository

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
issue_numberYes
titleNo
bodyNo
assigneesNo
milestoneNo
labelsNo
stateNo

TDQS

C2.8/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 but offers minimal information. It states this is an update operation but doesn't mention required permissions, whether changes are reversible, rate limits, or what happens when invalid parameters are provided. For a mutation tool with 9 parameters, this leaves significant behavioral questions unanswered.

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 extremely concise at just 7 words, front-loading the essential information without any wasted words. It follows a clear 'verb + resource' structure that makes the tool's purpose immediately apparent despite its brevity.

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 mutation tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what fields can be updated, what the response looks like, error conditions, or authentication requirements. Given the complexity of GitHub issue updates and the complete lack of structured documentation, the description should provide much more contextual information.

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 0% schema description coverage for all 9 parameters, the description provides no additional semantic information about any parameters. It doesn't explain what 'owner' and 'repo' refer to, what format 'issue_number' should be in, or what the 'state' enum values mean. The description fails to compensate for the complete lack of parameter documentation 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 clearly states the action ('Update') and resource ('an existing issue in a GitHub repository'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'update_project' or 'update_pull_request_branch' that also perform updates on different GitHub resources.

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. With sibling tools like 'create_issue', 'delete_issue', 'get_issue', and 'list_issues', there's no indication of when updating is appropriate versus creating new issues or retrieving existing ones. No prerequisites or exclusions are mentioned.

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. 18 tool updates
    • First observedadd_issue_comment
    • First observedcreate_branch
    • First observedcreate_issue
    • First observedcreate_or_update_file
    • First observedcreate_pull_request
    • First observedcreate_repository
    • First observedfork_repository
    • First observedget_file_contents
    • First observedget_issue
    • First observedlist_commits
    • First observedlist_issues
    • First observedpush_files_content
    • First observedpush_files_from_path
    • First observedsearch_code
    • First observedsearch_issues
    • First observedsearch_repositories
    • First observedsearch_users
    • First observedupdate_issue

TDQS

B3.3/5.0

Scored across 18 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific GitHub resources and actions, but there is some overlap between push_files_content and push_files_from_path (both push multiple files, differing only in input source) and between list_issues and search_issues (both retrieve issues, differing in scope). Descriptions help clarify these distinctions, but agents might occasionally confuse them.

Naming Consistency5/5

All tools follow a consistent verb_noun or verb_noun_preposition pattern (e.g., create_issue, get_file_contents, search_repositories), with no mixing of conventions like camelCase or snake_case variations. The naming is predictable and readable throughout the set.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for a comprehensive GitHub server covering repositories, issues, files, search, and operations. It avoids being excessive (under 25) and each tool appears to serve a specific function, though some could be consolidated (e.g., the two push tools).

Completeness5/5

The tool set provides complete coverage for core GitHub workflows, including CRUD operations for repositories, issues, files, and branches, along with search across code, issues, repositories, and users. There are no obvious gaps; agents can perform end-to-end tasks like creating repos, managing issues, and pushing code without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for the GitHub REST API that enables interaction with repositories, pull requests, issues, branches, commits, reviews, and code search, with configurable write and destructive operations.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Standalone MCP server for GitHub that enables repository management, branch operations, pull request handling, and commit retrieval via tools listed in the README.
    1
    -
  • A
    license
    B
    quality
    D
    maintenance
    MCP (Model Context Protocol) server for GitHub API integration. This server provides comprehensive tools for interacting with GitHub repositories, issues, pull requests, branches, and code search through a unified interface.
    15
    12 npm
    MIT