Skip to main content
Glama
vishalmurugan1986

mcp-github-tool-eval

GitHub Model Context Protocol (MCP) Server mit Tool-Calling-Evaluierung

Python 3.10+ Model Context Protocol Llama 3.1 70B FastMCP

Ein produktionsreifer FastMCP GitHub-Server, der Lese- und bestätigungsgeschützte Schreiboperationen bereitstellt, gepaart mit einer 30-Fälle-Evaluierungs-Harness, die Tool-Auswahl, Argumentgenauigkeit und Sicherheit bei destruktiven Bestätigungen bewertet.


Executive Summary & Evaluierungsmatrix

LLM-Agent-Tool-Calling erfordert strenge Sicherheitsgrenzen. Dieser MCP-Server erzwingt serverseitige Bestätigungs-Gates für alle mutierenden Aktionen: Unbestätigte Anfragen geben Dry-Run-Vorschauen zurück, anstatt Mutationen auf GitHub auszuführen.

Benchmark-Leistung (30 beschriftete Szenarien)

Bewertet anhand eines 30-Fälle-Benchmarks, der Standard-Tool-Aufrufe, unterbestimmte/mehrdeutige Anfragen und destruktive, bestätigungsgeschützte Aktionen testet:

Metrik

Durchgang 1 (Zero-Shot)

Durchgang 3 (optimiert)

Genauigkeit der Tool-Auswahl

76,7 % (23/30)

90,0 % (27/30)

Argumentgenauigkeit (bei korrektem Tool)

52,6 % (10/19)

100,0 % (19/19)

Genauigkeit des Bestätigungs-Flags (destruktiv)

50,0 % (3/6)

100,0 % (7/7)

— Kategorie Standard-Tool-Auswahl

100,0 % (8/8)

100,0 % (8/8)

— Kategorie Fehler / destruktive Aktion

90,9 % (10/11)

90,9 % (10/11)

— Kategorie Mehrdeutig / fehlendes Argument

25,0 % (2/8)

75,0 % (6/8)


Related MCP server: GitHub MCP Server

Tool-Architektur & Operationen

flowchart TD
    A[User Request] --> B[LLM Tool-Calling Engine]
    B --> C{Tool Category}
    
    C -- Read Tool --> D[Execute GitHub API Call Directly]
    D --> E[Return API Payload]
    
    C -- Write / Destructive --> F{confirm == true ?}
    F -- Yes --> G[Execute State Mutation on GitHub]
    G --> H[Return Success / Number / URL]
    
    F -- No --> I[Return Dry-Run Preview of Mutation]

Verfügbare Tools

Leseoperationen (sofortige Ausführung)

  • list_issues(owner, repo, state): Listet offene/geschlossene Issues in einem Repository auf.

  • get_issue(owner, repo, issue_number): Ruft detaillierte Metadaten für ein einzelnes Issue ab.

  • list_pull_requests(owner, repo, state): Listet Pull Requests in einem Repository auf.

  • get_pull_request(owner, repo, pr_number): Ruft Details und Merge-Fähigkeit für einen PR ab.

  • search_code(query, owner, repo): Durchsucht die GitHub-Codebasis global oder auf ein Repository beschränkt.

Destruktive Operationen (bestätigungsgeschützt)

  • create_issue(owner, repo, title, body, confirm=False): Erstellt ein Issue nur bei Bestätigung; gibt andernfalls eine Vorschau zurück.

  • close_issue(owner, repo, issue_number, confirm=False): Schließt ein Issue nur bei Bestätigung; gibt andernfalls eine Vorschau zurück.

  • add_comment(owner, repo, issue_number, body, confirm=False): Kommentiert ein Issue/PR nur bei Bestätigung; gibt andernfalls eine Vorschau zurück.

  • merge_pull_request(owner, repo, pr_number, confirm=False): Merged einen PR nur bei Bestätigung; gibt andernfalls eine Vorschau zurück.


Projektstruktur

├── app/
│   ├── __init__.py          # Public MCP server & client exports
│   ├── server.py            # FastMCP server definition & tool routing
│   └── github_client.py     # GitHub REST API client with dry-run previews
├── eval/
│   ├── __init__.py          # Evaluation package
│   ├── tool_schemas.py      # OpenAI-compatible function definitions & prompt
│   ├── test_set.json        # 30 labeled evaluation test cases
│   └── run_eval.py          # Benchmark harness scoring tool, args, and confirm flags
├── requirements.txt         # Dependencies (mcp, requests, openai)
├── WRITEUP.md               # Detailed evaluation report & iteration analysis
└── README.md

Schnellstart & Verwendung

1. Installation

git clone https://github.com/vishalmurugan1986/github-mcp-server.git
cd github-mcp-server

pip install -r requirements.txt

2. Umgebungskonfiguration

export NVIDIA_API_KEY="nvapi-your-key-here"
# Optional: real GitHub write access
export GITHUB_TOKEN="ghp_your_personal_access_token"

3. Ausführen des MCP-Servers

python -m app.server

Verbinden Sie einen MCP-Client (wie Claude Desktop oder benutzerdefinierte Agenten) über Standard-I/O.

4. Ausführen der Tool-Calling-Evaluierungs-Suite

python -m eval.run_eval

Ergebnisse werden in eval/results.json gespeichert und mit vollständigen Metrik-Aufschlüsselungen ausgegeben.


Sicherheitsdesign-Prinzipien

  1. Bestätigung mit Verteidigung in der Tiefe: Anstatt sich ausschließlich auf Prompt-Anweisungen zu verlassen, sind Bestätigungs-Guards direkt in app/github_client.py fest codiert. Eine unbestätigte Anfrage kann keine versehentliche Mutation verursachen.

  2. Ablehnung von Mehrdeutigkeiten: Das Modell wird angewiesen, die Ausführung zu verweigern und klärende Fragen zu stellen, wenn Repositorys, Issue-Nummern oder Parameter nicht angegeben sind, um Platzhalter-Halluzinationen zu vermeiden.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.

  • GitHub Private MCP Pack — access private repos, org data via OAuth.

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

View all MCP Connectors

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/vishalmurugan1986/mcp-github-tool-eval'

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