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. Неподтверждённый запрос не может привести к случайному изменению.Отказ при неоднозначности: модели предписано отказываться от выполнения и задавать уточняющие вопросы всякий раз, когда репозитории, номера задач или параметры не указаны, что позволяет избежать галлюцинаций с заполнителями.
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