mcp-github-server
This project provides a server for interacting with the GitHub API. Users can easily retrieve information about repositories and create new ones. By setting environment variables, it allows access to the API using a GitHub token.
GitHub Stars
1
User Rating
Not Rated
Favorites
0
Views
27
Forks
0
Issues
0
MCP GitHub Server
Сервер для работы с GitHub API, предоставляющий удобный интерфейс для взаимодействия с репозиториями GitHub.
Установка
- Клонируйте репозиторий:
git clone https://github.com/fills/mcp-github-server.git
cd mcp-github-server
- Установите зависимости:
npm install
- Создайте файл
.envв корне проекта и добавьте следующие переменные:
PORT=3000
GITHUB_TOKEN=your_github_token_here
Для получения GitHub токена:
- Перейдите в настройки вашего аккаунта GitHub
- Выберите "Developer settings" -> "Personal access tokens" -> "Tokens (classic)"
- Нажмите "Generate new token"
- Выберите необходимые разрешения (рекомендуется: repo, user)
- Скопируйте токен и вставьте его в файл .env
Запуск
Для запуска в режиме разработки:
npm run dev
Для запуска в продакшн режиме:
npm start
API Endpoints
Базовый маршрут
GET /- Проверка работоспособности сервера
Репозитории
GET /api/repos/:username- Получение списка репозиториев пользователяGET /api/repos/:username/:repo- Получение информации о конкретном репозиторииPOST /api/repos- Создание нового репозитория- Тело запроса:
{ "name": "repo-name", "description": "description", "private": false }
- Тело запроса:
Файлы
GET /api/repos/:username/:repo/contents/:path- Получение содержимого файла из репозиторияPOST /api/repos/:username/:repo/contents/:path- Создание нового файла в репозитории- Тело запроса:
{ "content": "file content", "message": "commit message" }
- Тело запроса:
Ветки
GET /api/repos/:username/:repo/branches- Получение списка веток репозиторияPOST /api/repos/:username/:repo/branches- Создание новой ветки в репозитории- Тело запроса:
{ "name": "branch-name", "sha": "commit-sha" }
- Тело запроса:
Коммиты
GET /api/repos/:username/:repo/commits- Получение списка коммитов репозитория- Параметры запроса:
sha,path,author,since,until,per_page,page
- Параметры запроса:
POST /api/repos/:username/:repo/commits- Создание нового коммита- Тело запроса:
{ "message": "commit message", "branch": "branch-name", "changes": { "path/to/file1.txt": "content of file1", "path/to/file2.txt": "content of file2" } }
Примеры использования
Получение списка репозиториев пользователя
GET http://localhost:3000/api/repos/octocat
Создание нового репозитория
POST http://localhost:3000/api/repos
Content-Type: application/json
{
"name": "test-repo",
"description": "Тестовый репозиторий",
"private": true
}
Создание файла в репозитории
POST http://localhost:3000/api/repos/username/repo-name/contents/path/to/file.txt
Content-Type: application/json
{
"content": "Содержимое файла",
"message": "Добавлен новый файл"
}
Создание новой ветки
POST http://localhost:3000/api/repos/username/repo-name/branches
Content-Type: application/json
{
"name": "feature-branch",
"sha": "optional-commit-sha"
}
Создание коммита с несколькими файлами
POST http://localhost:3000/api/repos/username/repo-name/commits
Content-Type: application/json
{
"message": "Добавлены новые файлы",
"branch": "feature-branch",
"changes": {
"file1.txt": "Содержимое файла 1",
"dir/file2.txt": "Содержимое файла 2"
}
}
The OpenTK Model Context Protocol Server serves as a standardized interface for accessing Dutch parliamentary data. It allows users to interact with parliamentary documents, debates, and member information using natural language. Notably, it provides practical examples of natural language interactions, such as comparing party positions on AI policies.