Skip to main content
Glama

MCP Issue - GitHub Issue Creator from Git Diff

Um servidor MCP (Model Context Protocol) que permite criar issues no GitHub automaticamente a partir de diffs do Git. Desenvolvido por Gustavo Detoni.

Sobre o Projeto

Este projeto é um servidor MCP que oferece ferramentas para:

  • Gerar diffs do Git (working directory, staged changes ou range de commits)

  • Criar prompts estruturados para gerar issues a partir de diffs

  • Criar issues no GitHub automaticamente usando a API do GitHub

Related MCP server: Agentic MCP Server

Funcionalidades

Ferramentas Disponíveis:

  1. git_diff - Gera diffs do repositório Git

    • Suporte para diferentes modos: working, staged, range

    • Filtros por arquivos específicos

    • Controle de tamanho máximo do output

  2. create_github_issue - Cria issues no GitHub

    • Integração com a API do GitHub via Octokit

    • Suporte a labels e assignees

    • Configuração de repositório padrão

Prompts Disponíveis:

  1. draft_issue_from_diff - Converte diffs em rascunhos de issues estruturadas

    • Template padronizado com seções: Summary, Context, Observations, etc.

    • Detecção automática do tipo de mudança (bug/feat/chore/refactor)

    • Sugestão de labels apropriadas

Instalação

Pré-requisitos

  • Node.js (versão 18+)

  • pnpm

  • Git configurado no sistema

  • Token do GitHub com permissões para criar issues

Passos de Instalação

  1. Clone o repositório:

git clone <url-do-repositorio>
cd mcp-issue
  1. Instale as dependências:

pnpm install
  1. Configure as variáveis de ambiente:

cp .env.example .env

Edite o arquivo .env com suas configurações:

GITHUB_TOKEN=seu_token_do_github
DEFAULT_OWNER=seu_usuario_ou_organizacao
DEFAULT_REPO=nome_do_repositorio_padrao
  1. Compile o projeto:

pnpm run build

⚙️ Configuração no Claude Desktop

Para usar este servidor MCP com o Claude Desktop, adicione a seguinte configuração no arquivo de configuração do Claude:

{
  "mcpServers": {
    "boxtime-mcp": {
      "command": "node",
      "args": [
        "C:\\Users\\gusta\\Desktop\\projects\\mcp-issue\\dist\\index.js"
      ],
      "env": {
        "GITHUB_TOKEN": "seu_token_aqui",
        "DEFAULT_OWNER": "seu_usuario",
        "DEFAULT_REPO": "seu_repositorio"
      }
    }
  }
}

Importante: Substitua o caminho no array args pelo caminho absoluto correto para o arquivo dist/index.js no seu sistema.

Scripts Disponíveis

  • pnpm run build - Compila o TypeScript

  • pnpm run dev - Executa em modo desenvolvimento

  • pnpm run start - Executa a versão compilada

Configuração do Token GitHub

Para obter um token do GitHub:

  1. Acesse GitHub → Settings → Developer settings → Personal access tokens

  2. Gere um novo token com as permissões:

    • repo (para repositórios privados)

    • public_repo (para repositórios públicos)

    • issues (para criar e gerenciar issues)

Template de Issue

O projeto usa um template estruturado para issues com as seguintes seções:

  • Summary: Resumo conciso da implementação

  • Context: Contexto da mudança ou problema resolvido

  • Observations: Pontos importantes da implementação

  • Acceptance Criteria: Critérios de aceitação baseados no diff

  • Action Plan: Ações/tarefas implementadas

  • Dependencies/Risks: Dependências e riscos identificados

  • Technical Notes: Detalhes técnicos relevantes

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.

Available Tools

2 tools
create_github_issueCreate GitHub IssueC

Cria uma issue no GitHub usando Octokit

ParametersJSON Schema
NameRequiredDescriptionDefault
assigneesNo
bodyNo
labelsNo
ownerNo
repoNo
titleYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates an issue (implying a write/mutation operation) but doesn't mention authentication requirements, rate limits, error conditions, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single sentence that directly states the tool's function. It's appropriately brief and front-loaded with the core purpose. While it could be more informative, it doesn't waste words or include unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

For a mutation tool with 6 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain parameter meanings, behavioral expectations, or return values. The agent would struggle to use this tool correctly without additional context or trial-and-error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 6 parameters (5 with defaults, 1 required), the description provides no information about any parameters. It doesn't explain what 'owner', 'repo', 'title', 'body', 'labels', or 'assignees' mean or how they should be formatted. The description fails to compensate for the complete lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose ('Cria uma issue no GitHub') which translates to 'Creates an issue on GitHub', providing a clear verb+resource. However, it doesn't differentiate from the sibling tool 'git_diff' or specify what makes this tool unique. The mention of 'usando Octokit' adds implementation detail but doesn't enhance functional distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when-not-to-use scenarios, or comparison with the sibling tool 'git_diff'. The agent must 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.

git_diffGet Git diffB

Retorna um diff do repositório atual. Use para entender alterações locais.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNo
headNo
maxBytesNo
modeNoworking
pathSpecNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool returns a diff for understanding local changes, but lacks details on behavioral traits such as whether it requires specific Git states, how it handles errors, if it's read-only or has side effects, or any rate limits. This is a significant gap for a tool with 5 parameters and no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is appropriately sized and front-loaded with the core purpose in the first sentence, followed by a brief usage note. Both sentences earn their place by providing essential information without redundancy or unnecessary details, making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

Given the complexity (5 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't explain the return values, parameter usage, or behavioral context needed for effective tool invocation. The description should do more to compensate for the lack of structured data, especially for a tool with multiple parameters and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, meaning none of the 5 parameters are documented in the schema. The description does not mention any parameters or add meaning beyond the schema, failing to compensate for the low coverage. This leaves the agent with no guidance on what parameters like 'base', 'head', 'mode', etc., mean or how to use them effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Retorna um diff do repositório atual' (Returns a diff of the current repository). It specifies the verb (returns) and resource (diff of current repository), making the function unambiguous. However, it doesn't explicitly differentiate from the sibling tool 'create_github_issue', which serves a completely different purpose, so it doesn't fully earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description provides implied usage guidance: 'Use para entender alterações locais' (Use to understand local changes). This suggests when to use the tool (for understanding local changes) but doesn't explicitly state when not to use it or mention alternatives. There's no comparison with the sibling tool or other potential tools, leaving some ambiguity in tool selection.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • First observedcreate_github_issue
    • First observedgit_diff

TDQS

C2.8/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one creates GitHub issues via Octokit, while the other returns a diff of the current repository. There is no overlap in functionality or ambiguity between them.

Naming Consistency4/5

Both tools use snake_case naming, which is consistent. However, one tool includes 'github' in its name while the other does not, creating a minor deviation in naming pattern. The verbs 'create' and 'git_diff' (which is more of a noun phrase) are not perfectly aligned in style.

Tool Count2/5

With only 2 tools, the server feels thin for a domain that appears to involve GitHub and repository operations. This limited set does not provide comprehensive coverage for typical workflows, such as reading or updating issues, managing repositories, or handling other common tasks.

Completeness2/5

The tool set is severely incomplete for a server named 'MCP Issue' and including GitHub-related functionality. There are significant gaps: no tools to list, get, update, or delete issues, and no broader GitHub operations like managing pull requests or repositories. This will likely cause agent failures in many scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    B
    quality
    Not graded
    maintenance
    Enables 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
    -
  • F
    license
    B
    quality
    C
    maintenance
    Enables issue-to-code automation for GitHub and GitLab by connecting AI assistants (Claude Code, Gemini CLI, Codex) via MCP, with slash commands for issue analysis, planning, implementation, testing, documentation, and PR creation.
    33
    9
    -