INTEGRITY Документация

Создайте удалённый MCP-сервер

Это руководство показывает, как развернуть удалённый MCP-сервер на Cloudflare с помощью Транспорт Streamable HTTP. У вас есть два варианта:

Выбор подхода

Agents SDK предлагает несколько способов создания MCP-серверов. Выберите подход, который подходит для вашего случая использования:

Подход С сохранением состояния? Путь протокола Подходит для
createMcpHandler() Нет без сохранения состояния с устаревшим режимом совместимости Новые инструменты без сохранения состояния
createLegacyMcpHandler() Необязательно устаревший Временно существующий WorkerTransport routes
McpAgent Да устаревший Устаревшие серверы Durable Object и RPC
Низкоуровневый транспорт SDK Зависит от транспорта Зависит от пакета SDK Ответственность за пользовательский транспорт

Используйте createMcpHandler для нового сервера, не сохраняющего состояние. Существующий McpAgent без устаревших зависимостей с состоянием могут перейти напрямую. Если он использует состояние сессии MCP, RPC, отправляемые запросы, потоки или воспроизведение, спланируйте эквиваленты без сохранения состояния и на время перехода поддерживайте одновременно маршруты без состояния и устаревшие маршруты. См. Мигрировать на MCP SDK v2 для поэтапного развёртывания.

Разверните свой первый MCP-сервер

Вы можете начать с развёртывания публичный MCP-сервер ↗ без аутентификации, а затем добавить аутентификацию пользователя и ограниченную по объему авторизацию позже. Если вы уже знаете, что вашему серверу потребуется аутентификация, можно сразу перейти к разделу следующий раздел.

Через панель управления

Кнопка ниже проведёт вас через все шаги, необходимые для развёртывания пример MCP-сервера ↗ в ваш аккаунт Cloudflare:

Развертывание в Workers

После развёртывания этот сервер будет доступен по адресу workers.dev поддомен (например, remote-mcp-server-authless.your-account.workers.dev/mcp). Вы можете сразу подключиться к нему с помощью AI Playground ↗ (удалённый MCP-клиент), MCP inspector ↗ или другие MCP-клиенты.

Для вашего MCP-сервера в вашем аккаунте GitHub или GitLab будет создан новый git-репозиторий, настроенный на автоматическое развёртывание в Cloudflare при каждом push изменений или слиянии pull request в основную ветку репозитория. Вы можете клонировать этот репозиторий, разрабатывать локально, и начните настраивать MCP сервер с собственными tools.

Через CLI

Вы можете использовать Wrangler CLI чтобы создать новый MCP-сервер на локальной машине и развернуть его в Cloudflare.

  1. Откройте терминал и выполните следующую команду:

    npm create cloudflare@latest -- remote-mcp-server-authless --template=cloudflare/ai/demos/remote-mcp-authless

    Во время настройки выберите следующие параметры: - Для Хотите добавить файл AGENTS.md, чтобы помочь AI-инструментам для написания кода понимать API Cloudflare?, выберите No. - Для Хотите использовать git для контроля версий?, выберите No. - Для Хотите развернуть приложение?, выберите No (мы протестируем сервер перед развёртыванием).

    Теперь у вас настроен MCP-сервер, и установлены все зависимости.

  2. Перейдите в папку проекта:

    cd remote-mcp-server-authless
  3. В каталоге нового проекта выполните следующую команду, чтобы запустить сервер разработки:

    npm start
    ⎔ Starting local server...
    [wrangler:info] Ready on http://localhost:8788

    Проверьте вывод команды и найдите в нём локальный порт. В этом примере MCP-сервер работает на порте 8788, а URL эндпойнта MCP: http://localhost:8788/mcp.

  4. Чтобы протестировать сервер локально:

    1. В новом терминале запустите MCP inspector ↗. MCP inspector представляет собой интерактивный MCP-клиент, который позволяет подключаться к вашему MCP-серверу и вызывать инструменты из веб-браузера.

      npx @modelcontextprotocol/inspector@latest
      🚀 MCP Inspector is up and running at:
      	http://localhost:5173/?MCP_PROXY_AUTH_TOKEN=46ab..cd3
      
      🌐 Opening browser...

      MCP Inspector запустится в вашем веб-браузере. Вы также можете запустить его вручную, открыв браузер и перейдя по адресу http://localhost:<PORT>. Проверьте вывод команды, чтобы узнать локальный порт, на котором запущен MCP Inspector. В этом примере MCP Inspector работает на порту 5173.

    2. В MCP inspector введите URL вашего MCP-сервера (http://localhost:8788/mcp), и выберите Подключить. Выберите Список инструментов чтобы показать инструменты, которые предоставляет ваш MCP-сервер.

  5. Теперь вы можете развернуть свой MCP-сервер на Cloudflare. Из каталога проекта выполните:

    npx wrangler@latest deploy

    Если вы уже подключили git-репозиторий в Worker с вашим MCP-сервером: разверните MCP-сервер, отправив изменение или слив pull request в основную ветку репозитория.

    Сервер MCP будет развёрнут в вашем *.workers.dev поддомен на https://remote-mcp-server-authless.your-account.workers.dev/mcp.

  6. Чтобы протестировать удалённый MCP-сервер, возьмите URL развёрнутого MCP-сервера (https://remote-mcp-server-authless.your-account.workers.dev/mcp) и введите его в MCP inspector, запущенный на http://localhost:5173.

Теперь у вас есть удалённый MCP-сервер, к которому могут подключаться MCP-клиенты.

Подключение с MCP-клиента через локальный прокси

Теперь, когда ваш удалённый MCP-сервер запущен, вы можете использовать mcp-remote локальный прокси ↗ чтобы подключить к нему Claude Desktop или другие MCP-клиенты, даже если ваш MCP-клиент не поддерживает удалённый транспорт или авторизацию на стороне клиента. Это позволяет протестировать, как будет выглядеть взаимодействие с вашим удалённым MCP-сервером через настоящий MCP-клиент.

Например, для подключения из Claude Desktop:

  1. Обновите конфигурацию Claude Desktop, указав в ней URL-адрес вашего MCP-сервера:

    {
    	"mcpServers": {
    		"math": {
    			"command": "npx",
    			"args": [
    				"mcp-remote",
    				"https://remote-mcp-server-authless.your-account.workers.dev/mcp"
    			]
    		}
    	}
    }
  2. Перезапустите Claude Desktop, чтобы загрузить MCP-сервер. После этого Claude сможет обращаться к вашему удалённому MCP-серверу.

  3. Чтобы проверить это, попросите Claude использовать один из ваших инструментов. Например:

    Could you use the math tool to add 23 and 19?

    Claude должен вызвать инструмент и показать результат, сгенерированный удалённым MCP-сервером.

Чтобы узнать, как использовать удалённые MCP-серверы с другими MCP-клиентами, см. Тестирование удалённого MCP-сервера.

Добавьте аутентификацию

Пример публичного MCP-сервера, который вы развернули ранее, позволяет любому клиенту подключаться и вызывать инструменты без входа в систему. Чтобы добавить аутентификацию пользователей в свой MCP-сервер, можно подключить Cloudflare Access или сторонний сервис в качестве провайдера OAuth. Ваш MCP-сервер обрабатывает безопасные процессы входа и выдаёт токены доступа, которые MCP-клиенты используют для аутентифицированных вызовов инструментов. Пользователи входят через провайдера OAuth и предоставляют своему AI-агенту разрешение на взаимодействие с инструментами вашего MCP-сервера, используя разрешения с ограниченной областью действия.

Cloudflare Access OAuth

Вы можете настроить MCP-сервер так, чтобы он требовал аутентификации пользователя через Cloudflare Access. Cloudflare Access выступает в роли агрегатора идентификации и проверяет электронные адреса пользователей, сигналы от вашей существующей поставщики идентификации (например, GitHub или Google), а также других атрибутов, таких как IP-адрес или сертификаты устройства. Когда пользователи подключаются к MCP-серверу, им будет предложено войти через настроенного поставщика удостоверений, и доступ предоставляется только в случае прохождения Политики доступа.

Пошаговое руководство по развёртыванию см. в Защитите серверы MCP с помощью Access for SaaS.

Сторонний OAuth

Вы можете подключить свой MCP-сервер к любому OAuth-провайдер который поддерживает спецификацию OAuth 2.0, включая GitHub, Google, Slack, Stytch, Auth0, WorkOS, и многое другое.

В следующем примере показано, как использовать GitHub в качестве OAuth-провайдера.

Шаг 1: создание нового сервера MCP

Выполните следующую команду, чтобы создать новый сервер MCP с GitHub OAuth:

npm create cloudflare@latest -- my-mcp-server-github-auth --template=cloudflare/ai/demos/remote-mcp-github-oauth

Теперь у вас настроен MCP-сервер, и установлены все зависимости. Перейдите в папку этого проекта:

cd my-mcp-server-github-auth

Вы заметите, что в примере MCP-сервера, если открыть src/index.ts, главное отличие в том, что defaultHandler устанавливается в GitHubHandler:

import GitHubHandler from "./github-handler";

export default new OAuthProvider({
	apiRoute: "/mcp",
	apiHandler: MyMCP.serve("/mcp"),
	defaultHandler: GitHubHandler,
	authorizeEndpoint: "/authorize",
	tokenEndpoint: "/token",
	clientRegistrationEndpoint: "/register",
});

Это гарантирует, что ваши пользователи перенаправляются на GitHub для аутентификации. Однако чтобы это заработало, вам нужно создать клиентские приложения OAuth, как описано в шагах ниже.

Шаг 2: создание OAuth-приложения

Вам нужно будет создать два GitHub OAuth Apps ↗ to use GitHub as an authentication provider for your MCP server, one for local development, and one for production.

Шаг 2.1: создание нового OAuth-приложения для локальной разработки

  1. Перейдите в github.com/settings/developers ↗ чтобы создать новое OAuth-приложение со следующими настройками:

    • Название приложения: My MCP Server (local)
    • URL-адрес домашней страницы: http://localhost:8788
    • Authorization callback URL: http://localhost:8788/callback
  2. Для только что созданного OAuth-приложения добавьте ID клиента этого приложения как GITHUB_CLIENT_ID и сгенерируйте клиентский секрет, добавив его как GITHUB_CLIENT_SECRET к .env файл в корне вашего проекта, который будут использованы для настройки секретов в локальной среде разработки.

    touch .env
    echo 'GITHUB_CLIENT_ID="your-client-id"' >> .env
    echo 'GITHUB_CLIENT_SECRET="your-client-secret"' >> .env
    cat .env
  3. Выполните следующую команду, чтобы запустить сервер разработки:

    npm start

    Ваш MCP-сервер теперь работает на http://localhost:8788/mcp.

  4. В новом терминале запустите MCP inspector ↗. MCP inspector представляет собой интерактивный MCP-клиент, который позволяет подключаться к вашему MCP-серверу и вызывать инструменты из веб-браузера.

    npx @modelcontextprotocol/inspector@latest
  5. Откройте MCP inspector в вашем веб-браузере:

    open http://localhost:5173
  6. В inspector введите URL вашего MCP-сервера, http://localhost:8788/mcp

  7. В главной панели справа нажмите OAuth Settings кнопку и затем нажмите Быстрый OAuth-процесс.

    Вы должны быть перенаправлены на страницу входа или авторизации GitHub. После того как вы предоставите MCP-клиенту (инспектору) доступ к своей учётной записи GitHub, вы будете перенаправлены обратно в инспектор.

  8. Нажмите Подключить в боковой панели, и вы должны увидеть кнопку «List Tools», которая покажет список инструментов, предоставляемых вашим MCP-сервером.

Шаг 2.2: создание нового OAuth-приложения для продакшена

Вам нужно будет повторить Шаг 2.1 чтобы создать новое OAuth-приложение для продакшена.

  1. Перейдите в github.com/settings/developers ↗ чтобы создать новое OAuth-приложение со следующими настройками:
  1. Для только что созданного OAuth-приложения добавьте ID клиента и клиентский секрет с помощью Wrangler CLI:
npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY

Используйте любую случайную строку для COOKIE_ENCRYPTION_KEY, например вывод openssl rand -hex 32.

  1. Настройте пространство имён KV

    a. Создайте пространство имён KV:

    npx wrangler kv namespace create "OAUTH_KV"

    b. Обновите wrangler.jsonc файл с полученным ID KV:

    {
    	"kvNamespaces": [
    		{
    			"binding": "OAUTH_KV",
    			"id": "<YOUR_KV_NAMESPACE_ID>"
    		}
    	]
    }
  2. Разверните MCP-сервер в своём Cloudflare workers.dev домен:

    npm run deploy
  3. Подключитесь к серверу, работающему по адресу worker-name.account-name.workers.dev/mcp с помощью AI Playground ↗, MCP Inspector или другие MCP-клиенты, и авторизуйтесь через GitHub.

Следующие шаги

MCP-инструменты

Добавьте инструменты на свой MCP-сервер.

Авторизация

Настройте аутентификацию и авторизацию.