Skip to main content
Glama

gts-repo-guardian 🛡️

MCP (Model Context Protocol) para gestión y revisión automática de repositorios GitHub

npm version License


📋 Descripción

gts-repo-guardian es un servidor MCP que automatiza la gestión de calidad de repositorios GitHub. Diseñado para mantener el estándar de documentación en los proyectos de @planetazuzu y GTS SOFTWARE.

Related MCP server: MCP GitHub README Generator

⚡ Características

Herramientas Disponibles

Herramienta

Descripción

review_repository

Analiza un repo y genera informe de calidad (0-100)

generate_readme

Genera README profesional automáticamente

clean_repository

Limpia y estructura el repositorio

review_all_repositories

Revisión masiva de todos los repos de un usuario

apply_improvements

Aplica mejoras automáticamente

watch_repositories

Monitoriza repos y alerta sobre problemas

🚀 Instalación

git clone https://github.com/PlanetaZero/gts-repo-guardian.git
cd gts-repo-guardian
npm install
npm run build

⚙️ Configuración

  1. Copia .env.example a .env:

cp .env.example .env
  1. Genera un token de GitHub en: https://github.com/settings/tokens

  2. Asigna el token en .env:

GITHUB_TOKEN=tu_token_aqui

🔧 Uso con OpenCode

Añade a tu configuración de OpenCode:

{
  "mcpServers": {
    "gts-repo-guardian": {
      "command": "node",
      "args": ["/ruta/a/gts-repo-guardian/dist/index.js"],
      "env": {
        "GITHUB_TOKEN": "tu_token_aqui"
      }
    }
  }
}

🔧 Uso con Claude Desktop

Añade a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "gts-repo-guardian": {
      "command": "node",
      "args": ["/ruta/a/gts-repo-guardian/dist/index.js"],
      "env": {
        "GITHUB_TOKEN": "tu_token_aqui"
      }
    }
  }
}

📊 Sistema de Puntuación

Puntuación

Color

Significado

80-100

🟢 Verde

Excelente

50-79

🟡 Amarillo

Necesita mejoras

0-49

🔴 Rojo

Necesita trabajo urgente

Reglas de Calidad

  • README.md existe y tiene >200 palabras: 30 pts

  • Repo tiene descripción en GitHub: 15 pts

  • Repo tiene al menos 3 topics: 10 pts

  • Licencia presente: 10 pts

  • .gitignore apropiado al stack: 10 pts

  • package.json con nombre y descripción: 10 pts

  • Carpetas organizadas correctamente: 10 pts

  • .env.example presente si hay variables: 5 pts

📁 Estructura del Proyecto

gts-repo-guardian/
├── src/
│   ├── index.ts              # Servidor MCP principal
│   ├── tools/
│   │   ├── review.ts         # Revisión de repos
│   │   ├── readme.ts          # Generación de READMEs
│   │   ├── clean.ts           # Limpieza y estructura
│   │   ├── batch.ts           # Revisión masiva
│   │   ├── improve.ts         # Aplicar mejoras
│   │   └── monitor.ts         # Monitorización continua
│   ├── templates/
│   │   ├── readme-sanitario.md
│   │   ├── readme-tech.md
│   │   └── readme-lab.md
│   └── config/
│       ├── rules.ts          # Reglas de calidad
│       └── profiles.ts       # Configuración de perfiles
├── package.json
├── tsconfig.json
├── .env.example
└── README.md

👤 Autor

Javier Fernández · @planet://github.com/azuzu Técnico de Emergencias Sanitarias · +25 años · La Rioja, España GTS SOFTWARE

LinkedIn GitHub


📄 Licencia

MIT License - ver LICENSE para más detalles.

Available Tools

6 tools
apply_improvementsB

Aplica las mejoras automáticamente basándose en el informe de review

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesNombre del repositorio
ownerYesDueño del repositorio
improvementsYesLista de mejoras a aplicar

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates automatic application of improvements, which implies mutation, but does not explain what files or settings are changed, whether the operation is reversible, or what permissions are needed.

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

Conciseness5/5

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

The description is a single concise sentence with no filler or redundancy. The core action and its basis are communicated immediately.

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

Completeness2/5

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

For a mutation tool with no annotations and a non-trivial inputs array, the description is too sparse. It does not clarify what 'improvements' should contain, how they will be applied to the repository, or what the operational impact is, leaving an agent with insufficient guidance for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented meaningfully. The description adds minimal semantic value beyond the schema, mainly connecting the improvements to a review report.

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 states a specific verb ('Aplica') and a resource ('las mejoras'), making the core action clear. It is distinguishable from siblings like review_repository or clean_repository, though it does not explicitly contrast itself with them.

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 phrase 'basándose en el informe de review' implies this tool should be used after a review report exists, which gives some contextual guidance. However, it does not explicitly state when not to use it or mention alternatives such as clean_repository.

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

clean_repositoryC

Limpia y estructura un repositorio automáticamente

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesNombre del repositorio
ownerYesDueño del repositorio

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing side effects. It signals an automated mutation but does not say whether it deletes files, modifies histories, creates commits or pull requests, requires permissions, or is reversible. The word 'automáticamente' adds only minimal behavioral context.

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

Conciseness4/5

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

The description is a single short sentence with no filler and is front-loaded with the action. It is easy to parse, though the brevity is also the reason behavioral and usage details are missing.

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 tool with no output schema and no annotations, and whose name suggests a potentially destructive cleanup operation, this description is incomplete. An agent cannot predict what will happen to the repository, what the result will look like, or how this relates to a review or improvement workflow.

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

Parameters3/5

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

The input schema already documents both parameters with 100% coverage, so the baseline is 3. The description adds no additional parameter-level meaning beyond referring to the repository, but it also does not need to compensate for missing schema documentation.

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

Purpose4/5

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

The description states a clear action ('limpia y estructura') and a clear resource ('un repositorio'), so an agent can identify this as a repository cleanup/organization tool. However, it does not specify what 'cleaning' or 'structuring' concretely involves, and it does not distinguish itself from the sibling tool apply_improvements.

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 gives no guidance on when to use this tool versus review_repository, apply_improvements, generate_readme, or the other siblings. There are no prerequisites, no workflow context, and no exclusions. The only usage signal is the verb itself, which is not enough for confident tool selection.

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

generate_readmeB

Genera un README profesional automáticamente basado en el código del repo

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesNombre del repositorio
ownerYesDueño del repositorio
templateNoTipo de template a usar

TDQS

B3.3/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 says the README is generated 'automáticamente' from code, but it does not disclose whether the tool writes to the repository, overwrites an existing README, requires permissions, or returns the content. Given that the tool appears to create or modify a file, this lack of side-effect information 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.

Conciseness4/5

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

The description is a single, front-loaded sentence that communicates the tool's purpose without unnecessary bulk. The word 'profesional' is slightly stylistic rather than operational, but the overall definition remains appropriately concise and scannable.

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 tool with no output schema and no annotations, the description is thin on operational detail: it does not explain the return value, whether the README is committed to the repository, how the code analysis works, or what the template parameter controls. An agent could select the correct tool from name and description alone, but it would lack enough context to predict side effects or interpret the result.

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

Parameters3/5

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

The input schema documents all three parameters with 100% coverage, so the description does not need to repeat them. The description adds no semantic value beyond the schema: it does not clarify what 'template' values like 'sanitario', 'tech', or 'lab' mean, nor how owner and repo are used. Per the high-coverage baseline, this is adequate but not enhanced.

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

Purpose5/5

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

The description uses the specific verb 'Genera' and identifies a concrete deliverable ('un README profesional') plus the input source ('basado en el código del repo'). This clearly distinguishes the tool from siblings like review_repository, clean_repository, and apply_improvements, which perform different operations. The term 'profesional' adds little precision, but the core action/resource pairing is unambiguous.

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 implies when to use the tool: when a README should be generated from repository code. However, it does not explicitly state when to use this tool versus the sibling tools, nor does it mention any exclusions or prerequisites. The usage guidance is therefore present only by inference, not by direct statement.

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

review_all_repositoriesA

Revisa todos los repos públicos de un perfil GitHub

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUsuario de GitHub

TDQS

A3.5/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. 'Review' suggests a read-only analysis, but the description does not state whether it modifies anything, what it returns, whether authentication is needed, or how the bulk review behaves across repos.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It conveys the tool's purpose and scope efficiently.

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

Completeness3/5

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

For a one-parameter tool with no output schema, the description covers the core purpose and input, but it fails to clarify expected output or behavioral details. It is minimally viable but leaves an agent guessing about the result of calling the tool.

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

Parameters3/5

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

Schema description coverage is 100% and the sole parameter username is already described as 'GitHub user'. The description adds little beyond restating the profile concept, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description states a specific verb ('review') and resource ('all public repos of a GitHub profile'), clearly distinguishing it from the sibling review_repository, which targets a single repo. The scope is unambiguous.

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 scope 'all public repos of a GitHub profile' implies when to use it versus review_repository, but it never explicitly mentions alternatives or exclusion criteria. The guidance is present only implicitly.

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

review_repositoryA

Analiza un repositorio GitHub y genera informe de calidad con puntuación 0-100

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesNombre del repositorio
ownerYesDueño del repositorio

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure burden. It communicates the core behavior—analyzing and generating a report with a numeric score—but does not clarify side effects, authentication/network requirements, or whether the report is returned directly or persisted somewhere.

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

Conciseness5/5

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

The description is a single, direct sentence that front-loads the action and the concrete output. There is no filler or redundant wording.

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

Completeness3/5

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

For a simple two-parameter tool, the core purpose is adequately stated, but the lack of an output schema and annotations leaves gaps around the report's structure and potential side effects. The absence of guidance versus review_all_repositories also weakens completeness.

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

Parameters3/5

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

Schema description coverage is 100%, with both owner and repo parameters described, so the baseline is 3. The description itself adds no parameter-level details beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the action (analyze), the resource (GitHub repository), and the output (quality report with a 0-100 score). The singular 'un repositorio' helps distinguish it from sibling review_all_repositories and other tools like generate_readme or clean_repository.

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 implies usage for analyzing one specific GitHub repository, but it provides no explicit guidance about when to use this tool versus review_all_repositories or other sibling tools. No alternatives or exclusions are mentioned, leaving the agent to infer the selection criteria.

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

watch_repositoriesC

Monitoriza repos y alerta sobre problemas

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesUsuario de GitHub a monitorizar
daysInactiveNoDías de inactividad para alertar

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says the tool monitors repos and alerts about problems, but it does not disclose whether this is read-only, whether it creates background jobs, sends notifications, stores state, or what constitutes a 'problem.' This leaves significant behavioral ambiguity.

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 concise sentence with no filler words. It front-loads the core action, though it could use extra space to clarify what 'problemas' means without becoming verbose.

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 lack of annotations, absence of an output schema, and vague behavioral language, the description is insufficient for an agent to understand the full context of invocation, expected results, or side effects. The schema covers parameters, but the broader behavior and outcome remain unclear.

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

Parameters3/5

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

The input schema covers 100% of the parameters, including descriptions for username and daysInactive. The tool description adds no parameter-level information beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 states a clear verb and resource: 'Monitoriza repos' and 'alerta sobre problemas.' It is distinguishable from sibling tools like review_repository and clean_repository, though the term 'problemas' is vague and no explicit sibling differentiation is provided.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as review_repository or review_all_repositories. The intended use is only implied by the purpose phrase, with no exclusions, prerequisites, or comparison to siblings.

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. 6 tool updatesv1.0.0
    • First observedapply_improvements
    • First observedclean_repository
    • First observedgenerate_readme
    • First observedreview_all_repositories
    • First observedreview_repository
    • First observedwatch_repositories

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation4/5

Most tools are clearly distinct: review, generate README, clean, bulk review, apply improvements, and watch. The main overlap is between clean_repository and apply_improvements, both of which modify a repo, though their stated intents are different enough to be workable.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern, such as review_repository, generate_readme, and watch_repositories. The naming is predictable and makes the action of each tool immediately clear.

Tool Count5/5

Six tools is well within the ideal range for a focused repo management server. Each tool covers a distinct part of the repo guarding workflow without unnecessary bloat.

Completeness4/5

The surface covers core lifecycle needs: review, improve, clean, document, bulk review, and monitor repos. Missing pieces like rollback/revert or report retrieval are minor and can be worked around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers