MCP Server with GitHub OAuth
Сервер протокола контекста модели (MCP) + Github OAuth
Это сервер протокола контекста модели (MCP), который поддерживает удаленные MCP-подключения со встроенной аутентификацией Github.
Вы можете развернуть его в своей учетной записи Cloudflare, и после создания собственного приложения-клиента GitHub OAuth у вас будет полностью функциональный удаленный MCP-сервер, на основе которого можно строить свои решения. Пользователи смогут подключаться к вашему MCP-серверу, войдя в систему через свою учетную запись GitHub.
Вы можете использовать это как справочный пример того, как интегрировать другие OAuth-провайдеры с MCP-сервером, развернутым в Cloudflare, используя библиотеку workers-oauth-provider.
MCP-сервер (работающий на Cloudflare Workers):
Выступает в роли OAuth-сервера для ваших MCP-клиентов
Выступает в роли OAuth-клиента для вашего настоящего OAuth-сервера (в данном случае GitHub)
Начало работы
Клонируйте репозиторий напрямую и установите зависимости: npm install.
Альтернативно, вы можете использовать приведенную ниже командную строку, чтобы создать удаленный MCP-сервер на вашем локальном компьютере:
npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-github-oauthДля продакшена
Создайте новое приложение GitHub OAuth:
В качестве URL домашней страницы укажите
https://mcp-github-oauth.<your-subdomain>.workers.devВ качестве URL обратного вызова авторизации укажите
https://mcp-github-oauth.<your-subdomain>.workers.dev/callbackЗапишите свой Client ID и создайте Client secret.
Установите секреты через Wrangler
wrangler secret put GITHUB_CLIENT_ID
wrangler secret put GITHUB_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32Настройка пространства имен KV
Создайте пространство имен KV:
wrangler kv:namespace create "OAUTH_KV"Обновите файл Wrangler, указав ID KV
Развертывание и тестирование
Разверните MCP-сервер, чтобы сделать его доступным в вашем домене workers.dev
wrangler deploy
Протестируйте удаленный сервер с помощью Inspector:
npx @modelcontextprotocol/inspector@latestВведите https://mcp-github-oauth.<your-subdomain>.workers.dev/sse и нажмите «Connect». После прохождения процесса аутентификации вы увидите, что инструменты работают:
Теперь у вас развернут удаленный MCP-сервер!
Контроль доступа
Этот MCP-сервер использует GitHub OAuth для аутентификации. Все аутентифицированные пользователи GitHub могут получить доступ к базовым инструментам, таким как "add" и "userInfoOctokit".
Инструмент "generateImage" ограничен списком конкретных пользователей GitHub, указанных в конфигурации ALLOWED_USERNAMES:
// Add GitHub usernames for image generation access
const ALLOWED_USERNAMES = new Set([
'yourusername',
'teammate1'
]);Доступ к удаленному MCP-серверу из Claude Desktop
Откройте Claude Desktop и перейдите в Settings -> Developer -> Edit Config. Это откроет файл конфигурации, который управляет тем, к каким MCP-серверам может обращаться Claude.
Замените содержимое следующей конфигурацией. После перезапуска Claude Desktop откроется окно браузера с вашей страницей входа OAuth. Завершите процесс аутентификации, чтобы предоставить Claude доступ к вашему MCP-серверу. После предоставления доступа инструменты станут доступны для использования.
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-github-oauth.<your-subdomain>.workers.dev/sse"
]
}
}
}Как только инструменты (под значком 🔨) появятся в интерфейсе, вы сможете попросить Claude использовать их. Например: "Could you use the math tool to add 23 and 19?". Claude должен вызвать инструмент и показать результат, сгенерированный MCP-сервером.
Для локальной разработки
Если вы хотите итерировать и тестировать свой MCP-сервер, вы можете делать это в локальной среде разработки. Для этого потребуется создать еще одно OAuth-приложение на GitHub:
В качестве URL домашней страницы укажите
http://localhost:8788В качестве URL обратного вызова авторизации укажите
http://localhost:8788/callbackЗапишите свой Client ID и создайте Client secret.
Создайте файл
.dev.varsв корне проекта с содержимым:
GITHUB_CLIENT_ID=your_development_github_client_id
GITHUB_CLIENT_SECRET=your_development_github_client_secretРазработка и тестирование
Запустите сервер локально, чтобы сделать его доступным по адресу http://localhost:8788
wrangler dev
Чтобы протестировать локальный сервер, введите http://localhost:8788/sse в Inspector и нажмите «Connect». После выполнения подсказок вы сможете выбрать "List Tools".
Использование Claude и других MCP-клиентов
При использовании Claude для подключения к вашему удаленному MCP-серверу вы можете увидеть некоторые сообщения об ошибках. Это связано с тем, что Claude Desktop пока не поддерживает удаленные MCP-серверы, поэтому иногда возникают ошибки. Чтобы проверить, подключен ли MCP-сервер, наведите курсор на значок 🔨 в правом нижнем углу интерфейса Claude. Вы должны увидеть там доступные инструменты.
Использование Cursor и других MCP-клиентов
Чтобы подключить Cursor к вашему MCP-серверу, выберите Type: "Command" и в поле Command объедините команду и аргументы в одну строку (например, npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/sse).
Обратите внимание, что хотя Cursor поддерживает серверы HTTP+SSE, он не поддерживает аутентификацию, поэтому вам все равно нужно использовать mcp-remote (и использовать STDIO-сервер, а не HTTP).
Вы можете подключить свой MCP-сервер к другим MCP-клиентам, таким как Windsurf, открыв файл конфигурации клиента, добавив тот же JSON, который использовался для настройки Claude, и перезапустив MCP-клиент.
Related MCP server: GitHub MCP Server
Как это работает?
Лицензия
Этот проект лицензирован по лицензии GPL-3.0. Подробности см. в файле LICENSE.
OAuth-провайдер
Библиотека OAuth Provider служит полноценной реализацией сервера OAuth 2.1 для Cloudflare Workers. Она берет на себя сложности потока OAuth, включая выдачу, проверку и управление токенами. В этом проекте она выполняет двойную роль:
Аутентификация MCP-клиентов, которые подключаются к вашему серверу
Управление подключением к сервисам OAuth GitHub
Безопасное хранение токенов и состояния аутентификации в хранилище KV
Durable MCP
Библиотека Durable MCP расширяет базовую функциональность MCP с помощью Durable Objects от Cloudflare, обеспечивая:
Управление постоянным состоянием для вашего MCP-сервера
Безопасное хранение контекста аутентификации между запросами
Доступ к информации об аутентифицированном пользователе через
this.propsПоддержку условной доступности инструментов на основе личности пользователя
MCP Remote
Библиотека MCP Remote позволяет вашему серверу предоставлять инструменты, которые могут быть вызваны MCP-клиентами, такими как Inspector. Она:
Определяет протокол для связи между клиентами и вашим сервером
Предоставляет структурированный способ определения инструментов
Обрабатывает сериализацию и десериализацию запросов и ответов
Поддерживает соединение Server-Sent Events (SSE) между клиентами и вашим сервером
This server cannot be installed
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
- AlicenseBqualityAmaintenanceA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.1289,977MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.11
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that supports remote connections and authenticates users via GitHub OAuth, allowing them to access tools based on their GitHub identity.
- FlicenseNot gradedqualityNot gradedmaintenanceModel Context Protocol server that enables interaction with GitHub repositories, issues, pull requests, and search functionality through natural language.1
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that gives your AI access to the source code and docs of all public github repos
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/byjit/cloudflare-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server