Skip to main content
Glama
ddukbg

GitHub Enterprise MCP Server

GitHub Enterprise MCP-сервер

изображение

Сервер MCP (Model Context Protocol) для интеграции с API GitHub Enterprise. Этот сервер предоставляет интерфейс MCP для легкого доступа к информации репозитория, проблемам, PR и многому другому из GitHub Enterprise в Cursor.

Совместимость

Этот проект в первую очередь предназначен для сред GitHub Enterprise Server, но он также работает с:

  • GitHub.com

  • Корпоративное облако GitHub

Примечание : некоторые корпоративные функции (например, информация о лицензии и корпоративная статистика) не будут работать с GitHub.com или GitHub Enterprise Cloud.

Related MCP server: GitHub MCP Server Plus

Основные характеристики

  • Получить список репозиториев из экземпляров GitHub Enterprise

  • Получить подробную информацию о репозитории

  • Список ветвей репозитория

  • Просмотр содержимого файлов и каталогов

  • Управление проблемами и запросами на извлечение

  • Управление репозиторием (создание, обновление, удаление)

  • Управление рабочими процессами GitHub Actions

  • Управление пользователями (список, создание, обновление, удаление, приостановка/отмена приостановки пользователей)

  • Доступ к корпоративной статистике

  • Улучшенная обработка ошибок и удобное форматирование ответов

Начиная

Предпосылки

  • Node.js 18 или выше

  • Доступ к экземпляру GitHub Enterprise

  • Персональный токен доступа (PAT)

Установка и настройка Docker

Вариант 1: запуск с Docker

  1. Создайте образ Docker:

    docker build -t github-enterprise-mcp .
  2. Запустите Docker-контейнер с переменными среды:

    docker run -p 3000:3000 \ -e GITHUB_TOKEN="your_github_token" \ -e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \ -e DEBUG=true \ github-enterprise-mcp

Примечание : Dockerfile настроен на запуск с --transport http по умолчанию. Если вам нужно изменить это, вы можете переопределить команду:

docker run -p 3000:3000 \ -e GITHUB_TOKEN="your_github_token" \ -e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \ -e DEBUG=true \ github-enterprise-mcp node dist/index.js --transport http --debug

Вариант 2: Использование Docker Compose

  1. Создайте файл .env в корне проекта с необходимыми переменными среды:

    GITHUB_ENTERPRISE_URL=https://github.your-company.com/api/v3 GITHUB_TOKEN=your_github_token DEBUG=true
  2. Запустите контейнер с помощью Docker Compose:

    docker-compose up -d
  3. Проверьте журналы:

    docker-compose logs -f
  4. Остановите контейнер:

    docker-compose down

Установка и настройка

Локальная разработка (с использованием параллельного режима)

Этот метод рекомендуется для активной разработки с автоматической перекомпиляцией и перезапусками сервера:

  1. Клонируйте репозиторий и установите необходимые пакеты:

    git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp npm install
  2. Запустите сервер разработки:

    export GITHUB_TOKEN="your_github_token" export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" npm run dev

    Это позволит:

    • Автоматически компилировать код TypeScript при изменении файлов

    • Перезапустите сервер после обновления скомпилированных файлов.

    • Запустите сервер в режиме HTTP для подключений на основе URL.

  3. Подключитесь к курсору, используя режим URL, как описано ниже.

Установка и настройка для производства

Вариант 1: использование режима URL (рекомендуется для локальной разработки)

Этот метод наиболее стабилен и рекомендуется для локальной разработки или тестирования:

  1. Клонируйте репозиторий и установите необходимые пакеты:

    git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp npm install
  2. Создайте проект:

    npm run build chmod +x dist/index.js
  3. Запустите сервер:

    export GITHUB_TOKEN="your_github_token" export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" node dist/index.js --transport http --debug
  4. Подключитесь к курсору, используя режим URL:

    • Добавьте следующее в файл .cursor/mcp.json вашего курсора:

    { "mcpServers": { "github-enterprise": { "url": "http://localhost:3000/sse" } } }

Вариант 2: Установка как глобальной команды (ссылка npm)

Этот метод полезен для местного развития:

# After cloning the repository git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp # Install required packages npm install # Build npm run build chmod +x dist/index.js # Link globally npm link # Run as a global command export GITHUB_TOKEN="your_github_token" export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" github-enterprise-mcp --transport=http --debug

Вариант 3: Использование npx (когда пакет опубликован)

Если пакет опубликован в публичном реестре npm:

npx @ddukbg/github-enterprise-mcp --token=your_github_token --github-enterprise-url=https://github.your-company.com/api/v3

Интеграция с инструментами ИИ

Клод Десктоп

Добавьте следующее в ваш claude_desktop_config.json :

{ "mcpServers": { "github-enterprise": { "command": "npx", "args": ["-y", "@ddukbg/github-enterprise-mcp", "--token=YOUR_GITHUB_TOKEN", "--github-enterprise-url=YOUR_GITHUB_ENTERPRISE_URL"] } } }

Замените YOUR_GITHUB_TOKEN и YOUR_GITHUB_ENTERPRISE_URL на ваши фактические значения.

Курсор

Рекомендуется: режим URL (наиболее стабильный)

Для наиболее надежной работы в Курсоре рекомендуется использовать режим URL:

  1. Запустите сервер в отдельном окне терминала:

    cd /path/to/github-enterprise-mcp GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" GITHUB_TOKEN="your_github_token" node dist/index.js --transport http
  2. Настройте параметры MCP курсора:

    • Откройте Курсор и перейдите в Настройки.

    • Перейдите в раздел AI > MCP-серверы.

    • Отредактируйте файл .cursor/mcp.json :

    { "mcpServers": { "github-enterprise": { "url": "http://localhost:3000/sse" } } }
  3. Перезапустите курсор, чтобы применить изменения.

Альтернатива: командный режим

В качестве альтернативы вы можете настроить Cursor на использование командного режима, хотя режим URL более надежен:

  1. Откройте Курсор и перейдите в Настройки.

  2. Перейдите в раздел AI > MCP-серверы.

  3. Нажмите Добавить сервер MCP.

  4. Введите следующие данные:

    • Имя : GitHub Enterprise

    • Команда : npx

    • Аргументы : @ddukbg/github-enterprise-mcp

    • Переменные среды :

      • GITHUB_ENTERPRISE_URL : URL-адрес вашего API GitHub Enterprise

      • GITHUB_TOKEN : Ваш персональный токен доступа GitHub

Кроме того, вы можете вручную отредактировать файл .cursor/mcp.json , включив в него:

{ "mcpServers": { "github-enterprise": { "command": "npx", "args": [ "@ddukbg/github-enterprise-mcp" ], "env": { "GITHUB_ENTERPRISE_URL": "https://github.your-company.com/api/v3", "GITHUB_TOKEN": "your_github_token" } } } }

Конфигурация языка

Этот сервер MCP поддерживает английский и корейский языки. Вы можете настроить язык с помощью:

Переменные среды

# Set language to Korean export LANGUAGE=ko # Or in .env file LANGUAGE=ko

Аргументы командной строки

# Set language to Korean node dist/index.js --language ko

Если не указан иной язык, по умолчанию используется английский.

Дополнительные параметры в режиме HTTP

  • --debug : Включить ведение журнала отладки

  • --github-enterprise-url <URL> : Установить URL-адрес API GitHub Enterprise

  • --token <TOKEN> : Установить токен персонального доступа GitHub

  • --language <LANG> : Установить язык (en или ko, по умолчанию: en)

Доступные инструменты MCP

Этот сервер MCP предоставляет следующие инструменты:

Название инструмента

Описание

Параметры

Требуемые разрешения PAT

list-repositories

Получить список репозиториев для пользователя или организации

owner

: Имя пользователя/название организации

isOrg

: Является ли это

type

организации : Тип репозитория

sort

: Критерии сортировки

page

: Номер страницы

perPage

: Элементов на странице

repo

get-repository

Получить подробную информацию о репозитории

owner

: Владелец репозитория

repo

: Имя репозитория

repo

list-branches

Список ветвей репозитория

owner

: Владелец репозитория

repo

: Имя репозитория

protected_only

: Показывать ли только защищенные ветви

page

: Номер страницы

perPage

: Элементы на странице

repo

get-content

Извлечь содержимое файла или каталога

owner

: Владелец репозитория

repo

: Имя репозитория

path

: Путь к файлу/каталогу

ref

: Ветвь/фиксация (необязательно)

repo

list-pull-requests

Список запросов на извлечение в репозитории

owner

: Владелец репозитория

repo

: Имя репозитория

state

: Состояние PR filter

sort

: Критерии сортировки

direction

: Направление сортировки

page

: Номер страницы

per_page

: Элементов на странице

repo

get-pull-request

Получить детали запроса на включение

owner

: Владелец репозитория

repo

: Имя репозитория

pull_number

: Номер запроса на извлечение

repo

create-pull-request

Создать новый запрос на извлечение

owner

: Владелец репозитория

repo

: Имя репозитория

title

: Название PR

head

: Головная ветвь

base

: Базовая ветвь

body

: Описание PR

draft

: Создать как черновик PR

repo

merge-pull-request

Объединить запрос на извлечение

owner

: Владелец репозитория

repo

: Имя репозитория

pull_number

: Номер запроса на извлечение

merge_method

: Метод слияния

commit_title

: Заголовок коммита

commit_message

: Сообщение коммита

repo

list-issues

Список проблем в репозитории

owner

: Владелец репозитория

repo

: Имя репозитория

state

: Фильтр состояния проблемы

sort

: Критерии сортировки

direction

: Направление сортировки

page

: Номер страницы

per_page

: Элементы на странице

repo

get-issue

Получить подробную информацию о проблеме

owner

: Владелец репозитория

repo

: Имя репозитория

issue_number

: Номер выпуска

repo

list-issue-comments

Список комментариев по проблеме или запросу на включение внесенных изменений

owner

: Владелец репозитория

repo

: Имя репозитория

issue_number

: Номер выпуска/PR

page

: Номер страницы

per_page

: Элементы на странице

repo

create-issue

Создать новый выпуск

owner

: Владелец репозитория

repo

: Имя репозитория

title

: Заголовок проблемы

body

: Содержимое тела проблемы

labels

: Массив имен меток

assignees

: Массив имен пользователей

milestone

: Идентификатор вехи

repo

create-repository

Создать новый репозиторий

name

: Имя репозитория

description

: Описание репозитория

private

: Является ли он частным

auto_init

: Инициализация с помощью README

gitignore_template

: Добавить .gitignore

license_template

: Добавить лицензию

org

: Название организации

repo

update-repository

Обновить настройки репозитория

owner

: Владелец репозитория

repo

: Имя репозитория

description

: Новое описание

private

: Изменить конфиденциальность

default_branch

: Изменить ветку по умолчанию

has_issues

: Включить/отключить проблемы

has_projects

: Включить/отключить проекты

has_wiki

: Включить/отключить вики

archived

: Архивировать/разархивировать

repo

delete-repository

Удалить репозиторий

owner

: Владелец репозитория

repo

: Имя репозитория

confirm

: Подтверждение (должно быть верно)

delete_repo

list-workflows

Список рабочих процессов GitHub Actions

owner

: Владелец репозитория

repo

: Имя репозитория

page

: Номер страницы

perPage

: Элементы на странице

actions:read

list-workflow-runs

Список запущенных рабочих процессов

owner

: Владелец репозитория

repo

: Имя репозитория

workflow_id

: Идентификатор рабочего процесса/имя файла

branch

: Фильтр по

status

ветви : Фильтр по статусу

page

: Номер страницы

perPage

: Элементы на странице

actions:read

trigger-workflow

Запустить рабочий процесс

owner

: Владелец репозитория

repo

: Имя репозитория

workflow_id

: Идентификатор/имя файла рабочего процесса

ref

: Ссылка Git

inputs

: Входные данные рабочего процесса

actions:write

get-license-info

Получить информацию о лицензии GitHub Enterprise

-

Требуется учетная запись site_admin (Администратор)

get-enterprise-stats

Получить статистику системы GitHub Enterprise

-

Требуется учетная запись site_admin (Администратор)

Примечание : Для Enterprise-специфичных инструментов ( get-license-info и get-enterprise-stats ) требуется пользователь с правами администратора сайта . Рекомендуется Classic Personal Access Token, поскольку Fine-grained Tokens могут не поддерживать эти разрешения Enterprise-level.

Использование инструментов в курсоре

После настройки сервера MCP и настройки Cursor для подключения к нему вы можете использовать инструменты GitHub Enterprise непосредственно в чате ИИ Cursor. Вот несколько примеров:

Список репозиториев

mcp_github_enterprise_list_repositories(owner="octocat")

Получение информации о репозитории

mcp_github_enterprise_get_repository(owner="octocat", repo="hello-world")

Листинг запросов на вытягивание

mcp_github_enterprise_list_pull_requests(owner="octocat", repo="hello-world", state="open")

Управление проблемами

# List issues mcp_github_enterprise_list_issues(owner="octocat", repo="hello-world", state="all") # Get issue details mcp_github_enterprise_get_issue(owner="octocat", repo="hello-world", issue_number=1) # Get issue/PR comments mcp_github_enterprise_list_issue_comments(owner="octocat", repo="hello-world", issue_number=1) # Create a new issue mcp_github_enterprise_create_issue( owner="octocat", repo="hello-world", title="Found a bug", body="Here is a description of the bug", labels=["bug", "important"] )

Работа с содержимым репозитория

mcp_github_enterprise_get_content(owner="octocat", repo="hello-world", path="README.md")

Управление репозиторием

# Create a new repository mcp_github_enterprise_create_repository( name="new-project", description="This is a new project", private=true, auto_init=true ) # Update repository settings mcp_github_enterprise_update_repository( owner="octocat", repo="hello-world", description="Updated description", has_issues=true )

Управление пользователями (только Enterprise)

Эти функции специально разработаны для сред GitHub Enterprise Server и требуют административных разрешений:

# List all users in the GitHub Enterprise instance mcp_github_enterprise_list_users(filter="active", per_page=100) # Get a specific user's details mcp_github_enterprise_get_user(username="octocat") # Create a new user (Enterprise only) mcp_github_enterprise_create_user( login="newuser", email="newuser@example.com", name="New User", company="ACME Inc." ) # Update a user's information (Enterprise only) mcp_github_enterprise_update_user( username="octocat", email="updated-email@example.com", location="San Francisco" ) # Suspend a user (Enterprise only) mcp_github_enterprise_suspend_user( username="octocat", reason="Violation of terms of service" ) # Unsuspend a user (Enterprise only) mcp_github_enterprise_unsuspend_user(username="octocat") # List organizations a user belongs to mcp_github_enterprise_list_user_orgs(username="octocat")

Улучшения API

  • Гибкая конфигурация URL API (поддерживает различные переменные среды и аргументы командной строки)

  • Улучшенная обработка ошибок и управление тайм-аутами

  • Удобное форматирование ответов и сообщений

Внося вклад

Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.

Лицензия

МСК

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/ddukbg/github-enterprise-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server