Skip to main content
Glama

github-mcp-server

Минимальный MCP-сервер только для чтения, предоставляющий ваши репозитории GitHub для Claude Code (или любого MCP-совместимого клиента) через stdio.

Предоставляемые инструменты

  • list_repos(owner?, include_forks?, limit?) — список ваших репозиториев (или публичных репозиториев другого владельца)

  • get_repo_info(owner, repo) — метаданные одного репозитория

  • list_directory(owner, repo, path?, ref?) — просмотр файлового дерева репозитория

  • read_file(owner, repo, path, ref?, max_bytes?) — чтение содержимого текстового файла

  • get_readme(owner, repo, ref?) — получение README репозитория

  • search_code(query, owner?, repo?, limit?) — поиск кода (опционально ограниченный вашими репозиториями)

  • list_commits(owner, repo, path?, limit?) — недавняя история коммитов

Всё только для чтения — никакие конечные точки записи, создания или удаления не предоставляются.

Related MCP server: github-mcp-tool

Настройка

  1. Создайте персональный токен доступа GitHub (fine-grained, рекомендуется): GitHub -> Settings -> Developer settings -> Personal access tokens -> Fine-grained tokens -> Generate new token.

    • Доступ к репозиториям: выберите репозитории, которые Claude должен читать (или "All repositories")

    • Разрешения: Contents: Read-only, Metadata: Read-only (добавьте Code search: Read-only, если хотите, чтобы работал search_code)

  2. Установите зависимости:

    cd github-mcp-server
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  3. Установите токен (не встраивайте его в скрипт и не коммитьте никуда):

    export GITHUB_TOKEN=github_pat_xxxxxxxxxxxx

    Для постоянства добавьте эту строку в ваш ~/.zshrc / ~/.bashrc или используйте файл .env с таким инструментом, как direnv — просто убедитесь, что он в .gitignore.

  4. Зарегистрируйте сервер в CLI Claude Code:

    claude mcp add github-repos -- python3 /absolute/path/to/github-mcp-server/server.py

    (Если вы использовали venv, укажите python из venv: /absolute/path/to/github-mcp-server/.venv/bin/python3)

    Поскольку сервер читает GITHUB_TOKEN из своего окружения, либо экспортируйте его в оболочке, из которой вы запускаете claude, либо передайте его явно:

    claude mcp add github-repos --env GITHUB_TOKEN=github_pat_xxxxxxxxxxxx -- python3 /absolute/path/to/github-mcp-server/server.py
  5. Проверьте подключение:

    claude mcp list

    Вы должны увидеть github-repos в списке подключённых. Затем в сессии Claude Code вы можете спрашивать что-то вроде "список моих репозиториев" или "прочитай README моего репозитория flight-delay-prediction", и Claude будет вызывать эти инструменты.

Локальный смоук-тест (без клиента)

python3 -c "
import os
os.environ['GITHUB_TOKEN'] = 'github_pat_xxx'
from server import list_repos
print(list_repos())
"

Примечания / следующие шаги

  • Лимиты запросов: аутентифицированные запросы получают 5 000 в час от REST API GitHub, этого достаточно для интерактивного использования.

  • Если позже вам понадобится доступ на запись (открытие issues, комментарии к PR), добавьте новые функции @mcp.tool() с использованием requests.post/patch — держите их отдельно и с понятными именами, чтобы было очевидно, какие инструменты изменяют состояние GitHub.

  • Если вы хотите, чтобы это было доступно из claude.ai/Cowork (не только из Claude Code CLI/VS Code), нужно перейти с транспорта stdio на размещённый HTTP-сервер с OAuth — это значительно более крупный шаг, который имеет смысл только в том случае, если вам нужен такой доступ.

Related MCP Connectors

Related MCP Servers