mcp-github-tool-eval
GitHub Model Context Protocol (MCP) Server with Tool-Calling Evaluation
Промышленный FastMCP-сервер GitHub, предоставляющий операции чтения и операции записи с подтверждением, в паре с оценочным стендом из 30 сценариев, оценивающим выбор инструментов, точность аргументов и безопасность подтверждения деструктивных действий.
Краткое резюме и матрица оценки
Вызов инструментов LLM-агентом требует строгих границ безопасности. Этот MCP-сервер обеспечивает подтверждение на уровне сервера для всех изменяющих действий: неподтверждённые запросы возвращают предварительные просмотры (dry-run) вместо выполнения изменений в GitHub.
Результаты бенчмарка (30 размеченных сценариев)
Оценка по бенчмарку из 30 сценариев, проверяющему стандартные вызовы инструментов, недостаточно определённые/неоднозначные запросы и деструктивные действия с подтверждением:
Метрика | Проход 1 (Zero-Shot) | Проход 3 (Оптимизированный) |
Точность выбора инструмента | 76,7% (23/30) | 90,0% (27/30) |
Точность аргументов (при верном инструменте) | 52,6% (10/19) | 100,0% (19/19) |
Точность флага подтверждения (деструктивные) | 50,0% (3/6) | 100,0% (7/7) |
— Категория стандартного выбора инструмента | 100,0% (8/8) | 100,0% (8/8) |
— Категория ошибок / деструктивных действий | 90,9% (10/11) | 90,9% (10/11) |
— Категория неоднозначных / отсутствующих аргументов | 25,0% (2/8) | 75,0% (6/8) |
Related MCP server: GitHub MCP Server
Архитектура инструментов и операции
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]Доступные инструменты
Операции чтения (немедленное выполнение)
list_issues(owner, repo, state): Список открытых/закрытых задач в репозитории.get_issue(owner, repo, issue_number): Получение подробных метаданных для одной задачи.list_pull_requests(owner, repo, state): Список pull request'ов в репозитории.get_pull_request(owner, repo, pr_number): Получение сведений и информации о возможности слияния для PR.search_code(query, owner, repo): Поиск по кодовой базе GitHub глобально или в пределах репозитория.
Деструктивные операции (с подтверждением)
create_issue(owner, repo, title, body, confirm=False): Создаёт задачу только при подтверждении; в противном случае возвращает предварительный просмотр.close_issue(owner, repo, issue_number, confirm=False): Закрывает задачу только при подтверждении; в противном случае возвращает предварительный просмотр.add_comment(owner, repo, issue_number, body, confirm=False): Оставляет комментарий к задаче/PR только при подтверждении; в противном случае возвращает предварительный просмотр.merge_pull_request(owner, repo, pr_number, confirm=False): Выполняет слияние PR только при подтверждении; в противном случае возвращает предварительный просмотр.
Структура проекта
├── 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Быстрый старт и использование
1. Установка
git clone https://github.com/vishalmurugan1986/github-mcp-server.git
cd github-mcp-server
pip install -r requirements.txt2. Настройка окружения
export NVIDIA_API_KEY="nvapi-your-key-here"
# Optional: real GitHub write access
export GITHUB_TOKEN="ghp_your_personal_access_token"3. Запуск MCP-сервера
python -m app.serverПодключите MCP-клиент (например, Claude Desktop или пользовательских агентов) через стандартный ввод-вывод.
4. Запуск набора оценки вызова инструментов
python -m eval.run_evalРезультаты сохраняются в eval/results.json и выводятся с полной разбивкой по метрикам.
Принципы безопасности
Многоуровневое подтверждение: вместо того чтобы полагаться исключительно на инструкции в промпте, защитные проверки подтверждения жёстко прописаны непосредственно в
app/github_client.py. Неподтверждённый запрос не может привести к случайному изменению.Отказ при неоднозначности: модели предписано отказываться от выполнения и задавать уточняющие вопросы всякий раз, когда репозитории, номера задач или параметры не указаны, что позволяет избежать галлюцинаций с заполнителями.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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 Connectors
Manage repositories, users, releases, and automate GitHub workflows
Create, deploy, and operate MCP servers directly from your GitHub repositories.
GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)
Access the GitHub API, enabling file operations, repository management, search functionality, and…
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.467ISC
- AlicenseNot gradedqualityDmaintenanceEnables management of GitHub issues, milestones, projects, and labels for a single repository via MCP tools.4671ISC
- 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-
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