slim-github-mcp
slim-github-mcp
GitHub MCP-сервер только для чтения, который возвращает ** компактные** результаты.
Большинство GitHub MCP-серверов передают модели сырые объекты GitHub API. Это нормально для передовой модели за быстрым API, но мучительно для локальной: одна страница результатов поиска по репозиториям весит около 14 КБ JSON (~3.5k токенов) — в основном это URL и флаги прав, которые никто никогда не прочитает. Добавьте сверху ~7k токенов схем инструментов — и локальная модель может потратить минуты на «список моих репозиториев» или вообще никогда не закончить.
Этот сервер придерживается противоположной позиции. Каждый инструмент возвращает небольшой набор полезных полей, каждый список ограничен на стороне сервера, а вся поверхность инструментов — это девять функций. Модель не сможет получить огромный ответ, независимо от того, какие аргументы она выдумает.
Обычный GitHub MCP | slim-github-mcp | |
схемы инструментов | ~27 инструментов, ~7.4k токенов | 9 инструментов, ~830 токенов |
"my public repos" | не инструмент — нужен поиск |
|
одна выдача репозиториев | ~14 КБ (30 полных объектов) | ~2.4 КБ (10 урезанных объектов) |
запись | обычно доступна | невозможна по построению |
Инструменты
Инструмент | Возвращает |
| Аутентифицированный аккаунт: логин, имя, количество публичных репозиториев |
| Вы такие репозитории, отсортированные по времени обновления. |
| Публичные репозитории любого пользователя или организации |
| Поиск репозиториев. |
| Поиск кода — репозиторий, путь и URL для каждой найденной книги, без фрагментов |
| Проблемы |
| Запросы на вытягивание |
| Последние коммиты — sha, да, автор, тема сообщения |
| Содержимое одного файла или список каталога |
Каждый limit по умолчанию равен 10 и ограничен значением 30. gh_file обрезается на 20k символах и сообщает об этом флагом truncated. Репозитории возвращаются как full_name, private (стоимость не задаётся), description (до 160 символов), language, stars, updated, url — ничего больше.
Путь записи сознательно отсутствует: клиент выполняет только GET на api.github.com.
Related MCP server: GitHub MCP Server
Получение токен GitHub
Серверу нужен один токен, используемый для каждого вызова. Достаточно прав только на прочтение.
Перейдите на GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
Укажите срок действия и выберите, какие репозитории токен может видеть: Public repositories only, если вы не хотите, чтобы приватные данные покидали GitHub, или All repositories, если нужно, чтобы работал
gh_my_repos(visibility="private").В разделе Repository permissions выдайте доступ только на чтение к тому, что действительно нужно:
Metadata: Read-only — обязательно и достаточно для списков репозиториев и поиска
Contents: Read-only — для
gh_fileиgh_commitsIssues: Read-only — для
gh_issuesPull requests: Read-only — для
gh_pulls
Не трогайте никакие Account permissions.
Скопируйте токен — GitHub показывает его только один раз.
Обычный токен в скоупом repo тоже подойдёт, но он значительно шире, чем требуется этому серверу; предпочтите fine-grained.
Неаутентифицированные вызовы GitHub API ограничены 60 запросами в час, поэтому на практике токен обязателен. С ним вы получаете 5000 в час.
Установка
git clone https://github.com/0xBakeer/slim-github-mcp.git
cd slim-github-mcp
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
cp .env.example .env
$EDITOR .env # put your token in GITHUB_MCP_TOKENЗапустите:
set -a; . ./.env; set +a
./venv/bin/uvicorn slim_github_mcp.main:app --host 127.0.0.1 --port "${GITHUB_MCP_PORT:-9130}"Проверьте, что он поднялся и токен работает:
curl -s http://127.0.0.1:9130/api/health
curl -s -H "Authorization: Bearer $GITHUB_MCP_SECRET" \
'http://127.0.0.1:9130/api/my-repos?visibility=public&limit=5'Сам MCP-эндпоинт:
http://127.0.0.1:9130/tools/mcp/v1Он говорит по streaman HTTP, поэтому любой MCP-клиент, прини применение URL-адреса, может его использовать.
Конфигурация
Переменная | По умолчанию | Значение |
| — | Токен GitHub для всех вызовов API. Обязателен. |
| (пусто) | Общий секрет, который клиенты должны отправлять как |
|
| Порт для прослушивания. |
| (пусто) | Публичное имя хоста за обратным прокси, например |
Установите GITHUB_MCP_SECRET, если порт доступен не только с localhost. Сервер хранит токен, который может читать ваши приватные репозитории, и не выполняет другой аутентификации. Сгенерируйте его командой openssl rand -hex 24.
GITHUB_MCP_PUBLIC_HOST нужен, потому что MCP по умолчанию включает защиту от DNS‑rebinding. Загружающаяся через обратный прокси запросы содержат публичный заголовок Host и отклоняются без этого имени. Если забыть его указать, симптом — 400 от MCP-эндпоинта, тогда как /api/health отвечает нормально.
Запуск как сервис
scripts/github-mcp.service — это юнит systemd, который надо адаптировать: укажите User, пути и при с EnvironmentFile н можно сослаться на файл с правами 0600, владельцем root, в котором эти переменные перечислены. Токен в самом unit-файле держать не надо.
Также есть Dockerfile:
docker build -t slim-github-mcp .
docker run -d --name github-mcp -p 127.0.0.1:9130:9130 --env-file .env slim-github-mcpЗа обратным прокси
Ничего необычного, но MCP прав поток, поэтому буферизация должна быть отключена:
location /tools/mcp/ {
proxy_pass http://127.0.0.1:9130;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
}Установите GITHUB_MCP_PUBLIC_HOST равным имени хоста, с которой проксируете.
Использование с Open WebUI
Open WebUI нативно говорит с MCP (версия 0.6.x и выше). Зарегистрируйте сервер, помогая обычным скриптом:
export OPEN_WEBUI_URL=https://webui.example.com
export OPEN_WEBUI_KEY=sk-... # Settings -> Account -> API keys
export GITHUB_MCP_URL=http://127.0.0.1:9130/tools/mcp/v1
export GITHUB_MCP_SECRET=... # if you set one
./scripts/register-open-webui.shIt merges the entry into Open WebUI's existing tool servers (matched by id, so re-running just updates it) and now the tools are displayed:
==> Verifying tool discovery
9 tools: gh_whoami, gh_my_repos, gh_user_repos, ...Если делать вручную: Admin Settings → Tools → Add Tool Server, укажите тип MCP, URL как выше, авторизацию Bearer с вашим секретом.
Две вещи, которые легко упустить:
Enable the tool in the chat’s tool picker. Зарегистрированный сервер автоматически не подключается к модели.
Если вы закрепляете инструменты за конкретной моделью (Workspace → Models → Tools), добавьте его и туда. Open WebUI хранит это как
servd: mcp:<id>. Если затем переименовать id сервер, закреплённая ссылка молча станет ничем — модель по-прежнему отвечает, только без этих инструментов, обычно угадывая.
Полезно знать: вызов /api/channell.completions напрямую с параметром tool_ids не подключает инструменты. Привязка инструментов происходит в интерфейсе, поэтому проверяйте через UI.
Лицензия
MIT
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 gradedqualityDmaintenanceProvides comprehensive access to GitHub repositories, issues, pull requests, commits, user profiles, and statistics through 10 tools with natural language query support and advanced search capabilities.
- FlicenseNot gradedqualityNot gradedmaintenanceEnables LLMs to interact with GitHub repositories, issues, pull requests, and workflows through the Model Context Protocol. It provides a comprehensive set of tools for repository management, issue tracking, code search, and CI/CD automation.
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with GitHub repositories, issues, pull requests, code, and more through a comprehensive set of tools.
- FlicenseBqualityDmaintenanceEnables AI assistants to inspect local Git repositories and interact with the GitHub API for reading commits, diffs, files, issues, comments, pull requests, and project boards.10121
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
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/0xBakeer/slim-github-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server