使用说明
GitHub MCP Server
Полноценный MCP сервер для полного контроля GitHub через Model Context Protocol. Предоставляет 45+ инструментов для работы с репозиториями, issues, PR, GitHub Actions и многим другим.
[!IMPORTANT] Параметр
owner(владелец репозитория) больше не требуется для большинства инструментов. Сервер автоматически использует владельца, указанного в настройках (GH_DEFAULT_OWNER), что упрощает работу и предотвращает ошибки.
✨ Возможности
📁 Репозитории
- Получение информации о репозитории
- Создание и удаление репозиториев
- Форки и клонирование
- Список контрибьюторов и языков
📄 Файлы
- Чтение содержимого файлов и директорий
- Создание, обновление и удаление файлов
🌿 Ветки и коммиты
- Управление ветками (создание, удаление)
- Просмотр истории коммитов
- Сравнение веток
🐛 Issues
- Создание, редактирование и закрытие issues
- Управление метками и назначениями
- Комментарии к issues
🔀 Pull Requests
- Создание и редактирование PR
- Мерж и ревью
- Просмотр изменённых файлов и коммитов
⚡ GitHub Actions
- Просмотр workflows
- Запуск и отмена workflows
- Получение логов и статусов jobs
👤 Пользователи
- Информация о текущем пользователе
- Подписчики и подписки
- Организации
📝 Gists
- Создание, чтение, обновление и удаление Gists
🔍 Поиск
- Поиск по коду
- Поиск репозиториев
- Поиск issues и PR
🚀 Установка
1. Клонирование репозитория
git clone https://github.com/yourusername/github-mcp.git
cd github-mcp
2. Создание виртуального окружения
python -m venv .venv
.venv\Scripts\activate # Windows
# или
source .venv/bin/activate # Linux/macOS
3. Установка зависимостей
pip install -e .
4. Настройка переменных окружения
Создайте файл .env:
# GitHub Configuration
GH_TOKEN=ghp_your_token_here
GH_DEFAULT_OWNER=your-username
GH_DEFAULT_REPO=your-repo
GH_ALLOWED_REPOS=your-username/*
# Server Security
MCP_API_KEY=your_secret_key_here
# Logging
LOG_LEVEL=INFO
📋 Конфигурация
| Переменная | Описание | Обязательно |
|---|---|---|
GH_TOKEN |
GitHub Personal Access Token | Да |
GH_DEFAULT_OWNER |
Владелец репозитория по умолчанию | Да |
GH_DEFAULT_REPO |
Репозиторий по умолчанию | Нет |
GH_ALLOWED_REPOS |
Разрешённые репозитории (через запятую) | Нет |
MCP_API_KEY |
API Key для удалённого доступа | Нет |
LOG_LEVEL |
Уровень логирования (DEBUG, INFO, WARNING, ERROR) | Нет |
Формат GH_ALLOWED_REPOS
owner/*— все репозитории владельцаowner/repo— конкретный репозиторийowner1/*,owner2/repo— комбинация
🎮 Использование
Запуск сервера
В режиме stdio (локальный запуск)
python -m github_mcp.server
В режиме HTTP (для удалённого доступа)
python -m github_mcp.http_server
По умолчанию HTTP-сервер запускается на http://0.0.0.0:8080, эндпоинт MCP доступен по адресу http://0.0.0.0:8080/mcp.
Для запуска на другом хосте и порту:
python -m github_mcp.http_server --host 127.0.0.1 --port 8080
Конфигурация для MCP клиентов
Claude Desktop / Cursor / Windsurf (stdio вариант)
{
"mcpServers": {
"github": {
"command": "python",
"args": ["-m", "github_mcp.server"],
"cwd": "C:\\Users\\lebed\\Desktop\\GitHubMCP",
"env": {
"GH_TOKEN": "ghp_your_token_here",
"GH_DEFAULT_OWNER": "your-username"
}
}
}
}
Claude Desktop / Cursor / Windsurf (HTTP вариант)
{
"mcpServers": {
"github": {
"uri": "http://localhost:8080/mcp",
"headers": {
"X-API-Key": "your_secret_key_here"
}
}
}
}
[!NOTE] При использовании HTTP-сервера рекомендуется настроить
MCP_API_KEYв файле.envдля обеспечения безопасности.
🛠️ Доступные инструменты (45+)
Репозитории
| Инструмент | Описание |
|---|---|
set_default_repo |
Установить репозиторий по умолчанию (owner вводится один раз) |
get_repository |
Получить информацию о репозитории |
list_user_repos |
Список репозиториев текущего пользователя |
create_repository |
Создать репозиторий у текущего пользователя |
delete_repository |
Удалить репозиторий |
fork_repository |
Форкнуть репозиторий (source_owner, source_repo) |
list_forks |
Список форков |
list_contributors |
Список контрибьюторов |
list_languages |
Языки репозитория |
Файлы
Инструменты для работы с файлами больше не требуют owner.
| Инструмент | Описание |
|---|---|
get_file_content |
Получить содержимое файла |
get_directory_content |
Получить содержимое директории |
create_file |
Создать файл |
update_file |
Обновить файл |
delete_file |
Удалить файл |
Ветки
| Инструмент | Описание |
|---|---|
list_branches |
Список веток |
get_branch |
Информация о ветке |
create_branch |
Создать ветку |
delete_branch |
Удалить ветку |
list_commits |
История коммитов |
get_commit |
Информация о коммите |
compare_branches |
Сравнить ветки |
Issues & Pull Requests
Все инструменты для Issues и PR теперь работают с фиксированным владельцем.
📚 Примеры использования
Установка репозитория по умолчанию
Использую set_default_repo с repo="my-repo"
# (Сервер сам подставит владельца из .env)
Создание issue
Использую create_issue с title="Bug: приложение падает" и body="При нажатии кнопки..."
Создание PR
1. create_branch с branch_name="feature/new-feature"
2. create_file с path="src/feature.py"
3. create_pull_request с title="Добавлена новая функция"
🔒 Безопасность
Сервер поддерживает авторизацию через X-API-Key или Authorization: Bearer при использовании удалённого доступа. Настройте MCP_API_KEY в .env для защиты вашего сервера.
📄 Лицензия
MIT
