Skip to main content
Glama
vishalmurugan1986

mcp-github-tool-eval

GitHub Model Context Protocol (MCP) Server with Tool-Calling Evaluation

Python 3.10+ Model Context Protocol Llama 3.1 70B FastMCP

Промышленный 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.txt

2. Настройка окружения

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 и выводятся с полной разбивкой по метрикам.


Принципы безопасности

  1. Многоуровневое подтверждение: вместо того чтобы полагаться исключительно на инструкции в промпте, защитные проверки подтверждения жёстко прописаны непосредственно в app/github_client.py. Неподтверждённый запрос не может привести к случайному изменению.

  2. Отказ при неоднозначности: модели предписано отказываться от выполнения и задавать уточняющие вопросы всякий раз, когда репозитории, номера задач или параметры не указаны, что позволяет избежать галлюцинаций с заполнителями.

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