Cloudflare использует удаленный MCP: расширяя возможности агентов искусственного интеллекта в широком Интернете

Новости ИИОпубликовано 5 месяцев назад Круг обмена ИИ
8.8K 00

Cloudflare 拥抱远程 MCP:将 AI Agent 能力推向更广阔的互联网

строящийся AI Приложения и Agent Круг контекстных протоколов моделирования (Model Context ProtocolMCP) становится все более актуальной темой. Большая часть обсуждений связана с установкой и запуском на локальном компьютере программы MCP Развертывание сервера. Недавно.Cloudflare Объявила о поддержке создания и развертывания на своей платформеудаленно MCP сервер, который отмечает MCP Важный поворотный момент в заявке.

Cloudflare Для упрощения дистанционного MCP Сервер создан для реализации четырех ключевых возможностей:

  1. workers-oauth-provider: a OAuth Библиотека Provider, которая значительно упрощает процесс авторизации, необходимый для удаленных сервисов.
  2. McpAgent: интегрирован в Cloudflare Agents SDK Класс в MCP Детали телепортации
  3. mcp-remote: инструмент адаптера, позволяющий поддерживать только локальные соединения. MCP Клиент также может взаимодействовать с удаленным MCP Взаимодействие с сервером.
  4. AI playground издалека MCP клиент (вычислительная техника): интерфейс онлайн-чата для прямого подключения и тестирования удаленных MCP сервер со встроенной проверкой подлинности.

Разработчики могут использовать Cloudflare Приведенный пример кода и кнопка развертывания позволяют в кратчайшие сроки создать MCP Сервер развернут в производственной среде.

https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-server

 

В отличие от распространенного ранее использования местных MCP серверы разные, удаленный MCP Сервер находится в открытом доступе. Пользователи просто входят в систему и предоставляют разрешения с помощью привычного процесса авторизации.MCP Клиенты (например. AI Agent) смогут получить доступ к необходимым инструментам. Это считается огромным шагом вперед. В течение последних нескольких месяцев было непросто внедрить кодирование Agent Подключение к локальной сети MCP Серверы дали разработчикам возможность оценить их потенциал, а удаленные MCP В свою очередь, ожидается, что подобная рабочая модель распространится на более широкую группу пользователей, включая более повседневные сценарии применения потребительского класса. Это не просто разница в технической реализации, это может стать предвестником AI Agent Фундаментальный сдвиг в парадигме приложений.

 

От локального к удаленному: критический шаг для MCP к массовому охвату

MCP быстро становится универсальным протоколом, позволяющим создавать большие языковые модели (LLMСпособность выходить за рамки простых рассуждений (inference) и генерация улучшений при поиске (RAG), способный выполнять операции, требующие доступа к внешним ресурсам (например, отправлять электронные письма, развертывать код, писать в блогах и т. д.). Это делает AI Agent (MCP Клиент) можно получить доступ через внешнюю службу (MCP сервер) для взаимодействия с инструментами и ресурсами, предоставляемыми сервером.

Однако на сегодняшний деньMCP приложения в основном ограничиваются локальным запуском. Если вы хотите AI Agent пройти (законопроект, проверку и т.д.) MCP Чтобы получить доступ к инструменту в Интернете, разработчикам обычно приходится устанавливать локальный сервер на своей машине. Это означает, что невозможно использовать веб-интерфейс или мобильное приложение из MCPТакже отсутствуют механизмы, позволяющие обычным пользователям проходить аутентификацию и авторизацию.MCP На самом деле сервер не находится в режиме "онлайн".

Cloudflare 拥抱远程 MCP:将 AI Agent 能力推向更广阔的互联网

за пределами сайта MCP Подключенная поддержка меняет ситуацию. Она создает возможности для охвата более широкого круга пользователей Интернета, которые с меньшей вероятностью пойдут на локальную установку и запустят настольные приложения только для того, чтобы использовать MCP Сервер. Удаленный MCP поддержка, как при переходе от настольного программного обеспечения к Web Переход на новое программное обеспечение. Пользователи рассчитывают на постоянную работу на разных устройствах и на то, что при входе в систему все будет работать. Локальный MCP Это удобно для разработчиков, но именно удаленное соединение делает MCP Критически важное недостающее звено для того, чтобы услуги доходили до всех пользователей Интернета. Конечно, при удаленном подключении необходимо учитывать возможное влияние задержки в сети, что не то же самое, что при локальном. stdio Общение происходит по-разному.

Cloudflare 拥抱远程 MCP:将 AI Agent 能力推向更广阔的互联网

 

Заставить аутентификацию и авторизацию работать "из коробки" в MCP

главнокомандующий (военный) MCP Переход с локального на удаленный - это не просто изменение транспортного уровня (от stdio текучий HTTP). При создании пульта, требующего доступа к информации об учетной записи пользователя MCP сервер, аутентификация (authentication) и разрешения (например.authorization) стали критически важными. Необходимо, чтобы пользователи могли войти в систему и подтвердить свою личность, а также чтобы пользователи могли контролировать AI Agent Что можно получить при пользовании услугой.

MCP В спецификации используется OAuth 2.0 для решения этой проблемы.OAuth это стандартный протокол, позволяющий пользователям разрешать приложениям доступ к своей информации или услугам без передачи паролей. В MCP Сценарий.MCP Сам сервер играет OAuth Provider роль. Однако полная реализация сама по себе соответствует MCP официальный OAuth Этот процесс довольно сложен и чреват ошибками.Cloudflare Предлагаемые программы призваны решить эту проблему.

workers-oauth-provider: Пользовательская библиотека провайдера OAuth 2.1 для Cloudflare Workers

Когда разработчик находится в Cloudflare развернуть поверх MCP сервер, когда его Worker Можно использовать workers-oauth-provider Этот новый TypeScript Библиотека выступает в качестве OAuth Provider. Библиотека инкапсулирует Worker Код для API Конечные точки (включая, но не ограничиваясь ими) MCP конечные точки сервера) добавили уровень авторизации.

MCP Сервер получает информацию об аутентифицированном пользователе непосредственно в качестве параметра, и ему не нужно самостоятельно выполнять проверку или управление токенами. В то же время разработчик по-прежнему полностью контролирует процесс аутентификации пользователя: с экрана входа в систему (UI) до выбора поставщика идентификационных данных (например. GoogleGitHub (или создайте свою собственную систему).

полный MCP OAuth Процесс происходит следующим образом:

Cloudflare 拥抱远程 MCP:将 AI Agent 能力推向更广阔的互联网

В этом процессеMCP Сервер является одновременно и восходящей службой (например. GitHubGoogle(использовано для выделения) OAuth Клиенты, в свою очередь, ориентированы на MCP Клиенты (например. AI Agent(использовано для выделения) OAuth Сервер (Provider). Разработчики могут использовать любой процесс аутентификации, расположенный выше по течению, и workers-oauth-provider безопасный MCP Соответствие требованиям сервера MCP Спецификация требований к авторизации для работы с широким спектром клиентских приложений и веб-сайтов. Сюда входит поддержка динамической регистрации клиентов (RFC 7591) и метаданные сервера авторизации (RFC 8414). Использование этой библиотеки значительно снижает сложность разработки и повышает безопасность и соответствие требованиям по сравнению с самостоятельной реализацией.

Простой, подключаемый интерфейс OAuth

пользоваться Cloudflare Workers конструировать (что-л. абстрактное) MCP сервер, разработчику нужно только предоставить OAuth Provider Примеры связанных путей (авторизация, токены, конечные точки регистрации клиентов) и MCP Процессор для сервера и логики аутентификации (handler):

import OAuthProvider from "@cloudflare/workers-oauth-provider";
import MyMCPServer from "./my-mcp-server";
import MyAuthHandler from "./auth-handler";
export default new OAuthProvider({
apiRoute: "/sse", // MCP 客户端连接服务器的路由
apiHandler: MyMCPServer.mount('/sse'), // MCP 服务器实现
defaultHandler: MyAuthHandler, // 认证实现
authorizeEndpoint: "/authorize",
tokenEndpoint: "/token",
clientRegistrationEndpoint: "/register",
});

Эта абстракция позволяет легко внедрять пользовательскую логику аутентификации. Например, приложение, использующее GitHub в качестве поставщика идентификационных данных MCP сервер, который можно использовать, реализовав /callback ответить пением /authorize маршрутизации, интегрируясь менее чем в 100 строк кода.

Почему серверы MCP выпускают свой собственный токен?

На схеме авторизации выше и MCP Заслуживает внимания разрешительная часть нормы MCP Сервер отправит сообщение на MCP Клиент выпускает свой собственный Tokenвместо того, чтобы напрямую передавать сервис, от которого Token.

В частности.Worker Токен доступа, полученный от восходящего потока (access token) Зашифрованное хранение (например, с помощью Workers KV), а затем сгенерировать и выпустить новый, отдельный Token на благо MCP Клиент.workers-oauth-provider Библиотека обрабатывает этот процесс автоматически, и коду разработчика не нужно напрямую касаться открытого текста маркера или управлять самим хранилищем, что позволяет избежать потенциальных рисков безопасности.

// 调用 completeAuthorization 时传入的 accessToken 会被加密存储,绝不会暴露给 MCP 客户端
// 一个新的、独立的 token 会在 /token 端点生成并提供给客户端
const { redirectTo } = await c.env.OAUTH_PROVIDER.completeAuthorization({
request: oauthReqInfo,
userId: login,
metadata: { label: name },
scope: oauthReqInfo.scope,
props: {
accessToken,  // 加密存储,不发送给 MCP 客户端
},
})
return Response.redirect(redirectTo)

На первый взгляд, этот непрямой подход кажется более сложным. Почему же он так разработан?

Выпустив свой собственный Token(математика) родMCP Серверы могут обеспечивать более тонкий контроль доступа, чем вышестоящие провайдеры. Даже при выдаче MCP клиентская сторона Token скомпрометирован, и злоумышленник получает доступ только к этому MCP Ограниченные разрешения, явно предоставленные сервером (через его tools), а не полный доступ к вышестоящему сервису.

Например, предположим, что MCP Сервер запрашивает у пользователя разрешение на чтение Gmail Разрешения почты (с помощью gmail.readonly scope). Однако сервер раскрывает tool Функциональность более узкая, позволяющая читать уведомления о бронировании путешествий только конкретного отправителя, чтобы ответить на такие вопросы, как "Во сколько я завтра выеду из отеля?". и так далее. Разработчики могут добавить MCP Это ограничение выполняется на сервере. Если оно выдано на MCP клиентская сторона Token Украденный, как Token Соответствует MCP сервер, а не первоначальный поставщик (Google), злоумышленник не может использовать его для чтения произвольных писем и может только вызвать MCP специальные инструменты, предоставляемые сервером.OWASP Заменить термин "овер-агент" (Excessive Agency) входит в список построенных AI один из главных рисков приложения. Выпустив собственный Token и соблюдение запретов.MCP Сервер может ограничить доступ к инструменту, чтобы предоставить только ту функциональность, которая необходима клиенту, следуя принципу наименьших привилегий.

Другой пример, основанный на вышеупомянутом GitHub аутентификации, вы можете разрешить доступ к инструменту только определенным пользователям. В следующем примере только пользователи из белого списка (geelen), чтобы увидеть и вызвать generateImage инструмент, который использует Workers AI Следуйте подсказкам, чтобы создать изображение:

import { McpAgent } from "agents/mcp";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
const USER_ALLOWLIST = new Set(["geelen"]); // 使用 Set 提高查找效率
export class MyMCP extends McpAgent<Props, Env> {
server = new McpServer({
name: "Github OAuth Proxy Demo",
version: "1.0.0",
});
async init() {
// 根据用户身份动态添加工具
if (USER_ALLOWLIST.has(this.props.login)) {
this.server.tool(
'generateImage',
'使用 flux-1-schnell 模型生成图像。',
{
prompt: z.string().describe('你想要生成的图像的文本描述。')
},
async ({ prompt }) => {
const response = await this.env.AI.run('@cf/black-forest-labs/flux-1-schnell', {
prompt,
steps: 8
});
// 检查 response.image 是否存在
if (!response.image) {
throw new Error("图像生成失败,未返回图像数据。");
}
return {
content: [{ type: 'image', data: response.image, mimeType: 'image/jpeg' }],
}
}
)
}
}
}

 

Внедрение McpAgent: совместимость с текущей и будущей телепортацией

главнокомандующий (военный) MCP Следующим шагом в выводе локальной машины является открытие удаленного транспортного уровня. Локально запущенный MCP Сервер обычно конфигурируется со стандартными входами и выходами (stdio) для общения, но пусть MCP Серверы можно вызывать через Интернет, для этого необходимо реализовать протокол телепортации, который в настоящее время основан на проекте спецификации HTTP (используется в форме номинального выражения) Server-Sent Events (SSE).

Cloudflare в своём Agents SDK пустота пустота пустота пустота пустота пустота пустота пустота пустота пустота пустота пустота пустота пустота пустота McpAgent Класс справляется со сложностью телепортации. Он делает это в фоновом режиме, используя Durable Objects для поддержания постоянного соединения, что делает MCP Клиент может передать SSE в направлении MCP Сервер отправляет сообщение. Разработчику не нужно писать основной код, который обрабатывает передачу или сериализацию. Минималистский MCP Сервер может быть реализован с помощью всего десятка строк кода:

import { McpAgent } from "agents/mcp";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
export class MyMCP extends McpAgent {
server = new McpServer({
name: "Demo",
version: "1.0.0",
});
async init() {
this.server.tool("add", "计算两个数字的和", { a: z.number(), b: z.number() }, async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }],
}));
}
}

Стоит отметить, что после обсуждения в сообществеMCP Телепорт в спецификации пересматривается, планируется использовать потоковые HTTP (Streamable HTTP) заменяет текущий HTTP+SSE Программа. Это позволит наладить партнерство с MCP Сервер устанавливает без статических данных, чистый HTTP подключение и, по желанию, обновление до SSEКлиент может отправлять сообщения различным конечным точкам, избавляясь при этом от необходимости отправлять сообщения различным конечным точкам.Cloudflare указать McpAgent Классы будут развиваться по мере обновления спецификаций для поддержки новых Streamable HTTP Стандарты, гарантирующие, что разработчикам не придется переписывать код, чтобы адаптироваться к изменениям в методах передачи данных.

Не менее важным является и рассмотрение будущего развития протоколов передачи данных. В настоящее время подавляющее большинство MCP Главная экспозиция сервера toolsПо сути, они представляют собой простые удаленные вызовы процедур (RPC), которые могут быть обеспечены передачей без состояния. Но более сложный "человек в петле" (human-in-the-loop) и Agent Сценарии взаимодействия, которые потребуют prompts ответить пением sampling и др. (и другие авторы) MCP Концептуальная поддержка. Эти сценарии, требующие двунаправленной связи в реальном времени, трудно эффективно реализовать без двунаправленного транспортного уровня. К этому времениCloudflare Платформа,Agents SDK ответить пением Durable Objects Все поддерживаются нативно WebSocketsСпособность обеспечивать полнодуплексную, двунаправленную связь в режиме реального времени дает возможность в будущем использовать более совершенные технологии. MCP Заложите основу для приложений.

 

Государственный сервер MCP с функциями агента

существовать Cloudflare восходящая линия связи MCP Когда сервер, каждый MCP Все клиентские сессии управляются Durable Object Поддержка (через Agents SDK). Это означает, что каждая сессия может управлять своим состоянием и сохранять его, и даже может иметь свой собственный SQL База данных.

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

На примере простого счетчика можно понять основные принципы его работы:

import { McpAgent } from "agents/mcp";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
type State = { counter: number }
export class MyMCP extends McpAgent<Env, State, {}> {
server = new McpServer({
name: "Demo",
version: "1.0.0",
});
// 定义初始状态
initialState: State = {
counter: 1,
}
async init() {
// 定义一个资源,用于读取计数器当前值
this.server.resource(`counter`, `mcp://resource/counter`, (uri) => {
return {
contents: [{ uri: uri.href, text: String(this.state.counter) }],
}
})
// 定义一个工具,用于增加计数器的值
this.server.tool('add', '增加存储在 MCP 服务器中的计数器的值', { a: z.number() }, async ({ a }) => {
// 更新状态
this.setState({ ...this.state, counter: this.state.counter + a });
return {
content: [{ type: 'text', text: `增加了 ${a}, 当前总数是 ${this.state.counter}` }],
}
})
}
// 状态更新时的回调(可选)
onStateUpdate(state: State) {
console.log({ stateUpdate: state });
}
}

Для данного сеанса вышеуказанные MCP Серверу потребуется несколько tool Запомните состояние счетчика между вызовами.

существовать MCP Внутри сервера разработчики могут использовать Cloudflare Полные возможности платформы для разработчиков, такие как MCP Сервер запускает браузер для просмотра веб-страниц, вызывая WorkflowЗвоните на AI Модели и т.д. Это предвещает MCP Экосистема будет развиваться и переходить к более продвинутым и интеллектуальным вариантам использования.

 

Подключение существующего клиента MCP к удаленному серверу

Cloudflare Ранняя поддержка удаленных MCPДаже в основной массе MCP Клиентские приложения обычно поддерживают удаленную аутентификацию MCP Раньше. Это дает разработчикам возможность быть на шаг впереди.

Но это также создает реальную проблему: если еще нет поддержки удаленного MCP клиенты, как разработчики могут протестировать и заставить пользователей использовать созданные ими пульты. MCP Серверы?

Cloudflare Для борьбы с этим предлагаются два новых инструмента:

  1. Workers AI Playground обновление: Этот интерфейс онлайн-чата теперь является полнофункциональным удаленным MCP Клиент, поддерживающий подключение к любому удаленному MCP сервер со встроенным процессом аутентификации. Разработчик просто вводит адрес удаленного сервера URL(например. https://remote-server.example.com/sse) и нажмите кнопку Connect, чтобы сразу же протестировать его без необходимости устанавливать какое-либо программное обеспечение локально.Cloudflare 拥抱远程 MCP:将 AI Agent 能力推向更广阔的互联网

    После нажатия кнопки "Подключиться" пользователь пройдет процесс аутентификации (если он был установлен) и сможет напрямую общаться с MCP Взаимодействие с серверными инструментами.

  2. mcp-remote адаптер (устройство): Для тех, кто уже поддерживает MCP Клиенты, которые еще не обрабатывают удаленные соединения и аутентификацию (такие как Claude Desktop возможно Cursor), вы можете использовать mcp-remote. Это npm Пакет, выполняющий роль моста между локальными клиентами и удаленными серверами. Он позволяет разработчикам и пользователям предварительно просматривать интерфейс с удаленными MCP опыт взаимодействия с сервером без необходимости ждать, пока клиент сам обновит свою поддержку.

    Cloudflare Предоставляет информацию о том, как включить mcp-remote вместе с Claude DesktopCursorWindsurf эпидемия MCP Рекомендации по использованию клиента в сочетании с клиентом. Например Claude Desktop в файл конфигурации, просто добавьте конфигурацию, подобную следующей:

    {
    "mcpServers": {
    "remote-example": {
    "command": "npx",
    "args": [
    "mcp-remote",
    "https://remote-server.example.com/sse" // 替换为你的远程服务器 URL
    ]
    }
    }
    }
    

 

Наступает эра удаленных MCP

Протокол контекста удаленной модели (Remote MCP), несомненно. AI Agent Область является важным направлением развития. Когда клиентские приложения будут широко поддерживать удаленную MCP сервер, когда его пользовательская база расширится от разработчиков до гораздо более широкой группы людей - которые, возможно, даже никогда не слышали о MCP Термин.

Для поставщиков услуг создание удаленных MCP Сервер - это сервер, который объединяет свои собственные сервисы в систему, используемую миллионами пользователей. AI Критический путь в помощниках и инструментах. Сообщается, что многие крупные интернет-компании активно создают MCP серверов, и в то же время заставляет вас с нетерпением ждать тех, кто известен своими Agent-first, иMCP-native путь к рождению зарождающегося бизнеса.

на основании Cloudflare Предоставляет инструменты и платформы, которые разработчики могут использовать уже сейчас, чтобы начать создавать удаленные объекты, ориентированные на будущее. MCP Приложения. Это не только обновление технологического стека, но и обновление AI Agent Важное исследование того, как интегрировать интернет-услуги. По мере развития экосистемы удаленные MCP Она обещает породить более интеллектуальный и персонализированный пользовательский опыт. Разработчики могут ознакомиться с Документация для разработчиков Cloudflare Получите больше информации и начните практиковаться.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...