Skip to main content
Glama
Gaells

technical-impact-analyst

by Gaells

🎯 MCP GitHub PR — Technical Impact Analyst

Servidor MCP (Model Context Protocol) que analisa suas contribuições no GitHub e as mapeia contra o framework de competências do Andrej Karpathy Skills.

Python 3.10+ MCP License: MIT


📋 Sumário


Related MCP server: GitHub MCP Server

🔍 Visão Geral

Este servidor MCP atua como um Analista de Impacto Técnico, conectando-se à API GraphQL do GitHub para:

  1. Extrair contribuições (Commits, PRs, Reviews) de um usuário

  2. Analisar o conteúdo contra o framework Karpathy Skills

  3. Classificar o tipo e impacto arquitetural de cada contribuição

  4. Gerar relatórios executivos semanais com tradução técnico → negócio

Os 5 Pilares do Karpathy Skills

Dimensão

Descrição

Karpathy Principle

🏗️ Building from Scratch

Soluções from first principles, substituição de deps pesadas

Goal-Driven Execution

🔍 Attention to Detail

Testes, docs, commits descritivos, diffs cirúrgicos

Surgical Changes

🧠 Deep Understanding

Root cause analysis, otimização na camada certa

Think Before Coding

Technical Clarity

Código simples, PRs focados, 50 linhas > 200 linhas

Simplicity First

🧩 Problem Solving

Desafios complexos, tradeoffs, soluções verificáveis

Goal-Driven Execution


🏛️ Arquitetura

O projeto segue Clean Architecture com separação clara de camadas:

mcp-github-pr/
├── server.py                          # 🚀 Entrypoint do servidor MCP
├── pyproject.toml                     # Configuração do projeto
├── .env.example                       # Template de variáveis de ambiente
│
├── src/
│   ├── domain/                        # 🟢 CAMADA DE DOMÍNIO
│   │   ├── entities.py                #   Entidades: Commit, PR, Review
│   │   ├── karpathy_skills.py         #   Modelo: Skills, Scores, Alignment
│   │   └── interfaces.py             #   Contratos: GitHubClient, Cache
│   │
│   ├── use_cases/                     # 🔵 CAMADA DE CASOS DE USO
│   │   ├── get_contribution_metrics.py
│   │   ├── analyze_karpathy_alignment.py
│   │   ├── get_architecture_impact.py
│   │   └── generate_weekly_summary.py
│   │
│   └── infrastructure/                # 🟠 CAMADA DE INFRAESTRUTURA
│       ├── github_client.py           #   Cliente GitHub GraphQL + REST
│       └── database.py               #   Cache SQLite com aiosqlite
│
└── data/                              # Cache SQLite (gitignored)
    └── cache.db

Fluxo de Dependências

Domain ← Use Cases ← Infrastructure ← Server (MCP)
  │          │              │
  │          │              ├── GitHubClient (httpx)
  │          │              └── SQLiteCache (aiosqlite)
  │          │
  │          ├── GetContributionMetrics
  │          ├── AnalyzeKarpathyAlignment
  │          ├── GetArchitectureImpact
  │          └── GenerateWeeklyImpactSummary
  │
  ├── Entities (Commit, PR, Review)
  ├── KarpathySkills (SkillCategory, SkillScore)
  └── Interfaces (ABCs)

🛠️ Ferramentas (Tools)

1. get_contribution_metrics

Retorna dados brutos de contribuição filtrados por período.

{
  "username": "choqs",
  "period": "2025-04-01 → 2025-04-30",
  "total_commits": 47,
  "total_prs": 12,
  "total_reviews": 8,
  "prs_merged": 10,
  "prs_with_tests": 7,
  "total_additions": 3421,
  "total_deletions": 1205,
  "repositories": ["org/api", "org/frontend"]
}

2. analyze_karpathy_alignment

Analisa contribuições e retorna scores 1-5 por dimensão com evidências.

{
  "overall_score": 3.8,
  "scores": {
    "Building from Scratch": {
      "score": 4,
      "level": "Proficient",
      "evidence": ["PR #42: 'Implement custom auth from scratch'"],
      "suggestions": []
    },
    "Attention to Detail": {
      "score": 3,
      "level": "Competent",
      "evidence": ["70% of PRs include test updates"],
      "suggestions": ["Update README/docs alongside code changes"]
    }
  },
  "spider_chart_data": {
    "Building from Scratch": 4,
    "Attention to Detail": 3,
    "Deep Understanding": 4,
    "Technical Clarity": 4,
    "Problem Solving": 3
  },
  "first_principles_indicators": [
    "PR #42: Replaced dependency with custom implementation"
  ]
}

3. get_architecture_impact

Classifica contribuições e avalia impacto na saúde do código.

{
  "impacts": [
    {
      "pr_number": 42,
      "contribution_type": "refactor",
      "impact_level": "high",
      "health_delta": 0.50,
      "complexity_score": 0.67,
      "first_principles": {
        "detected": true,
        "explanation": "Removed unnecessary abstraction layer"
      }
    }
  ]
}

4. generate_weekly_impact_summary

Consolida atividades da semana em um relatório executivo.

{
  "executive_summary": "During the week of May 05 to May 11, 2025...",
  "key_achievements": [
    "Merged 5 pull request(s) across 2 repositories",
    "3 PR(s) included test coverage updates"
  ],
  "business_value_translations": [
    "Improved code maintainability and reduced technical debt",
    "Delivered new functionality expanding product capabilities"
  ],
  "spider_chart_data": { ... }
}

📦 Instalação

Pré-requisitos

  • Python 3.10+

  • uv (recomendado) ou pip

Com uv (Recomendado)

# Clonar o repositório
git clone https://github.com/seu-usuario/mcp-github-pr.git
cd mcp-github-pr

# Instalar dependências
uv sync

# Copiar e configurar variáveis de ambiente
cp .env.example .env
# Edite o .env com seu GITHUB_TOKEN e GITHUB_USERNAME

Com pip

# Clonar o repositório
git clone https://github.com/seu-usuario/mcp-github-pr.git
cd mcp-github-pr

# Criar virtual environment
python -m venv .venv

# Ativar (Windows)
.venv\Scripts\activate

# Ativar (Linux/Mac)
source .venv/bin/activate

# Instalar dependências
pip install -e .

# Configurar ambiente
cp .env.example .env

Dependências de Desenvolvimento

# Com uv
uv sync --extra dev

# Com pip
pip install -e ".[dev]"

🔑 Configuração do GitHub Token

  1. Acesse GitHub Settings → Tokens

  2. Clique em "Generate new token (classic)"

  3. Selecione os escopos (scopes):

    • repo — Acesso completo a repositórios

    • read:user — Leitura de perfil do usuário

    • read:org — Leitura de organizações (se necessário)

  4. Copie o token gerado

  5. Configure no arquivo .env:

GITHUB_TOKEN=ghp_seu_token_aqui
GITHUB_USERNAME=seu_username

⚠️ Nunca commite o arquivo .env! Ele já está no .gitignore.


🔌 Registrando o Servidor

Claude Desktop

Adicione ao arquivo de configuração do Claude Desktop (claude_desktop_config.json):

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "technical-impact-analyst": {
      "command": "uv",
      "args": ["run", "--directory", "D:\\dev\\mcp-github-pr", "python", "server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_seu_token",
        "GITHUB_USERNAME": "seu_username"
      }
    }
  }
}

Alternativa com pip/python:

{
  "mcpServers": {
    "technical-impact-analyst": {
      "command": "D:\\dev\\mcp-github-pr\\.venv\\Scripts\\python.exe",
      "args": ["D:\\dev\\mcp-github-pr\\server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_seu_token",
        "GITHUB_USERNAME": "seu_username"
      }
    }
  }
}

Cursor

Adicione ao arquivo .cursor/mcp.json na raiz do seu projeto:

{
  "mcpServers": {
    "technical-impact-analyst": {
      "command": "uv",
      "args": ["run", "--directory", "D:\\dev\\mcp-github-pr", "python", "server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_seu_token",
        "GITHUB_USERNAME": "seu_username"
      }
    }
  }
}

Antigravity

Configure nas settings do Antigravity, seção MCP Servers:

{
  "technical-impact-analyst": {
    "command": "uv",
    "args": ["run", "--directory", "D:\\dev\\mcp-github-pr", "python", "server.py"],
    "env": {
      "GITHUB_TOKEN": "ghp_seu_token",
      "GITHUB_USERNAME": "seu_username"
    }
  }
}

Teste Manual

# Rodar o servidor diretamente (modo stdio)
cd D:\dev\mcp-github-pr
uv run python server.py

# Ou com o MCP Inspector
uv run fastmcp dev inspector server.py

💡 Uso

Uma vez registrado, você pode invocar as ferramentas diretamente no chat:

Exemplos de Prompts

"Mostre minhas métricas de contribuição do último mês"

"Analise meu alinhamento com o Karpathy Skills framework nos últimos 7 dias"

"Qual foi o impacto arquitetural das minhas contribuições no repositório org/api?"

"Gere um resumo executivo da minha semana para stakeholders"

"Compare meu Karpathy Score desta semana com a semana passada"

🧠 Karpathy Skills Framework

O framework é baseado nas observações de Andrej Karpathy sobre pitfalls de engenharia de software, estruturado em 4 princípios:

1. Think Before Coding

"Don't assume. Don't hide confusion. Surface tradeoffs."

Mapeado para: Deep Understanding + Problem Solving

2. Simplicity First

"Minimum code that solves the problem. Nothing speculative."

Mapeado para: Technical Clarity

3. Surgical Changes

"Touch only what you must. Clean up only your own mess."

Mapeado para: Attention to Detail

4. Goal-Driven Execution

"Define success criteria. Loop until verified."

Mapeado para: Building from Scratch + Problem Solving

Como o Score é Calculado

Cada dimensão é avaliada com heurísticas baseadas em:

Sinal

Dimensão Afetada

Efeito

PRs com testes

Attention to Detail

+1 se >80%

Commits descritivos

Attention to Detail

+1 se >70%

PRs com docs atualizados

Attention to Detail

+1 se >50%

root cause no commit msg

Deep Understanding

+1 se ≥2

Reviews substantivos

Deep Understanding

+1 se ≥3

PR size < 200 linhas

Technical Clarity

+1

Ratio deletions/additions

Technical Clarity

Evidência

First-principles patterns

Build from Scratch

+1/+2

PRs 500+ linhas

Build from Scratch

+1

Cross-cutting changes (5+ files)

Problem Solving

+1

Merge rate ≥80%

Problem Solving

Evidência


🔧 Stack Técnica

Tecnologia

Propósito

Python 3.10+

Runtime

FastMCP

SDK do Model Context Protocol

httpx

HTTP client assíncrono

aiosqlite

Cache SQLite assíncrono

Pydantic

Validação de dados

python-dotenv

Variáveis de ambiente

mypy

Type checking estrito

ruff

Linter + formatter

pytest

Testing


📄 Licença

MIT License — veja LICENSE para detalhes.

Available Tools

8 tools
analyze_karpathy_alignmentA

Analyze GitHub contributions against the Andrej Karpathy Skills framework.

Returns scores (1-5) for five skill dimensions:

  • Building from Scratch: First-principles thinking and custom implementations

  • Attention to Detail: Tests, docs, descriptive commits, clean diffs

  • Deep Understanding: Root cause analysis, performance optimization, substantive reviews

  • Technical Clarity: Focused PRs, clear descriptions, code simplification

  • Problem Solving: Complex challenges, cross-cutting changes, effective solutions

Also detects "First Principles" indicators (Karpathy's emphasis on understanding things from scratch rather than relying on heavy abstractions).

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter (e.g. 'owner/repo').
sinceNoStart date (ISO format). Defaults to 30 days ago.
untilNoEnd date (ISO format). Defaults to today.
usernameNoGitHub username. Defaults to GITHUB_USERNAME env var.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly states that it returns scores for five dimensions and detects First Principles indicators, with definitions for each dimension. This gives the agent an accurate understanding of what the tool computes and outputs, though it doesn't explicitly state that it's a read-only operation.

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 well-structured and front-loaded with the primary purpose, followed by a clear bulleted list of dimensions. It is slightly redundant in mentioning 'First Principles' indicators after already covering 'Building from Scratch' in the bullet list, but overall each sentence earns its place.

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

Completeness4/5

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

The tool has an output schema, so return values are covered separately. The description adds context about the scoring dimensions, making it clear what the analysis emphasizes. It is sufficiently complete for a non-destructive analysis tool, though it could mention potential limitations or data sources beyond GitHub.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already fully documents all four parameters. The description adds no additional parameter-specific details beyond the schema, which is acceptable given high schema coverage, but it does not enhance parameter understanding.

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 a specific verb ('Analyze') and a well-defined resource ('GitHub contributions against the Andrej Karpathy Skills framework'). It clearly differentiates from sibling tools by covering all five skill dimensions at once, whereas siblings like scan_first_principles and detect_attention_to_detail focus on single dimensions.

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

Usage Guidelines4/5

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

The description provides clear context: it is for analyzing contributions against the full Karpathy framework, which implies when to use it. However, it does not explicitly mention when NOT to use it or point to alternative sibling tools, so it stops short of full guidance.

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

detect_attention_to_detailA

Advanced attention-to-detail analysis with bonus scoring.

Checks:

  • README updated alongside API changes

  • CHANGELOG updated

  • Edge case tests (not just happy path)

  • Descriptive commit messages

  • Migrations included with schema changes

  • Environment variables documented

  • Type hints updated

Returns bonus points, anti-pattern flags (red/yellow), and checklist.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter.
sinceNoStart date (ISO format). Defaults to 30 days ago.
untilNoEnd date (ISO format). Defaults to today.
usernameNoGitHub username.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the evaluation criteria (7 checks) and the return format (bonus points, anti-pattern flags, checklist), which is useful behavioral context. However, it does not state whether the tool is read-only, requires any authentication, or has side effects, leaving a notable gap for a tool with no annotations.

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 well-structured with a brief intro followed by a bulleted checklist. It is front-loaded with the purpose, and every line adds value. No fluff or redundant information.

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

Completeness4/5

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

The description explains what the tool does, what exact checks it performs, and what it returns. Since an output schema exists, return details are covered elsewhere. The main missing element is usage guidance and explicit caveats, but overall the description covers the core behavior quite well for a moderately complex analysis 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%, meaning every parameter already has a description. The tool description adds no additional semantics about how parameters like 'repo', 'since', 'until', or 'username' influence the analysis. Per the guideline, baseline 3 applies when schema does the heavy lifting.

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

Purpose5/5

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

The description opens with a specific verb ('detect') and resource ('attention-to-detail'), then enumerates a concrete checklist of criteria (README, CHANGELOG, tests, commit messages, etc.). This makes the tool's purpose highly specific and clearly distinguishes it from sibling analysis tools like get_contribution_metrics or analyze_karpathy_alignment.

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 checklist implies the tool is used to assess thoroughness of code changes, which gives some contextual hint. However, there is no explicit guidance on when to use this tool versus siblings, nor any exclusions or alternative tool mentions. It is only implicitly usable.

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

export_evolution_dataA

Export Karpathy skill evolution data for Spider Chart visualization.

Analyzes the last N weeks and returns scores for each dimension per week, plus trend analysis (improving/declining/stable).

Designed to feed the external Next.js Karpathy Dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter.
weeksNoNumber of weeks to analyze (default: 12).
usernameNoGitHub username.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It explains the tool analyzes the last N weeks and returns per-dimension scores plus trends, which is useful behavioral context. However, it does not explicitly state whether the operation is read-only, has side effects, or requires any permissions.

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 three sentences long, front-loaded with the main purpose, and every sentence adds value. It is concise, well-structured, and free of redundant phrasing.

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

Completeness5/5

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

The output schema exists, so return values are documented. The description covers the tool's purpose, behavior, and intended use case (feeding the dashboard). Given the tool's moderate complexity and available structured data, the description is complete.

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 has 100% coverage with clear descriptions for all three parameters (repo, weeks, username). The description adds a slight clarification by mentioning 'last N weeks', which maps to the weeks parameter, but this does not go beyond the schema's existing descriptions.

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 tool exports Karpathy skill evolution data for Spider Chart visualization. It specifies the resource (evolution data), the verb (Export), and adds scope with weekly analysis and trend detection, distinguishing it from siblings like get_contribution_metrics.

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 usage for generating spider chart visualizations and feeding the Next.js dashboard, but it does not explicitly state when to use this vs alternatives or mention any exclusions. It lacks direct comparison to sibling tools.

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

generate_client_reportA

Generate a client-facing delivery report translating technical contributions into business value.

Designed for freelancers, MEI, and consultants who need to communicate value to non-technical stakeholders.

Returns a formatted Markdown report with:

  • Executive summary

  • Deliveries table with business impact

  • Impact highlights

  • Period metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter.
sinceNoStart date (ISO format). Defaults to 30 days ago.
untilNoEnd date (ISO format). Defaults to today.
usernameNoGitHub username.
client_nameNoOptional client name for the report header.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the output format (Markdown report with specific sections) but does not mention data sources, authentication requirements, or whether it performs any side effects. For a report generator, the output description adds value, but more transparency would be beneficial.

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 well-structured with a clear opening sentence, a targeted audience note, and a bulleted list of output sections. Every sentence adds value and the content is front-loaded, making it easy to scan.

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

Completeness4/5

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

For a report generation tool with 5 optional parameters, no annotations, and an output schema, the description covers the purpose, audience, and output structure. It lacks explicit mention of data dependencies but is otherwise complete for a tool of this complexity.

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 provides 100% description coverage for all parameters (repo, since, until, username, client_name) with clear defaults and formats. The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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 tool generates a client-facing delivery report that translates technical contributions into business value, using a specific verb and resource. It distinguishes itself from sibling tools by emphasizing the audience (non-technical stakeholders) and the output format (Markdown with sections).

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

Usage Guidelines4/5

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

It identifies the target users (freelancers, MEI, consultants) and the scenario (communicating value to non-technical stakeholders), providing clear usage context. It does not explicitly name alternatives or exclusions, but the intended use case is clear.

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

generate_weekly_impact_summaryA

Generate an executive weekly impact summary for stakeholders.

Consolidates the week's activities into a structured report including:

  • Executive paragraph summarizing contributions

  • Key achievements list

  • Karpathy Skills highlights

  • Metrics snapshot

  • Business value translations (technical → business language)

  • Spider chart data for visualization

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter.
usernameNoGitHub username.
week_offsetNoHow many weeks back (0 = current week, 1 = last week, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden of behavioral disclosure. It describes the report structure and that it consolidates weekly activities, which suggests a non-mutating aggregation, but it does not explicitly state side-effect safety, required permissions, or behavior when filters are omitted.

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

Conciseness5/5

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

The description is front-loaded with a one-sentence purpose followed by a scannable bullet list of report components. Every sentence/line adds meaningful detail and there is no filler.

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

Completeness4/5

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

For a tool with three optional parameters and a rich output schema, the description gives a solid understanding of intended use and output sections. It omits edge cases like an empty week, but the schema and output schema cover most parameter and return semantics.

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 describes all three optional parameters with 100% coverage, so the baseline is 3. The description adds little beyond the word 'weekly' aligning with week_offset, and does not explain how repo or username would influence the summary content.

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 opens with a specific action ('Generate an executive weekly impact summary for stakeholders') and enumerates distinct deliverables (key achievements, Karpathy Skills, metrics, business value translations, spider chart data). This clearly differentiates it from siblings like get_contribution_metrics or generate_client_report.

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

Usage Guidelines4/5

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

The context is clear: this is for a weekly executive stakeholder summary, implying a recurring cadence. However, it does not explicitly mention alternatives or state when not to use this tool versus siblings like generate_client_report.

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

get_architecture_impactA

Identify contribution types (Feature, Refactor, Bug Fix) and assess their impact on codebase health.

For each PR, returns:

  • Classification: Feature, Refactor, Bug Fix, Performance, Documentation, Test, Chore

  • Impact level: critical, high, medium, low, trivial

  • Health delta: -1.0 (degradation) to +1.0 (improvement)

  • Complexity score: 0.0 to 1.0

  • First Principles detection: whether the contribution demonstrates building from scratch

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter.
sinceNoStart date (ISO format). Defaults to 30 days ago.
untilNoEnd date (ISO format). Defaults to today.
usernameNoGitHub username.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden. It does disclose the analysis nature ('identify', 'assess') and details the return structure, which is useful. However, it omits any mention of authentication, rate limits, or side effects, though the tool appears to be a read-only query. It adds some context but not rich 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.

Conciseness4/5

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

The description is concise and front-loaded with the main purpose. However, the first sentence lists three contribution types that are immediately repeated in the bullet list with the full set of seven, creating minor redundancy. Overall, it is efficiently structured.

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

Completeness4/5

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

The description adequately captures the tool's core functionality and return values, complementing the rich input schema and output schema. It lacks comparisons to sibling tools and notes on permissions or limitations, but for an analysis tool this is a minor gap.

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 coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema's parameter descriptions (e.g., repo filter, date range), but the schema itself is clear and self-sufficient.

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 tool's specific function: identifying contribution types and assessing their impact on codebase health. It lists detailed output fields (classification, impact level, health delta, complexity, first principles) that distinguish it from generic analytics tools like get_contribution_metrics.

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 offers no explicit guidance on when to use this tool versus its siblings (e.g., get_contribution_metrics, scan_first_principles). It only describes the output without mentioning alternatives, exclusions, or typical use cases, leaving the agent to infer.

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

get_contribution_metricsA

Retrieve raw GitHub contribution metrics filtered by time period.

Returns aggregated data including commits, PRs, reviews, and code changes. Useful for understanding contribution volume and patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter (e.g. 'owner/repo').
sinceNoStart date (ISO format, e.g. '2025-01-01'). Defaults to 30 days ago.
untilNoEnd date (ISO format, e.g. '2025-01-31'). Defaults to today.
usernameNoGitHub username. Defaults to GITHUB_USERNAME env var.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses that the operation is a retrieval and that returns are aggregated, which is helpful. However, there is no annotation context and the description does not mention authentication, rate limits, pagination, or potential side effects. The use of 'raw' followed by 'aggregated data' also introduces ambiguity about the true nature of the output.

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 compact: two sentences that state purpose, return content, and use case. It is front-loaded with the verb and resource, and no sentence is wasted. The minor 'raw/aggregated' tension is a semantic concern, not a structural one.

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

Completeness4/5

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

With an output schema present and full parameter documentation in the schema, the description provides sufficient context for basic use. It names the key data categories and the primary use case. It lacks explicit alternative tool references and does not clarify the 'raw' vs 'aggregated' distinction, but the presence of a robust schema compensates.

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 coverage is 100%, so the parameters are already well-documented in the input schema. The description does add a general 'filtered by time period' clue, but it does not provide additional meaning beyond what the schema already gives for each parameter. This meets the baseline for high schema coverage.

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

Purpose5/5

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

The description opens with a clear verb ('Retrieve'), a specific resource ('raw GitHub contribution metrics'), and a scoping mechanism ('filtered by time period'). It immediately distinguishes this from sibling tools like generate_weekly_impact_summary or analyze_karpathy_alignment by emphasizing raw retrieval and specific metric categories (commits, PRs, reviews, code changes).

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

Usage Guidelines4/5

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

The phrase 'Useful for understanding contribution volume and patterns' provides clear context on when to use the tool. However, it does not explicitly mention when not to use it or point to alternative sibling tools, so it falls short of the highest bar.

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

scan_first_principlesA

Scan contributions for first-principles thinking patterns.

Analyzes PRs looking for:

  • Dependency removals (package.json, requirements.txt, go.mod, etc.)

  • Custom implementations replacing external libraries

  • Utility/internal file additions

  • Root cause fixes vs band-aid patches

  • First-principles keywords in commit messages

Returns:

  • Abstraction Control Level (0.0-1.0)

  • Dependency Delta (negative = fewer deps = positive)

  • Root Fix Ratio (0.0-1.0)

  • Overall Score (1.0-5.0)

  • Detailed signals and evidence

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository filter (e.g. 'owner/repo').
sinceNoStart date (ISO format). Defaults to 30 days ago.
untilNoEnd date (ISO format). Defaults to today.
usernameNoGitHub username. Defaults to GITHUB_USERNAME env var.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It transparently lists what it analyzes and the exact return metrics with semantics (e.g., 'Dependency Delta (negative = fewer deps = positive)'), but it does not explicitly state read-only behavior or auth requirements, though the verb 'Scan' implies non-destructive action.

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

Conciseness5/5

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

The description is succinct: a one-line summary, a four-item bullet list of analysis criteria, and a five-item bullet list of returns. It front-loads the primary purpose and uses structured bullets without unnecessary prose, making it easy for an agent to parse quickly.

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

Completeness5/5

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

The description provides both the analysis criteria and the return metrics, giving a complete picture of what the tool does and what to expect. Since an output schema exists, the return values are also structured, but the description alone is sufficient for an agent to decide whether to invoke this 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?

All four parameters have descriptions in the schema (100% coverage), so the description does not need to re-explain them. The description does not add parameter-specific semantics beyond the schema, providing only the general context of scanning contributions. This meets the baseline for high schema coverage.

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

Purpose5/5

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

The description opens with 'Scan contributions for first-principles thinking patterns,' which is a specific verb+resource combination. The bulleted list details the exact patterns analyzed and the output metrics, clearly distinguishing this tool from siblings like 'get_contribution_metrics' and 'analyze_karpathy_alignment'.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: to analyze PRs for first-principles thinking, listing the exact signals it looks for. However, it does not explicitly state when not to use it or mention alternative sibling tools for related analyses, so it stops short of full usage guidance.

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.

  1. 8 tool updatesv1.0.0
    • First observedanalyze_karpathy_alignment
    • First observeddetect_attention_to_detail
    • First observedexport_evolution_data
    • First observedgenerate_client_report
    • First observedgenerate_weekly_impact_summary
    • First observedget_architecture_impact
    • First observedget_contribution_metrics
    • First observedscan_first_principles

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have distinct purposes: metrics retrieval, skills alignment, architecture impact, first-principles scanning, attention-to-detail checking, and report generation. The two report generators (weekly summary vs client report) could be confused, but their descriptions clarify different audiences and content.

Naming Consistency4/5

All tool names follow a verb_noun pattern (export_, get_, analyze_, generate_, scan_, detect_). There is some variety in verbs (export, get, analyze, generate, scan, detect) but no mixing of naming conventions like camelCase or inconsistent styles, making the set predictable.

Tool Count5/5

Eight tools is well-scoped for a technical impact analysis server. Each tool covers a distinct aspect of analysis or reporting, and the count is neither too thin nor overloaded.

Completeness4/5

The tool surface covers the full workflow from raw metrics retrieval to specialized Karpathy skill analysis and report generation. Minor gaps exist, such as lacking a tool for directly comparing historical periods beyond export_evolution_data, but the core capabilities are present and well-integrated.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to analyze employee GitHub activity including PRs, code reviews, comments, and contributions across repositories with time-range filtering for performance assessment and impact analysis.
    6
    467
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to access and analyze GitHub profile data, providing insights on repositories, commit history, coding patterns, and generating portfolio summaries for developers and recruiters.
    8
    2
    MIT

Latest Blog Posts

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/Gaells/mcp-github-performance-review'

If you have feedback or need assistance with the MCP directory API, please join our Discord server