github-ops-mcp
Provides tools for managing GitHub repositories, including issue triage, PR review monitoring, repo health audits, and team access reviews.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@github-ops-mcptriage untriaged issues in pallets/flask"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
github-ops-mcp
An MCP server that provides operational tooling over the GitHub API — issue triage, PR review monitoring, repo health audits, and team access reviews. Built for use with Claude Code or Claude Desktop, it gives ops teams a conversational interface to automate the manual toil of managing GitHub-based workflows.
Quick Start
git clone https://github.com/avg-ape/github-ops-mcp.git
cd github-ops-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Optionally set a GitHub token for higher rate limits and write operations:
cp .env.example .env
# Edit .env and add your tokenUse with Claude Code
Add to your Claude Code MCP config (~/.claude/settings.json):
{
"mcpServers": {
"github-ops": {
"command": "/path/to/github-ops-mcp/.venv/bin/python",
"args": ["-m", "github_ops_mcp.server"]
}
}
}Then ask Claude things like:
"Triage untriaged issues in pallets/flask"
"Show me the PR review dashboard for my-org/my-repo"
"Run a health audit on fastapi/fastapi"
"Find stale PRs in my-org/backend that haven't been touched in 14 days"
Related MCP server: GitHub MCP Agent Server
Tools
Tool | Description |
| Find issues missing labels, assignees, or milestones |
| Apply a label to issues matching a text filter (dry-run by default) |
| Find issues with no activity in N days, grouped by label/assignee |
| Bulk-close labeled issues older than N days (dry-run by default) |
| Open PRs grouped by review status with wait times |
| PRs with no activity in N days |
| CI/check status aggregated across all open PRs |
| Scorecard: branch protection, CODEOWNERS, CI, license, security policy |
| Compare health audits across multiple repos |
| List users and permission levels for a repo or org |
| Find outside collaborators and direct access bypassing teams |
Architecture
GitHub Client (github_client.py): Async HTTP client built on httpx — not a wrapper library like PyGitHub. Supports both REST and GraphQL endpoints, automatic pagination via Link headers, rate limit tracking, and structured error handling.
Why httpx over PyGitHub: Demonstrates understanding of HTTP fundamentals, async patterns, and API design. The client is ~120 lines and does exactly what's needed — no framework overhead.
REST vs GraphQL: REST for writes and simple reads. GraphQL for complex queries that would require multiple REST calls (e.g., PR reviews with check status in a single request).
Pydantic Models (models.py): All tool outputs are typed Pydantic models with human-readable __str__ methods. Claude gets structured data to reason about, not raw JSON dumps.
Rate Limiting: The client reads X-RateLimit-Remaining headers and surfaces clear errors when limits are hit. Works unauthenticated for public repos (60 req/hr) or authenticated with a personal access token (5,000 req/hr).
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run unit tests
pytest tests/ -v
# Run integration tests (hits real GitHub API)
pytest tests/ -v --integrationLicense
MIT
Available Tools
11 toolsbulk_label_issuesC
Apply a label to all issues matching a text filter. Defaults to dry-run mode.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| label | Yes | ||
| owner | Yes | ||
| dry_run | No | ||
| filter_text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions dry-run mode default, which is useful, but fails to disclose that this tool modifies issues (when not dry-run), potential irreversibility, rate limits, or required permissions. Critical behavioral aspects are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a note about default. Every word is functional, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk operation affecting multiple issues, the description is too sparse. It lacks explanation of the output, error scenarios, or safety warnings. Even with an output schema, the context for safe and effective use is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage; description only adds meaning for dry_run (default) and filter_text (implicitly via 'matching a text filter'). Other parameters (owner, repo, label) are left to their names. The description adds marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies a label to issues matching a text filter. It uses a specific verb ('apply') and resource ('label to issues'). However, it does not explicitly differentiate from sibling tools like triage_issues or close_resolved_issues, but the bulk text-filtering nature is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description only notes the default dry-run mode, which is behavioral rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_resolved_issuesB
Bulk-close issues with a specific label that are older than N days. Defaults to dry-run mode.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| label | Yes | ||
| owner | Yes | ||
| comment | No | Closing — resolved and inactive. | |
| dry_run | No | ||
| older_than_days | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility. It discloses the dry-run default but omits crucial behavioral traits such as destructiveness (closing issues), irreversibility, permission requirements, or side effects like notifications. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence front-loads the primary action and criteria; the second adds the key behavioral default. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 6 parameters, no annotations, and an output schema (not detailed), the description offers minimal context. It lacks details on return values, error conditions, behavior when dry_run is false, or the relationship between parameters. Incomplete for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'label' and 'older_than_days' parameters and the 'dry_run' default, but does not clarify 'owner', 'repo' (though partly inferred from context), or 'comment' (default given but not explained). Partial addition of meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (bulk-close issues) and the specific criteria (a specific label, older than N days). It also mentions the default dry-run mode, distinguishing it from sibling tools like stale_issue_report or triage_issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like bulk_label_issues or stale_issue_report. No prerequisites or exclusions are mentioned, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
permission_auditC
Audit an org for permission issues: outside collaborators, direct access bypassing teams.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It only states the purpose but does not indicate whether the operation is read-only, requires specific permissions, or has any side effects. The term 'audit' implies checking but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose. It is front-loaded and concise, though could benefit from a bit more structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of auditing permission issues across an organization, the description is too brief. It does not mention the output format or what the report contains, even though an output schema exists but is not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'owner' has no schema description and the tool description does not clarify its format (e.g., org name vs. ID). With 0% schema coverage, the description fails to add any meaning beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool audits an organization for permission issues, specifically mentioning outside collaborators and direct access bypassing teams. The verb 'audit' and resource 'org permission issues' are explicit, and it distinguishes from sibling tools like team_access_review by focusing on org-level issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 team_access_review or repo_health_audit. There are no when-to-use or when-not-to-use instructions, nor exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pr_check_statusA
Aggregate CI/check status across all open PRs — quick 'is anything red' overview.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. It mentions aggregation and quick overview but does not disclose authentication needs, rate limits, or whether the operation is read-only. For a tool with no annotations, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the key action and purpose. Every word earns its place, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, return details are not needed. The description covers the basic functionality for a simple two-parameter tool. It could mention what 'check status' entails more precisely, but it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, meaning no parameter descriptions in the schema. The tool description does not explain what 'owner' and 'repo' mean beyond their names. It adds no semantic value, leaving the agent to infer from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('aggregate CI/check status'), the resource ('all open PRs'), and the purpose ('quick 'is anything red' overview'). It distinguishes from sibling tools like pr_review_dashboard which focus on reviews rather than CI status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a quick overview ('quick 'is anything red' overview') but does not explicitly state when to use it versus alternatives like pr_review_dashboard. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pr_review_dashboardA
Show open PRs grouped by review status (awaiting, changes requested, approved) with wait times.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates the tool is a read operation ('show') and provides output structure (grouped by status with wait times). However, with no annotations, it lacks details on data freshness, caching, or permissions. It meets basic needs but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-front-loaded sentence with no unnecessary words. It could benefit from additional structure (e.g., listing outputs), but it is efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema exists) and no annotations, the description provides a basic understanding. However, it omits details about 'wait times' calculation and handling of large repositories, which would be helpful for a complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the schema has 0% description coverage, the description was expected to explain parameters. It does not mention 'owner' or 'repo' at all. While these are common, the description adds no meaning beyond the schema, which itself lacks descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: showing open PRs grouped by review status with wait times. It uses specific verbs and resource, and the grouping by three statuses (awaiting, changes requested, approved) distinguishes it from sibling tools like pr_check_status (which checks individual PRs) or stale_pr_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for an overview of PR review progress, but does not explicitly state when to use it versus alternatives or any prerequisites. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repo_compareC
Compare health audit results across multiple repos to find inconsistencies.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repos | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the tool is read-only, requires authentication, or triggers audits. It only mentions comparing results without revealing if it performs any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. It could be slightly more structured, but it wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not explain return values. However, it lacks context about how 'health audit results' are obtained (likely from repo_health_audit) and what type of inconsistencies are found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the meaning of 'owner' or the format of 'repos'. The description adds no value beyond the parameter names and types in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and the resource 'health audit results across multiple repos', with the goal 'to find inconsistencies'. However, it doesn't differentiate from the sibling tool 'repo_health_audit', which likely focuses on a single repo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like repo_health_audit or other sibling tools. The context for comparing audit results is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repo_health_auditA
Audit a repo for operational hygiene: branch protection, CODEOWNERS, CI, license, security policy.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It implies a read-only audit operation, but does not explicitly state that it does not modify the repository, nor does it mention rate limits, authentication needs, or whether it returns a report. The disclosure is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates scope and content. Every word is meaningful, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's audit purpose and the presence of an output schema, the description lists key areas checked (branch protection, CODEOWNERS, CI, license, security policy). It does not describe the return format, but the output schema likely covers that. However, it omits mention of potential side effects (none expected) or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. However, it adds no information about 'owner' or 'repo' beyond their names. The parameter list (owner, repo) is standard, but without descriptions, the agent must infer their purpose from the tool's name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to audit a repo for operational hygiene. The specific items (branch protection, CODEOWNERS, CI, license, security policy) provide concrete scope, effectively distinguishing it from sibling tools like 'pr_check_status' or 'permission_audit' which focus on narrower aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor does it mention prerequisites or exclusions. With 11 sibling tools, explicit guidance on when to choose 'repo_health_audit' versus other audit/check tools is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stale_issue_reportB
Find issues with no activity in N days, grouped by label and assignee.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It does not state whether the tool is read-only, destructive, or requires specific permissions. The name suggests a report, but this is not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 15-word sentence is highly concise and front-loads the primary verb 'Find'. However, it could be slightly expanded to include key behavioral or usage details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and 3 parameters, the description provides the core functionality but lacks context on typical use cases, limitations (e.g., whether closed issues are included), and edge cases. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for 'days' by mentioning 'N days', and the grouping note implies how results are organized. However, it does not explain 'owner' and 'repo' beyond their names, nor the default value for 'days'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds issues with no activity in N days, grouped by label and assignee. It uses a specific verb 'Find' and identifies the resource 'issues', with distinctive grouping details that differentiate it from sibling tools like stale_pr_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for identifying stale issues but does not explicitly state when to use this tool versus alternatives (e.g., bulk_label_issues, close_resolved_issues). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stale_pr_reportB
Find pull requests with no activity in N days.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions inactivity but doesn't define 'activity' (e.g., comments, commits) or specify if only open PRs are considered. With no annotations, more detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with core intent. No wasted words, but could include more structure without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description omits what the report returns (list, count, details?). Lacks behavioral context for a tool inspecting pull requests, such as scope or filtering behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% parameter description coverage. Description only implicitly references 'days' via 'N days', and offers no explanation for 'owner' or 'repo'. Fails to add meaning beyond schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool finds stale pull requests based on inactivity days. It distinguishes from sibling tools like stale_issue_report (for issues) and PR-specific tools like pr_check_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. While the purpose implies which tool to choose among siblings, the description lacks direct alternatives or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
team_access_reviewB
List users and their permission levels for a repo or org. Shows who has admin, write, or read access.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | ||
| team | No | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read operation (list), which aligns with the tool's purpose. However, it does not disclose authentication requirements, scope limitations, or behavior when parameters are omitted (e.g., if no repo is provided, does it list org-level users?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters (1 required) and 0% schema description coverage, the description should provide more context. The mention of permission levels is good, but lack of team parameter explanation and no output schema details (though output schema exists) leave gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'repo or org' which partially explains the 'owner' and 'repo' parameters, but the 'team' parameter is not mentioned at all. With 0% schema description coverage, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (users and permission levels for a repo or org). It distinguishes from sibling tools like permission_audit by specifying granular permission levels (admin, write, read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Does not 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.
triage_issuesB
Find issues missing labels, assignees, or milestones. Use this to identify untriaged work.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| since | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states what issues are found but does not mention read-only nature, authentication requirements, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the primary action, and contains no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks guidance on parameters (especially 'since') and behavioral details. For a simple tool with 3 parameters, more context is needed for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elucidate any of the three parameters (owner, repo, since). The schema only provides basic type info, leaving the agent to infer parameter roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'issues missing labels, assignees, or milestones', distinguishing it from sibling tools like 'bulk_label_issues' or 'stale_issue_report' which focus on different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to identify untriaged work', providing clear usage context. While it doesn't list alternatives or when-not-to-use, the sibling tools imply different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct operational task on GitHub, such as labeling, closing, auditing, or reviewing. Even similar tools like stale_issue_report and triage_issues address different aspects (activity vs. metadata gaps), so there is no risk of confusion.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., bulk_label_issues, repo_health_audit, team_access_review). The naming is predictable and clear.
Eleven tools is an ideal size for a focused operations server, covering a range of common GitHub management tasks without being overwhelming or underdeveloped.
The tool set covers essential ops workflows: bulk actions, audits, stale management, and triage. Minor gaps exist (e.g., no tool for bulk commenting or branch management), but the core ops surface is well-covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create, deploy, and operate MCP servers directly from your GitHub repositories.
GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)
A MCP server built for developers enabling Git based project management with project and personal…
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
Related MCP Servers
- AlicenseBqualityAmaintenanceSelf-hosted GitHub MCP server for PR, repo file, and Dependabot operations, supporting multiple MCP clients with personal access token auth.7MIT
- AlicenseBqualityBmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- AlicenseCqualityCmaintenanceA production-ready MCP server for GitHub operations, providing tools for repository management, issues, pull requests, and more via both MCP stdio and REST API.27MIT
- AlicenseAqualityCmaintenanceA production-ready MCP server for triaging and reviewing GitHub pull requests via the GitHub REST API, providing typed tools to list, inspect, comment, add labels, and submit reviews.810MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/avg-ape/github-ops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server