mcp-google-oauth
Это Model Context Protocol (MCP) сервер, поддерживающий удаленные MCP-подключения со встроенной поддержкой Google OAuth.
Вы можете развернуть его в своей учетной записи Cloudflare, и после создания собственного клиентского приложения Google Cloud OAuth у вас будет полнофункциональный удаленный MCP-сервер, на основе которого можно строить дальнейшую разработку. Пользователи смогут подключаться к вашему MCP-серверу, войдя в свою учетную запись Google.
Вы можете использовать это как справочный пример интеграции других OAuth-провайдеров с MCP-сервером, развернутым на Cloudflare, с помощью библиотеки workers-oauth-provider.
MCP-сервер (на базе Cloudflare Workers):
Выступает в роли OAuth-сервера для ваших MCP-клиентов
Выступает в роли OAuth-клиента для вашего настоящего OAuth-сервера (в данном случае Google)
[!WARNING] Это демонстрационный шаблон, созданный, чтобы помочь вам быстро начать работу. Хотя мы реализовали несколько средств контроля безопасности, перед развертыванием в производственной среде вы должны реализовать все превентивные и эшелонированные меры безопасности. Пожалуйста, ознакомьтесь с нашим подробным руководством по безопасности: Securing MCP Servers
Начало работы
Клонируйте репозиторий и установите зависимости: npm install
Для продакшена
Создайте новое приложение Google Cloud OAuth:
В качестве URL домашней страницы укажите
https://mcp-google-oauth.<your-subdomain>.workers.devВ качестве URL обратного вызова авторизации укажите
https://mcp-google-oauth.<your-subdomain>.workers.dev/callbackЗапишите свой Client ID и создайте секрет клиента.
Задайте секреты через Wrangler
wrangler secret put GOOGLE_CLIENT_ID
wrangler secret put GOOGLE_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32
wrangler secret put HOSTED_DOMAIN # optional: use this when restrict google account domainНастройка пространства имен KV
Создайте пространство имен KV:
wrangler kv:namespace create "OAUTH_KV"Обновите файл Wrangler, указав KV ID
Развертывание и тестирование
Разверните MCP-сервер, чтобы сделать его доступным в вашем домене workers.dev
wrangler deploy
Протестируйте удаленный сервер с помощью Inspector:
npx @modelcontextprotocol/inspector@latestВведите https://mcp-google-oauth.<your-subdomain>.workers.dev/mcp и нажмите connect. После прохождения процесса аутентификации вы увидите работающие инструменты:
Теперь у вас развернут удаленный MCP-сервер!
Контроль доступа
Этот MCP-сервер использует Google Cloud OAuth для аутентификации. Все прошедшие проверку подлинности пользователи Google могут получать доступ к базовым инструментам, таким как "add". Если вы ограничиваете пользователей размещенным доменом, задайте переменную окружения HOSTED_DOMAIN.
Доступ к удаленному 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-google-oauth.<your-subdomain>.workers.dev/mcp"
]
}
}
}Когда инструменты (под 🔨) появятся в интерфейсе, вы можете попросить Claude использовать их. Например: «Не могли бы вы использовать математический инструмент, чтобы сложить 23 и 19?». Claude должен вызвать инструмент и показать результат, сгенерированный MCP-сервером.
Для локальной разработки
Если вы хотите итерировать и тестировать свой MCP-сервер, вы можете сделать это в локальной разработке. Для этого потребуется создать еще одно приложение OAuth в Google Cloud:
В качестве URL домашней страницы укажите
http://localhost:8788В качестве URL обратного вызова авторизации укажите
http://localhost:8788/callbackЗапишите свой Client ID и создайте секрет клиента.
Создайте файл
.dev.varsв корне проекта со следующим содержимым:
GOOGLE_CLIENT_ID=your_development_google_cloud_oauth_client_id
GOOGLE_CLIENT_SECRET=your_development_google_cloud_oauth_client_secretРазработка и тестирование
Запустите сервер локально, чтобы он был доступен по адресу http://localhost:8788
wrangler dev
Чтобы протестировать локальный сервер, введите http://localhost:8788/mcp в Inspector и нажмите connect. Следуя подсказкам, вы сможете «List Tools».
Использование Claude и других MCP-клиентов
При использовании Claude для подключения к вашему удаленному MCP-серверу вы можете увидеть сообщения об ошибках. Это связано с тем, что Claude Desktop пока не поддерживает удаленные MCP-серверы, поэтому иногда он путается. Чтобы проверить, подключен ли MCP-сервер, наведите указатель мыши на значок 🔨 в правом нижнем углу интерфейса Claude. Вы должны увидеть там свои инструменты.
Использование Cursor и других MCP-клиентов
Чтобы подключить Cursor к вашему MCP-серверу, выберите Type: "Command" и в поле Command объедините поля command и args в одно (например, npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/mcp).
Обратите внимание, что хотя Cursor поддерживает серверы HTTP+SSE, он не поддерживает аутентификацию, поэтому вам все равно нужно использовать mcp-remote (и использовать STDIO-сервер, а не HTTP).
Вы можете подключить свой MCP-сервер к другим MCP-клиентам, таким как Windsurf, открыв файл конфигурации клиента, добавив тот же JSON, который использовался для настройки Claude, и перезапустив MCP-клиент.
Как это работает?
OAuth Provider
Библиотека OAuth Provider служит полной реализацией сервера OAuth 2.1 для Cloudflare Workers. Она берет на себя сложности потока OAuth, включая выпуск, проверку и управление токенами. В этом проекте она выполняет двойную роль:
Аутентификация MCP-клиентов, подключающихся к вашему серверу
Управление подключением к службам OAuth Google Cloud
Безопасное хранение токенов и состояния аутентификации в хранилище KV
Durable MCP
Durable MCP расширяет базовую функциональность MCP с помощью Durable Objects от Cloudflare, предоставляя:
Постоянное управление состоянием вашего MCP-сервера
Безопасное хранение контекста аутентификации между запросами
Доступ к информации об аутентифицированном пользователе через
this.propsПоддержку условной доступности инструментов на основе личности пользователя
MCP Remote
Библиотека MCP Remote позволяет вашему серверу предоставлять инструменты, которые могут вызывать MCP-клиенты, такие как Inspector. Она:
Определяет протокол связи между клиентами и вашим сервером
Предоставляет структурированный способ определения инструментов
Обрабатывает сериализацию и десериализацию запросов и ответов
Поддерживает как протокол Streamable HTTP (рекомендуется), так и Server-Sent Events (SSE) для связи с клиентами
Миграция транспортного протокола
Этот пример был обновлен для поддержки нового транспортного протокола Streamable HTTP, который заменяет устаревший протокол Server-Sent Events (SSE). Теперь сервер предоставляет обе конечные точки:
/mcp— рекомендуется: использует новый протокол Streamable HTTP/sse— устарел: устаревший протокол SSE (поддерживается для обратной совместимости)
Все новые интеграции должны использовать конечную точку /mcp. Конечная точка SSE будет удалена в будущей версии.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
MCP server for Google Veo AI video generation
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/enricojam-maker/mcp-google-oauth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server