mcp-github-tool-eval
GitHub Model Context Protocol (MCP) Server mit Tool-Calling-Evaluierung
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.mdSchnellstart & Verwendung
1. Installation
git clone https://github.com/vishalmurugan1986/github-mcp-server.git
cd github-mcp-server
pip install -r requirements.txt2. 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.serverVerbinden 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_evalErgebnisse werden in eval/results.json gespeichert und mit vollständigen Metrik-Aufschlüsselungen ausgegeben.
Sicherheitsdesign-Prinzipien
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.pyfest codiert. Eine unbestätigte Anfrage kann keine versehentliche Mutation verursachen.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.
This server cannot be installed
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 Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with GitHub repositories through the GitHub API using fastMCP. Supports repository information retrieval and management with secure token-based authentication.
- AlicenseNot gradedqualityDmaintenanceEnables GitHub API integration via MCP, allowing search, repository details, file contents, and issue management.452ISC
- AlicenseNot gradedqualityDmaintenanceEnables management of GitHub issues, milestones, projects, and labels for a single repository via MCP tools.4521ISC
- FlicenseNot gradedqualityDmaintenanceEnables managing GitHub repositories, files, and user information through MCP, with support for creating, updating, and deleting repository contents, as well as fetching user profiles.1
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.
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/vishalmurugan1986/mcp-github-tool-eval'
If you have feedback or need assistance with the MCP directory API, please join our Discord server