Git MCP Server
Allows interaction with GitHub repositories, issues, and pull requests, enabling complete issue-to-code workflows including issue analysis, planning, implementation, testing, documentation, and PR creation.
Provides tools for managing GitLab repositories, issues, and merge requests, supporting issue-to-code automation with slash commands for analysis, planning, implementation, testing, documentation, and merge request creation.
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., "@Git MCP Server/issue https://github.com/user/repo/issues/42"
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.
Git MCP Server
A Model Context Protocol (MCP) server for Claude Code, Gemini CLI, and Codex that enables complete issue-to-code automation across GitHub and GitLab platforms.
🚀 What is Git MCP Server?
Git MCP Server transforms your development workflow by connecting AI assistants directly to your Git repositories. It provides:
🤖 MCP Integration: Full support for Claude Code, Gemini CLI, and Codex via Model Context Protocol
📋 Issue-to-Code Workflow: Complete automation from issue analysis to PR creation
🎯 Slash Commands: Pre-built workflow commands (
/issue,/plan,/implement,/test,/doc,/pr)🔧 Multi-Platform: Unified interface for GitLab and GitHub
🔐 Secure: Keyring-based token storage with auto-username detection
Related MCP server: Copilot MCP Server
🎯 Issue-to-Code Workflow
Transform how you handle development tasks with these automated slash commands:
# 1. Analyze any issue from URL
/issue https://gitlab.com/group/project/-/issues/123
# 2. Generate development plan
/plan
# 3. Implement the solution
/implement
# 4. Create comprehensive tests
/test
# 5. Update documentation
/doc
# 6. Create PR/MR and close issue
/pr 123That's it! From issue analysis to pull request in 6 commands.
📦 Installation
Quick Setup (Recommended)
For Claude Code:
# Install from PyPI
uv tool install git_mcp_server
# Setup Claude Code integration (adds MCP server + slash commands)
git-mcp-server --install-claudeFor Gemini CLI:
# Install from PyPI
uv tool install git_mcp_server
# Setup Gemini CLI integration (adds MCP server + slash commands)
git-mcp-server --install-geminiFor Codex:
# Install from PyPI
uv tool install git_mcp_server
# Setup Codex integration (adds MCP server + slash commands)
git-mcp-server --install-codexThis automatically:
✅ Installs Git MCP Server globally
✅ Configures MCP server in Claude Code/Gemini CLI/Codex
✅ Installs slash commands to respective directories
✅ Adds code memory guidelines (Codex: AGENTS.md)
✅ Provides setup instructions
Alternative Installation
# Using pip
pip install git_mcp_server
git-mcp-server --install-claude # or --install-gemini or --install-codex
# From source (development)
git clone <repository-url>
cd git_mcp
uv tool install --from . git_mcp_server
git-mcp-server --install-claude # or --install-gemini or --install-codex⚡ Quick Start
1. Configure Your Git Platform
# Add GitLab (public or private instance)
git-mcp config add my-gitlab gitlab --url https://gitlab.com
# Add GitHub (public or GitHub Enterprise)
git-mcp config add my-github github --url https://github.com
# Test the connections
git-mcp config test my-gitlab
git-mcp config test my-githubThe system will automatically:
🔐 Prompt for your access token
👤 Fetch your username automatically
💾 Store credentials securely in system keyring
2. Start Using Slash Commands
In Claude Code, Gemini CLI, or Codex, you can now use:
/issue - Smart Issue Analysis
# List your assigned issues
/issue
# Analyze specific issue from any GitLab/GitHub URL
/issue https://gitlab.com/group/project/-/issues/123/plan - Generate Development Plans
# Create structured implementation plan based on issue analysis
/plan/implement - Code Implementation
# Implement the planned solution with best practices
/implement/test - Test Generation
# Generate comprehensive test suites
/test/doc - Documentation Updates
# Update documentation and API docs
/doc/pr - Create Pull Requests
# Create PR/MR and automatically close related issue
/pr 123🛠️ Available MCP Tools
When configured, Claude Code, Gemini CLI, and Codex gain access to these powerful tools:
Platform Management
list_platforms()- List configured Git platformstest_platform_connection(platform)- Test platform connectivityget_platform_config(platform)- Get platform configurationrefresh_platform_username(platform)- Update username from token
Issue Operations
list_my_issues(platform)- List issues assigned to youget_issue_by_url(url)- Analyze issues from GitLab/GitHub URLsget_issue_details(platform, project_id, issue_id)- Get detailed issue infocreate_issue(platform, project_id, title, ...)- Create new issues
Project Management
list_projects(platform)- List accessible projectsget_project_details(platform, project_id)- Get project information
Merge Requests
list_merge_requests(platform, project_id)- List merge requestscreate_merge_request(platform, project_id, ...)- Create pull/merge requests
🎛️ Configuration
Platform Configuration
Git MCP Server stores configuration in ~/.git-mcp/config.yaml:
platforms:
my-gitlab:
type: gitlab
url: https://gitlab.com
username: myuser # Auto-fetched from token
company-gitlab:
type: gitlab
url: https://git.company.com
username: myuser
defaults:
platform: my-gitlabSecurity Note: Access tokens are stored securely in your system keyring, not in config files.
Automatic Username Detection
# Username automatically fetched from token
git-mcp config add my-gitlab gitlab --url https://gitlab.com
# Refresh username for existing platforms
git-mcp config refresh-username my-gitlab🔧 Advanced Usage
Running MCP Server Directly
# Start MCP server (for debugging)
git-mcp-server
# Interactive development mode
uv run mcp dev git_mcp/mcp_server.pyMCP Scope Configuration
Claude Code:
User scope (recommended): Available across all Claude Code projects
Local scope: Only in current project directory
Project scope: Shared via
.mcp.jsonin project
Gemini CLI:
Global settings: Configured in
~/.gemini/settings.jsonProject settings: Can override in project-specific settings
Commands: Located in
~/.gemini/commands/(global) or.gemini/commands/(project)
Codex:
Global configuration: MCP server configured in
~/.codex/config.tomlCommands: Located in
~/.codex/prompts/directoryMemory integration: Code guidelines in
~/.codex/AGENTS.md
Development Setup
# Clone repository
git clone <repository-url>
cd git_mcp
# Install in development mode
uv sync --all-extras
# Run locally
uv run git-mcp-server
# Install development version globally
uv tool install --from . git_mcp_server --force📚 Workflow Examples
Complete Feature Development
# Start with your assigned issues
/issue
# Select and analyze specific issue
/issue https://gitlab.com/team/project/-/issues/456
# Generate implementation plan
/plan
# Implement with best practices
/implement
# Create comprehensive tests
/test
# Update documentation
/doc
# Create PR and close issue
/pr 456Bug Fix Workflow
# Analyze bug report
/issue https://gitlab.com/team/project/-/issues/789
# Plan the fix
/plan
# Implement fix
/implement
# Add regression tests
/test
# Update docs if needed
/doc
# Submit fix
/pr 789🔍 Troubleshooting
Verify Installation
# Check global installation
which git-mcp-server
git-mcp-server --help
# Verify Claude Code integration
claude mcp list
# Verify Gemini CLI integration
gemini /mcp
# Verify Codex integration
ls ~/.codex/prompts/ # Should show slash commands
cat ~/.codex/config.toml # Should show git-mcp-server
# Test MCP connection
echo '{"jsonrpc": "2.0", "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}, "id": 1}' | git-mcp-serverCommon Issues
"No MCP servers configured"
# Reinstall MCP integration
git-mcp-server --install-claude # or --install-gemini"Command not found" after installation
# Reinstall with uv
uv tool uninstall git_mcp_server
uv tool install git_mcp_serverSlash commands not working
# Check commands directory (Claude Code)
ls ~/.claude/commands/
# Check commands directory (Gemini CLI)
ls ~/.gemini/commands/
# Check commands directory (Codex)
ls ~/.codex/prompts/
# Reinstall if missing
git-mcp-server --install-claude # or --install-gemini or --install-codexUpdate to Latest Version
# Update package
uv tool install git_mcp_server --upgrade
# Reinstall integration
git-mcp-server --install-claude # or --install-gemini🐛 Debug & Logging
Git MCP Server includes comprehensive debugging and logging capabilities to help troubleshoot issues and understand system behavior.
Debug Mode
Enable debug mode to get detailed logging output with enhanced formatting:
CLI Commands:
# Enable debug mode for CLI commands
git-mcp --debug config list
git-mcp --debug issue list --platform github
# Debug mode shows detailed operation logs
git-mcp --debug config test my-gitlabMCP Server:
# Start MCP server with debug logging
git-mcp-server --debug
# Shows detailed MCP tool calls and responses
git-mcp-server --debugEnvironment Variables
Configure logging behavior using environment variables:
# Set log level (DEBUG, INFO, WARNING, ERROR)
export GIT_MCP_SERVER_LOG_LEVEL=DEBUG
# Enable debug mode (alternative to --debug flag)
export GIT_MCP_SERVER_DEBUG=true
# Log to file instead of/in addition to console
export GIT_MCP_SERVER_LOG_FILE=~/.git-mcp/debug.log
# Run with environment variables
git-mcp-serverLog File Configuration
Enable file logging for persistent debugging:
# Set log file path
export GIT_MCP_SERVER_LOG_FILE=~/.git-mcp/git-mcp.log
# Logs will be appended to file with timestamps
git-mcp-server --debugLog file format:
2025-08-15 02:05:23,123 - git_mcp.mcp_server - DEBUG - MCP Tool: list_platforms called
2025-08-15 02:05:23,124 - git_mcp.platforms.gitlab - DEBUG - Connecting to GitLab at https://gitlab.com
2025-08-15 02:05:23,156 - git_mcp.mcp_server - DEBUG - MCP Tool: list_platforms returned 2 platformsRich Console Output
Debug mode enables rich console formatting with:
🎨 Colored output for different log levels
📁 File paths shown for debug messages
⏰ Timestamps for all debug entries
📊 Structured tracebacks for errors
🔍 Local variables in error traces (debug mode only)
Troubleshooting Common Issues
Enable debug mode when experiencing:
# Connection issues
export GIT_MCP_SERVER_LOG_LEVEL=DEBUG
git-mcp config test my-gitlab
# MCP tool failures
git-mcp-server --debug
# Authentication problems
export GIT_MCP_SERVER_DEBUG=true
git-mcp issue list --platform githubDebug MCP Integration:
# Test MCP server communication
echo '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' | git-mcp-server --debug
# Claude Code MCP debugging
claude mcp logs git-mcp-server
# Check MCP server status
claude mcp statusLog Levels Explained
DEBUG: Detailed function calls, API requests, internal operations
INFO: General information about operations and status
WARNING: Non-critical issues that may need attention
ERROR: Critical errors that prevent operation
Environment Variable Priority
Configuration priority (highest to lowest):
CLI flags:
--debugoverrides environment variablesEnvironment variables:
GIT_MCP_SERVER_*settingsDefault values: INFO level, console output only
Debug Examples
Debugging Platform Connection:
# Enable debug and test connection
export GIT_MCP_SERVER_LOG_LEVEL=DEBUG
git-mcp config test my-gitlab
# Output shows detailed connection process:
# DEBUG - Connecting to GitLab at https://gitlab.com
# DEBUG - Authentication successful for user: myusername
# DEBUG - API version: v4
# INFO - Connection to 'my-gitlab' successfulDebugging MCP Tool Calls:
# Start server with debug logging
git-mcp-server --debug
# Shows MCP tool invocations:
# DEBUG - MCP Tool: list_projects called with platform='gitlab'
# DEBUG - Found 15 projects for user
# DEBUG - MCP Tool: list_projects returned 15 projectsFile + Console Logging:
# Log to both console and file
export GIT_MCP_SERVER_LOG_LEVEL=DEBUG
export GIT_MCP_SERVER_LOG_FILE=~/.git-mcp/debug.log
# Console shows rich formatted output
# File contains timestamped plain text logs
git-mcp-serverThis logging system helps diagnose issues, understand system behavior, and provides detailed insights for development and troubleshooting.
🌟 Key Benefits
⚡ Speed: From issue to PR in minutes, not hours
🎯 Focus: AI handles boilerplate, you focus on logic
📋 Consistency: Standardized workflow across all projects
🔧 Flexibility: Works with any GitLab instance
🤖 Intelligence: AI assistants understand your codebase context
🔐 Security: Secure credential management
🛣️ Supported Platforms
✅ GitLab - Full support (gitlab.com and private instances)
✅ GitHub - Full support (github.com and GitHub Enterprise)
🤝 Contributing
Issues and Pull Requests welcome! This project enables powerful AI-assisted development workflows.
📄 License
MIT License
Ready to supercharge your development workflow?
# For Claude Code
uv tool install git_mcp_server && git-mcp-server --install-claude
# For Gemini CLI
uv tool install git_mcp_server && git-mcp-server --install-gemini
# For Codex
uv tool install git_mcp_server && git-mcp-server --install-codexThen try /issue in your AI assistant! 🚀
Available Tools
33 toolsclose_issueC
Close an issue
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | ||
| platform | Yes | ||
| project_id | 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 the full burden of behavioral disclosure. It only states the action without mentioning idempotency, permissions, side effects, or whether closing an issue is reversible. This is insufficient for safe invocation.
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?
While the description is extremely short, it is under-specified rather than concise. It lacks essential information and does not earn its place. Every word is present but insufficient.
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 the presence of an output schema and three required parameters, the description provides no context about return values, parameter sources, or process. For a tool that modifies state, this is critically 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?
The input schema has 0% schema description coverage and the description does not mention any parameters. None of the three required parameters (platform, project_id, issue_id) are explained or given type/format hints. The description fails entirely to add value beyond 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 action ('Close an issue') and the resource (issue). However, it does not distinguish this from similar sibling tools like 'update_issue' which could also change status. A specific verb+resource is present, but sibling differentiation is missing.
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 provides no guidance on when to use this tool versus alternatives such as 'update_issue' or 'create_issue_comment'. No context about prerequisites or exclusions is given, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_merge_requestA
Close a merge request without merging
Args: platform: The platform name (e.g., 'gitlab', 'github') project_id: The project identifier mr_id: The merge request/pull request ID **kwargs: Additional platform-specific parameters
Returns: Dict containing: - merge_request: Updated merge request details - message: Success message - platform: The platform name - project_id: The project identifier - mr_id: The merge request ID
| Name | Required | Description | Default |
|---|---|---|---|
| mr_id | Yes | ||
| kwargs | Yes | ||
| platform | Yes | ||
| project_id | 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. It describes the output format and mentions 'without merging', but lacks details on reversibility or side effects. Still, it provides a clear sense of what happens.
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 well-structured with Args and Returns sections but is slightly verbose. It could be more concise, but the organization aids readability. 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?
Given the tool has 4 parameters, no annotations, and an output schema, the description thoroughly explains inputs and outputs. It provides full parameter descriptions and a detailed return structure, making it complete for effective use.
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 coverage is 0%, but the description explains each parameter in the Args section (platform, project_id, mr_id, **kwargs). While **kwargs is vague, it adds context that schema alone does not. The description compensates for missing schema 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 'Close a merge request without merging', specifying the exact action and resource. It distinguishes itself from sibling tools like 'update_merge_request' which may serve different purposes.
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 does not explicitly provide when-to-use or when-not-to-use guidance compared to alternatives like 'update_merge_request'. It implies the tool is for closing without merging, but lacks explicit context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_milestoneC
Close a milestone
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | ||
| project_id | Yes | ||
| milestone_id | 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 simply says 'Close a milestone' without disclosing behavioral traits such as whether the operation is reversible, destructive, or requires specific permissions. This leaves the agent with insufficient information about 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 minimal with no wasted words, but it is overly brief. A single phrase is not necessarily concise if it omits necessary information, but it does not contain 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?
With three required parameters and no explanation, the description is incomplete. Although an output schema exists, the description fails to convey prerequisites or expected outcomes, making it hard for an agent to use correctly.
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 input schema has 0% description coverage, and the description does not explain the meaning or format of any parameter. The agent must infer the purpose of 'platform', 'project_id', and 'milestone_id' solely from their names, which 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 'Close' and the resource 'milestone', making the tool's purpose immediately understandable. However, it does not distinguish from sibling tools like 'update_milestone' which might also change status, but 'close' is a specific operation.
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 provides no guidance on when to use this tool versus alternatives. Sibling tools include 'update_milestone' which could potentially close milestones, and no context is given for when closing is appropriate instead of updating.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_forkA
Create a fork of a repository
Args: platform: The platform name (github, gitlab) project_id: The repository ID to fork (owner/repo for GitHub, numeric for GitLab) **kwargs: Platform-specific fork parameters - GitHub: organization, name, default_branch_only - GitLab: namespace, name, path
| Name | Required | Description | Default |
|---|---|---|---|
| kwargs | Yes | ||
| platform | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description must carry full burden. It discloses it creates a fork, but lacks details on side effects, permissions, or error conditions. The type mismatch (kwargs as string vs dict) adds confusion.
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?
Concise docstring-style, starts with purpose, lists parameters efficiently. No extraneous text, but could be more streamlined.
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?
Covers essential parameters and platform specifics. Output schema exists, so return values not needed. Minor gap: no mention of preconditions or common errors.
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 coverage 0%, description adds meaning: explains platform values, project_id format, and lists platform-specific kwargs. However, schema declares kwargs as string while description implies dict, leading to ambiguity.
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?
Clearly states 'Create a fork of a repository', a specific verb and resource. Differentiates from sibling tools like list_forks and get_fork_info.
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 vs alternatives. The platform-specific details imply use for creating forks on different platforms, but no exclusions or comparison with siblings.
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 project
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| kwargs | Yes | ||
| labels | No | ||
| assignee | No | ||
| platform | Yes | ||
| milestone | No | ||
| project_id | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the action without revealing side effects, permission requirements, or what happens upon creation (e.g., idempotency, error states). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it sacrifices completeness for brevity. It front-loads the action but provides no additional details, making it minimally adequate.
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 the tool (8 parameters, no schema descriptions, output schema exists), the description is severely incomplete. It does not explain the required parameters 'platform' and 'project_id', nor the return value structure. The agent would be left guessing.
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%, meaning the schema itself provides no parameter explanations. The description adds no context for the 8 parameters, failing to explain what 'title', 'kwargs', 'platform', etc., mean or how they relate. This is a critical gap.
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 'Create' and the resource 'issue', making the primary purpose obvious. However, it lacks differentiation from sibling tools like 'update_issue' or 'close_issue', though 'create' is distinct enough. The scope ('in a project') is vague but acceptable.
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 'update_issue' or 'close_issue'. There is no mention of prerequisites, such as needing a valid platform and project, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issue_commentC
Create a comment on an issue
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| kwargs | Yes | ||
| issue_id | Yes | ||
| platform | Yes | ||
| project_id | 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 any behavioral traits. There is no information about side effects, required permissions, or what happens if the issue does not exist. The agent has no way to gauge the tool's impact.
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, 5 words) but at the cost of completeness. It is front-loaded but lacks sufficient detail, making it more underspecified than optimally 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 has 5 required parameters, no param descriptions, no annotations, and an output schema that is not mentioned, the description is completely inadequate. It fails to provide the context needed for correct 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 explain any parameters. The description adds no meaning beyond the schema's property names. The agent cannot determine the format or constraints for body, kwargs, etc.
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 'create' and resource 'comment on an issue', making the purpose immediately understandable. While it is concise, it lacks explicit differentiation from siblings like create_issue or update_issue, but the action is distinct enough.
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 versus alternatives, nor does it mention prerequisites such as requiring an existing issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_merge_requestA
Create a new merge request with cross-project support
Args: platform: Git platform name (github, gitlab, etc.) project_id: Source project ID (for cross-project MRs) or project ID (for same-project MRs) title: Merge request title source_branch: Source branch name or 'owner:branch' format for cross-repo target_branch: Target branch name (default: 'main') description: Optional merge request description assignee: Optional assignee username target_project_id: Optional target project ID for cross-project merge requests **kwargs: Additional platform-specific parameters
Returns: Dict containing merge request details
Examples: # Same-project MR create_merge_request("gitlab", "123", "Fix bug", "feature-branch", "main")
# Cross-project MR (fork to upstream)
create_merge_request("gitlab", "456", "Fix bug", "feature-branch", "main",
target_project_id="123")
# GitHub cross-repo PR (using branch format)
create_merge_request("github", "upstream/repo", "Fix bug", "fork-owner:feature-branch", "main")
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| kwargs | Yes | ||
| assignee | No | ||
| platform | Yes | ||
| milestone | No | ||
| project_id | Yes | ||
| description | No | ||
| source_branch | Yes | ||
| target_branch | No | main | |
| target_project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains cross-project support and branch format but does not disclose authentication requirements, rate limits, or potential errors. Return type is minimally described as 'Dict containing merge request details'.
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 well-structured with Args, Returns, and Examples sections, but is slightly lengthy. However, each part adds value and no sentences are wasted.
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 10 parameters, cross-project support, and no annotations, the description is fairly complete. It covers parameter details, examples, and usage distinctions. Output schema exists but description provides only minimal return info.
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 description must and does fully explain parameters. It adds context like 'owner:branch' format for source_branch, kwargs for platform-specific parameters, and examples for each use case.
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 'Create a new merge request with cross-project support' with specific verb and resource. Examples distinguish this tool from siblings like update_merge_request or list_merge_requests.
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 provides clear usage contexts through examples for same-project and cross-project merge requests, and explains parameter differences. However, it does not explicitly state when not to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_milestoneC
Create a new milestone in a project. due_date format: YYYY-MM-DD
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| due_date | No | ||
| platform | Yes | ||
| project_id | Yes | ||
| description | No |
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 indicates a write operation ('create') but does not disclose side effects, authentication needs, idempotency, or return value behavior. The date format hint is the only behavioral detail.
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 very concise: one sentence plus a format note. It is front-loaded and wastes no words. However, it could include a bit more context 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?
Given 5 parameters, an output schema, and sibling tools, the description is woefully incomplete. It does not leverage output schema or sibling relationships to provide context (e.g., how to obtain project_id). The tool's creation nature demands more setup guidance.
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 add meaning. Only 'due_date' gets format clarification (YYYY-MM-DD). No information is provided for 'platform', 'project_id', 'title', or 'description' beyond their schema titles.
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 'Create a new milestone in a project', specifying the action ('create') and resource ('milestone') with project context. This distinguishes it from sibling tools like update_milestone, close_milestone, and list_milestones.
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 (e.g., update_milestone). Prerequisites like having a valid platform and project_id are not mentioned. The description lacks any when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectC
Create a new project on the specified platform
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| kwargs | Yes | ||
| platform | 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 operation is idempotent, what permissions are required, or what happens on duplicate names. The presence of an output schema mitigates this slightly, but the description still lacks essential context for an agent.
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 very short (one sentence), which is concise but at the expense of necessary detail. It is not badly structured, but it omits important information that could be added without excessive length.
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 three required parameters with no schema descriptions, and the existence of many sibling tools (e.g., list_platforms, get_platform_config), the description does not provide enough context about what 'platform' refers to or how 'kwargs' should be formatted. The output schema exists but is not referenced, leaving the agent uncertain about the return value.
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 input schema has 0% description coverage for its three parameters, and the description adds no meaning beyond the parameter names. In particular, 'kwargs' is completely opaque—likely expecting a JSON string but not explained. The description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'project', and specifies the scope 'on the specified platform', which distinguishes it from sibling tools like create_issue or create_milestone that operate on different resources.
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 such as list_platforms or get_platform_config, nor any prerequisites (e.g., a platform must exist). The description simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectC
Delete a project from the specified platform
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | ||
| project_id | 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, and the description does not disclose behavioral traits such as irreversibility, permission requirements, or effects on associated data.
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 very short (one sentence), but it lacks necessary detail, crossing into under-specification rather than 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 destructive nature of the tool and the presence of many related tools, the description fails to provide adequate context. Even with an output schema, it is insufficient.
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 adds no meaning beyond the parameter names. No format, allowed values, or context for 'platform' or 'project_id'.
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 'Delete' and the resource 'project', specifying the platform. It distinguishes from siblings like create_project, get_project_details, and close_project.
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 over alternatives (e.g., close_project for archiving). No prerequisites or consequences are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_user_infoC
Get current user information directly from platform API
| Name | Required | Description | Default |
|---|---|---|---|
| platform | 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, and the description only mentions 'directly from platform API' without disclosing behavioral details like authentication requirements, caching, or error handling.
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, which is concise but lacks structure. No waste, but could be better organized.
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 is too brief to fully inform the agent. It omits context about the parameter and usage nuances, making it barely adequate for this simple tool.
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 address the single 'platform' parameter, leaving its meaning entirely undefined.
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 retrieves current user information from the platform API. While distinct from sibling tools like get_platform_config, it does not explicitly differentiate itself.
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, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fork_infoB
Get fork information for a repository
Args: platform: The platform name (github, gitlab) project_id: The repository ID to check
Returns: Dictionary with fork status, parent repository, and other fork details
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | ||
| project_id | 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 must disclose behavioral traits. It only mentions return format, omitting permissions needed, error conditions, or whether the repository must exist.
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 with two paragraphs, each line providing necessary information without redundancy.
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 existence of an output schema, the return description suffices. However, there is no context about error handling or prerequisites, and with sibling tools involving forks, more behavioral context would be beneficial.
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 coverage is 0%, but the description explains that 'platform' is the git provider (github, gitlab) and 'project_id' is the repository ID. This adds meaning beyond the property names and types, though could benefit from more detail on valid values.
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 it retrieves fork information for a repository, specifying the verb 'get' and resource. The return details add specificity. However, it does not explicitly distinguish from sibling 'list_forks', although the difference is implied.
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 'list_forks' or 'create_fork'. There is no mention of prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_by_urlA
Get issue details by URL. Supports GitLab and GitHub URLs.
Example URLs:
| Name | Required | Description | Default |
|---|---|---|---|
| url | 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 provided, the description carries the full burden of disclosing behavior. It indicates a read-only operation ('get issue details') but does not mention authentication requirements, rate limits, or the return format. The existence of an output schema somewhat compensates, but 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?
The description is extremely concise: two sentences and a code block with examples. It is front-loaded with the purpose and provides immediate clarity without extraneous information.
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 (one required parameter, output schema present), the description is complete enough. It covers the core function and provides examples. It could mention that it returns issue details, but the output schema likely fills that gap.
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?
Although the input schema has no description for the 'url' parameter (0% coverage), the description adds value by providing example URLs that clarify the expected format and supported platforms. This helps the agent understand the parameter beyond the schema's type definition.
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: 'Get issue details by URL', and specifies the supported platforms (GitLab and GitHub). This distinguishes it from sibling tools like get_issue_details, which likely use IDs, and list_issues, which lists without a URL.
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 provides explicit context for when to use the tool (when you have a URL) and gives example URLs. However, it does not explicitly state when not to use it or mention alternatives, but the context is clear and the examples aid selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_detailsC
Get detailed information about a specific issue including comments
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | ||
| platform | Yes | ||
| project_id | 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, so the description carries full burden. It mentions 'including comments' but does not disclose read-only nature, request limits, or any side effects. Minimal behavioral disclosure.
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 concise sentence with no extraneous words. However, it could include more information without becoming overly long.
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?
With an output schema present, return value details are covered. However, the description lacks parameter explanations and behavioral context, making it somewhat incomplete for a tool with 3 required parameters.
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 explain any of the three parameters (issue_id, platform, project_id). The only added value is the hint about comments, which is about output not parameters.
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 'Get' and the resource 'detailed information about a specific issue', specifically mentioning 'comments', which distinguishes it from sibling tools like 'get_issue_by_url' and 'list_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 explicit guidance on when to use this tool versus alternatives like 'get_issue_by_url' or 'list_issues'. It lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_commitsC
Get commits for a merge request
Args: platform: The platform name (e.g., 'gitlab', 'github') project_id: The project identifier mr_id: The merge request/pull request ID **filters: Optional filters for commit selection
Returns: Dict containing: - mr_id: The merge request ID - total_commits: Number of commits - commits: List of commit details with sha, message, author, dates, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| mr_id | Yes | ||
| filters | Yes | ||
| platform | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as pagination, rate limits, authentication requirements, or whether it returns all commits or a subset. Given the absence of annotations, this is a significant gap.
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 structured with Args and Returns sections, which is helpful, but it is slightly verbose for a simple retrieval tool. Some sentences could be streamlined without losing meaning.
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?
The description adequately covers the return format but lacks context on usage, behavioral details, and clear parameter semantics. With no annotations and 100% required parameters, it is not fully complete but sufficient for a basic understanding.
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 lists parameters but describes 'filters' as optional despite the schema requiring it as a string. It does not explain the format or possible values for filters, and the schema itself has no descriptions (0% coverage). This lack of clarity undermines correct parameter usage.
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 explicitly states the verb 'Get' and the resource 'commits for a merge request', making the tool's purpose clear. Among sibling tools like get_merge_request_details and get_merge_request_diff, it uniquely retrieves commits, so no confusion.
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 (e.g., get_merge_request_diff for diffs, list_merge_requests for listing). There is no mention of prerequisites or context, 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_merge_request_detailsB
Get detailed information about a specific merge request
| Name | Required | Description | Default |
|---|---|---|---|
| mr_id | Yes | ||
| platform | Yes | ||
| project_id | 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 behavior. It only says 'get', implying a read-only operation, but does not explicitly state it is safe (no side effects), mention any required permissions, or describe the output format. The presence of an output schema alleviates some burden, but the description lacks detail on behavioral traits.
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 is front-loaded with the core action and resource. It is concise with no fluff, but it may be too succinct given the lack of parameter explanations.
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 simplicity of the tool (3 required string parameters) and the absence of annotations and parameter descriptions, the description is incomplete. It does not define what 'detailed information' includes, nor does it explain the parameters or provide usage context. The output schema helps but is not enough.
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%, meaning no parameter descriptions exist in the schema. The tool description does not compensate by explaining what 'mr_id', 'platform', and 'project_id' represent. Without this, an agent cannot determine the correct values for these parameters.
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 ('get') and the resource ('detailed information about a specific merge request'). It distinguishes from sibling tools like 'list_merge_requests' (which lists) and 'get_merge_request_diff' (which gets a diff).
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 when full details of a merge request are needed, but it does not provide explicit guidance on when to use this tool versus alternatives like 'get_merge_request_diff' or 'get_merge_request_commits', nor does it mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_diffA
Get diff/changes for a merge request
Args: platform: The platform name (e.g., 'gitlab', 'github') project_id: The project identifier mr_id: The merge request/pull request ID **options: Optional parameters: - format: Response format ('json', 'unified') - default: 'json' - include_diff: Include actual diff content (bool) - default: True
Returns: Dict containing: - mr_id: The merge request ID - total_changes: Summary of additions, deletions, files changed - files: List of changed files with details - diff_format: Format of the response - truncated: Whether response was truncated
| Name | Required | Description | Default |
|---|---|---|---|
| mr_id | Yes | ||
| options | Yes | ||
| platform | Yes | ||
| project_id | 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 the full burden. It discloses the return format (dict with keys like mr_id, total_changes, files, diff_format, truncated), which is good. However, it does not mention whether this is a read-only operation, permission requirements, or potential truncation behavior in detail.
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 well-organized with Args and Returns sections. It is informative but slightly verbose; each sentence contributes value. Could be more concise by omitting the redundant returns section if already covered by output schema.
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?
The description provides a detailed return structure and parameter explanations. However, the mismatch between schema and description for the options parameter creates a gap. Additionally, there is no mention of pagination or handling of large diffs. Given the complexity, it is adequate but not 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?
Schema description coverage is 0%, so the description must add meaning. It explains platform, project_id, mr_id, and options (including sub-options like format and include_diff). However, there is a contradiction: the schema defines options as a required string, while the description treats it as optional keyword arguments (dict-like). This inaccuracy reduces reliability.
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 'Get diff/changes for a merge request', using a specific verb and resource. It distinguishes from sibling tools like get_merge_request_details and get_merge_request_commits.
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 explains what the tool does but does not provide guidance on when to use it versus alternatives, nor does it mention prerequisites or exclusions. The usage is implicit from the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_configB
Get configuration information for a specific platform
| Name | Required | Description | Default |
|---|---|---|---|
| platform | 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 the burden. The name 'get' implies a read-only operation, but the description does not explicitly state it is non-destructive or idempotent. Given the context of sibling tools (create/update/delete), it is clear, but not explicitly stated.
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 sentence containing all necessary elements: verb, resource, scope. It is concise and front-loaded, with no wasted 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 tool's simplicity (one required param, output schema exists), the description is adequate but minimal. It lacks parameter guidance and does not mention that the output schema provides full details. Could be more helpful by referencing 'list_platforms' for platform values.
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 single parameter 'platform' has no description in the schema (0% coverage). The tool description does not add meaning, such as what values to use (e.g., platform ID from list_platforms). This leaves the agent without guidance on how to populate the parameter.
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 'Get' and resource 'configuration information' for a specific platform. It distinguishes from sibling tool 'list_platforms' which lists all platforms, but does not elaborate on what the configuration includes.
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 alternatives are provided. The usage is implied for retrieving config for a specific platform, but no guidance on prerequisites (e.g., platform must exist) or when to use this vs 'test_platform_connection'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_detailsC
Get detailed information about a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | ||
| project_id | 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 must disclose behavioral traits. It implies a read-only operation but does not explicitly state that no changes are made. There is no mention of required permissions, rate limits, or potential side effects, leaving critical 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. However, it sacrifices completeness for brevity, failing to include essential usage details. Every word is used, but the sentence could be more informative without being long.
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 2 required parameters and an output schema (likely defining return fields), the description should still set context for what 'detailed information' includes. It does not mention the scope or any constraints (e.g., platform-specific data). The output schema may compensate for return value documentation, but the description remains incomplete for guiding effective 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%, so the description must compensate. It does not elaborate on the 'platform' or 'project_id' parameters—e.g., what platform values are valid or where to find the project ID. This leaves the agent without sufficient context to fill parameters correctly.
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 ('Get') and the resource ('detailed information about a specific project'). It is easily distinguished from sibling tools like list_projects (which lists projects) and get_issue_details (which focuses on issues), making the purpose unambiguous.
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 list_projects or get_issue_details. There is no mention of prerequisites (e.g., needing a project ID from list_projects) or context for when detailed information is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_issuesC
List issues across all projects (global search). No project_id needed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | opened | |
| filters | Yes | ||
| platform | 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, so description must fully disclose behavior. It only mentions global search and no project_id needed, but omits read-only nature, permissions, pagination, or output structure.
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 are very concise but omit critical details about parameters and usage. Conciseness here sacrifices necessary information, making it ineffective for correct tool invocation.
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 4 parameters with no schema descriptions, no annotations, and an output schema present, description fails to cover parameter semantics, usage context, or behavioral traits. Highly incomplete for a global search tool.
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 description gives no explanation of any parameter (filters, platform, limit, state) beyond stating no project_id needed. Agents lack essential information to use parameters correctly.
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 explicitly states 'List issues across all projects (global search)', clearly indicating the verb (list) and resource (issues) with scope. Differentiates from siblings like 'list_issues' by noting no project_id needed.
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?
Implies use for global search without specifying a project, providing clear context. However, no explicit when-not-to-use or comparison with similar tools like list_issues or list_my_issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_forksA
List forks of a repository
Args: platform: The platform name (github, gitlab) project_id: The repository ID to list forks for limit: Maximum number of forks to return
Returns: List of fork repositories
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| platform | Yes | ||
| project_id | 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. It does not disclose that the operation is read-only, any authentication requirements, rate limits, or pagination behavior. The return type is mentioned but not behavioral traits.
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, using a clear docstring format with separate sections for description, args, and returns. Every sentence serves a purpose with no redundancy.
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 simple list operation, the description covers the main purpose, parameters, and return type. However, it omits behavioral context (e.g., read-only nature, pagination) and usage guidance, which would be needed for full completeness given the lack of annotations.
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, but the description explains each parameter's role: platform as platform name (github, gitlab), project_id as repository ID, limit as maximum number of forks. This adds essential meaning beyond the schema's types and defaults.
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 explicitly states 'List forks of a repository', using a specific verb and resource. This clearly distinguishes it from sibling tools like create_fork and get_fork_info.
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 provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It merely describes the operation without contextual usage advice.
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 project. State can be 'opened', 'closed', or 'all'
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | opened | |
| filters | Yes | ||
| platform | Yes | ||
| project_id | 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 the burden of behavioral disclosure. It mentions state values but omits pagination, filtering behavior, error handling, and scope (all issues vs. user's issues), leaving significant 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 very short and front-loaded, but it sacrifices completeness for brevity. It could add a sentence summarizing other parameters without being overly 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?
Given the tool has 5 parameters (3 required) and many sibling tools, this description is critically incomplete. It fails to explain required parameters like platform and project_id, and does not clarify how it differs from similar list tools.
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 explain parameters. It only describes 'state' (with possible values) but ignores 'platform', 'project_id', 'filters', and 'limit', which are essential.
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 'list' and resource 'issues in a project', which is specific. However, it does not differentiate from sibling tools like list_all_issues or list_my_issues, which may have different scopes.
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 such as list_all_issues or list_my_issues. It lacks context on prerequisites 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.
list_merge_requestsC
List merge requests in a project. State can be 'opened', 'closed', 'merged', or 'all'
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | opened | |
| filters | Yes | ||
| platform | Yes | ||
| project_id | 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 pagination (despite a limit parameter), ordering, authentication requirements, or rate limits. The only behavioral hint is the default state 'opened' and possible state values.
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 very concise with a single sentence that includes the core action and a key parameter detail. It is front-loaded and contains no fluff, but could be slightly expanded 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?
Given the tool's complexity (5 parameters, 3 required, no enums) and the existence of an output schema, the description is insufficient. It only covers the 'state' parameter, omitting essential context for 'filters', 'limit', 'project_id', and 'platform'. The agent needs more to use the tool correctly.
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 only explains the 'state' parameter by listing its possible values. Parameters like 'filters', 'limit', 'platform', and 'project_id' are left entirely unexplained, leaving the agent to guess their semantics.
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 (merge requests in a project). It also provides the possible values for the 'state' parameter, which helps differentiate from other list tools. However, it could be more specific about the scope (e.g., explicitly mentioning project_id) and other filtering options.
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 provides no guidance on when to use this tool versus alternatives. With siblings like list_my_merge_requests (which may list across projects) and list_issues, the agent would benefit from explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_milestonesB
List milestones for a project. State can be 'active', 'closed', or 'all'
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | active | |
| platform | Yes | ||
| project_id | 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. It indicates a read operation but does not disclose potential side effects, auth requirements, rate limits, pagination, or any other behavioral traits beyond the state parameter values.
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?
Extremely concise with two sentences, front-loading the purpose and essential parameter info. Every word serves a purpose; no redundancy.
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 (3 params, 0% schema description, no annotations) and presence of an output schema, the description is too minimal. It fails to explain what milestones are, return format, or ordering, leaving gaps for an agent to use correctly.
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 coverage is 0%, so the description must add meaning. It only explains the 'state' parameter with allowed values. The 'platform' and 'project_id' parameters are not explained, leaving the agent to guess their purpose and how to obtain them.
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 lists milestones for a project, which is a specific verb+resource. The sibling tool names include create, update, close, and list milestone variants, so this tool is well-differentiated as the list operation.
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 list_issues or list_merge_requests. It does not provide prerequisites, context, or exclusions, 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.
list_my_issuesB
List issues assigned to me across all projects.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | opened | |
| filters | Yes | ||
| platform | 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 the full burden. It only says 'list issues' without disclosing read-only behavior, permission requirements, pagination, or how 'assigned to me' is determined (e.g., current user context).
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 with no fluff, efficiently conveying the core purpose. It earns its place by being immediately understandable.
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 tool has 4 parameters with zero description coverage and no annotations. The description fails to explain parameter usage, behavioral traits, or when to prefer this over sibling tools, leaving the agent under-informed.
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 tool description adds no meaning to parameters like 'filters', 'state', 'limit', or 'platform'. The agent receives no guidance on how to use these parameters correctly.
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 'List issues assigned to me across all projects' clearly states the verb (list), resource (issues), and scope (assigned to me, across all projects). It distinguishes from siblings like list_issues (which likely requires a project scope) and list_all_issues (no assignment filter).
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 when the agent wants issues assigned to the current user, but it does not explicitly state when to use this tool versus alternatives like list_issues or list_all_issues. There is no mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_merge_requestsB
List merge requests created by the current user (automatically uses configured username)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | opened | |
| filters | Yes | ||
| platform | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavior that it auto-uses configured username, but lacks details on pagination, sorting, or error handling. No annotations to support.
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?
Extremely concise single sentence, front-loaded with key information, no wasted 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?
With 5 parameters and 3 required, the description is too sparse. It lacks details on parameter usage, output schema, or how filters work, making it incomplete for complex use.
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?
Description provides no explanation for any of the 5 parameters (limit, state, filters, platform, project_id), leaving agent without guidance on how to use them effectively.
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 lists merge requests created by the current user, with a specific verb and resource, and distinguishes from sibling 'list_merge_requests' by adding the 'my' scope.
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?
Implied usage for current user's merge requests, but no explicit when-not-to-use or mention of alternative tools like list_merge_requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_platformsA
List all configured Git platforms (GitLab, GitHub, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 the full burden. It states the tool lists platforms but does not disclose behavioral traits such as authentication requirements, caching, or data sensitivity. The basic disclosure is adequate for a simple read operation.
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 with no unnecessary words. It is front-loaded and efficiently conveys the tool's purpose.
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 (no parameters, simple listing) and the existence of an output schema (which explains return values), the description is sufficiently complete. It covers the essential purpose without needing to detail return format.
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 tool has zero parameters and the input schema is empty, so schema description coverage is 100%. The description adds no parameter information, which is expected. Per guidelines, baseline for 0 parameters is 4.
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 'List all configured Git platforms (GitLab, GitHub, etc.)' clearly states the verb 'List' and the resource 'all configured Git platforms' with specific examples. It distinguishes from sibling tools like test_platform_connection or get_platform_config which perform 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?
No explicit when-to-use or when-not-to-use guidance is provided. However, given the lack of similar listing tools among siblings, the usage is implicitly clear. A score of 3 reflects implied usage without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsC
List projects from a specified Git platform
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| filters | Yes | ||
| platform | 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 present, the description must fully convey behavioral traits, but it only states the basic function. It does not disclose authentication needs, rate limits, error handling, or what happens if the platform is invalid.
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, which is concise but lacks any structure or detail. It is minimal but not efficient in conveying necessary information.
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 the presence of an output schema (not shown), the description is incomplete for a tool with 3 parameters, 0% schema description coverage, and no annotations. It does not provide enough context for an agent to invoke the tool correctly.
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%, yet the description adds no meaning to the parameters. It fails to explain the valid values for 'platform', the format or purpose of 'filters', or the behavior of 'limit' (e.g., pagination).
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), resource (projects), and context (from a specified Git platform). It effectively distinguishes this from sibling tools that list other entities like issues or merge requests.
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 provides no guidance on when to use this tool versus alternatives, such as when to prefer it over listing projects from a different source or using filters. No usage context 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.
refresh_platform_usernameB
Refresh username for a configured platform by fetching from token
| Name | Required | Description | Default |
|---|---|---|---|
| platform | 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 provided, the description must disclose behavioral traits. It says 'fetching from token' but does not clarify if this is a read-only refresh or if it modifies stored data. It lacks details on authorization requirements, side effects, or reversibility.
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 sentence conveys the essential action and mechanism. No redundant words, front-loaded with the verb 'Refresh'.
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 does not mention what is returned. For a simple tool, it still lacks completeness regarding prerequisites, use cases, and behavioral implications.
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 'platform' has no description in the schema (0% coverage). The description adds only the phrase 'for a configured platform', which provides minimal context. No constraints, examples, or enumeration are given.
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 (refresh), the object (username), and the mechanism (fetching from token). It distinguishes itself from siblings like list_platforms and test_platform_connection by focusing on a specific update operation.
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 vs alternatives. Does not mention prerequisites such as the platform being configured or having a valid token, nor when a refresh is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_platform_connectionC
Test connection to a configured platform
| Name | Required | Description | Default |
|---|---|---|---|
| platform | 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 test is destructive, what it returns, or if it requires authentication. The description carries the full burden but adds no context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (6 words, one sentence) but at the cost of omitting essential details. It earns a 3 for being minimal but not overly 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?
Given the simplicity of the tool (only one required parameter) and the existence of an output schema, the description could still add value by explaining the parameter and expected behavior, but it does not.
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 coverage is 0%: the 'platform' parameter has no description in the schema, and the tool description does not explain what values are valid or how to specify it. This leaves the agent without necessary information.
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: 'Test connection to a configured platform.' It uses a specific verb and resource, and the action is distinct from siblings like list_platforms or get_platform_config.
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 vs alternatives. For example, it doesn't mention that list_platforms might be needed first to get valid platform names.
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
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| title | No | ||
| kwargs | Yes | ||
| labels | No | ||
| assignee | No | ||
| issue_id | Yes | ||
| platform | Yes | ||
| milestone | No | ||
| project_id | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 only says 'Update an existing issue,' failing to note whether it is a partial update, what fields are updatable, or any side effects like notifications. This is inadequate 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?
The description is extremely concise at 4 words, but it sacrifices necessary detail. While brevity is valued, it fails to provide minimal context for correct tool invocation.
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 high parameter count (10), required fields, and existence of an output schema, the description is far from complete. It does not explain how the update works (e.g., partial vs full), return values, or any constraints. This shortfall may lead to improper 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?
The description adds no meaning beyond the input schema, which has 10 parameters and 0% schema description coverage. The description does not explain key parameters like kwargs, platform, or how fields interact, leaving the agent to infer everything from schema field names.
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 states the verb 'Update' and the resource 'an existing issue', which clearly indicates the tool's action. However, it does not differentiate this tool from siblings like close_issue or create_issue, as it lacks scope details.
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. There is no mention of prerequisites, context, or when not to use it, which is critical given the many sibling issue tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_merge_requestB
Update a merge request (title, description, etc.)
Args: platform: The platform name (e.g., 'gitlab', 'github') project_id: The project identifier mr_id: The merge request/pull request ID **kwargs: Update parameters (title, description, state, etc.)
Returns: Dict containing: - merge_request: Updated merge request details - message: Success message - platform: The platform name - project_id: The project identifier - mr_id: The merge request ID
| Name | Required | Description | Default |
|---|---|---|---|
| mr_id | Yes | ||
| kwargs | Yes | ||
| platform | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description should fully disclose behavior. It only says 'update' and lists return fields, but doesn't specify if fields are overwritten, required permissions, or 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?
Description is concise with clear Args/Returns sections, front-loaded with purpose. Could be slightly shorter but not 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?
Covers main purpose and parameters, includes return structure. Lacks usage context like typical fields to update or limitations. Adequate but not comprehensive.
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?
Input schema has no descriptions (0% coverage), so description adds meaning: e.g., 'mr_id' is 'The merge request/pull request ID', 'kwargs' is 'Update parameters (title, description, state, etc.)'.
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 'Update a merge request' and lists examples like title/description. Distinguishes from siblings such as create_merge_request and close_merge_request.
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 vs. alternatives like create_merge_request or close_merge_request. Does not mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_milestoneC
Update an existing milestone. due_date format: YYYY-MM-DD
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| title | No | ||
| due_date | No | ||
| platform | Yes | ||
| project_id | Yes | ||
| description | No | ||
| milestone_id | 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 convey behavioral traits. Only due_date format is noted; missing critical info like whether fields are overwritten or merged, permissions required, or destructiveness.
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 very short and front-loaded, but it sacrifices detail. It could include more parameter semantics 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?
Given 7 parameters, no annotations, and no schema descriptions, the description is severely incomplete. It does not cover return values, default behavior for omitted fields, or validation rules.
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%, yet the description only explains the due_date format. It fails to describe the meaning of other parameters (state, title, description, etc.), leaving the agent without crucial 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 verb 'Update' and the resource 'existing milestone', distinguishing it from sibling tools like create_milestone and close_milestone.
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 (e.g., closing vs updating). The purpose is implied but not elaborated.
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. Dates show when Glama detected each change.
33 tool updates
v0.2.5- First observed
close_issue - First observed
close_merge_request - First observed
close_milestone - First observed
create_fork - First observed
create_issue - First observed
create_issue_comment - First observed
create_merge_request - First observed
create_milestone - First observed
create_project - First observed
delete_project - First observed
get_current_user_info - First observed
get_fork_info - First observed
get_issue_by_url - First observed
get_issue_details - First observed
get_merge_request_commits - First observed
get_merge_request_details - First observed
get_merge_request_diff - First observed
get_platform_config - First observed
get_project_details - First observed
list_all_issues - First observed
list_forks - First observed
list_issues - First observed
list_merge_requests - First observed
list_milestones - First observed
list_my_issues - First observed
list_my_merge_requests - First observed
list_platforms - First observed
list_projects - First observed
refresh_platform_username - First observed
test_platform_connection - First observed
update_issue - First observed
update_merge_request - First observed
update_milestone
TDQS
All tools have clearly distinct purposes; even multiple list tools for issues and merge requests are differentiated by scope (project-specific, global, user-specific). No overlapping functionality.
Consistent verb_noun pattern using snake_case throughout (e.g., list_issues, create_milestone, get_fork_info). No mixing of conventions.
33 tools is on the higher side but covers multiple platforms and domains (platform config, projects, issues, merge requests, milestones, forks). Slightly heavy but not excessive for the scope.
Major operations are covered but notable gaps exist: missing update_project, delete_issue, merge_merge_request (only close), delete_milestone. No search/code tools. Surface is functional but incomplete.
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
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
AI code review for GitHub PRs with an MCP autofix loop for Claude Code and Cursor
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceEnables AI-driven orchestration of GitHub development workflows including automated issue analysis, code generation, code review, and PR creation through multiple specialized agents. Integrates with GitHub Actions to automate the complete development process from issue to pull request.7-
- AlicenseBqualityDmaintenanceIntegrates GitHub Copilot with MCP-compatible tools to provide AI-powered code assistance, including chat, code explanation, and reviews. It leverages existing GitHub CLI authentication to support multiple models like GPT-4o and Claude 3.5 Sonnet.4312MIT
- AlicenseNot gradedqualityDmaintenanceEnables turning AI code agents like Anthropic Claude and OpenAI Codex into background agents accessible via MCP protocol for code generation, branch creation, and PR automation.46MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered GitHub interactions including repository analysis, code search, PR reviews, and more through the MCP protocol.4MIT
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/yumeminami/git_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server