Cloudflare adopta el MCP remoto: amplía las capacidades del agente de IA a Internet

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

en construcción AI Aplicaciones y Agent El círculo de protocolos de contexto de modelo (Model Context ProtocolMCP) se está convirtiendo en un tema candente. Gran parte del debate gira en torno a la instalación y ejecución en un ordenador local del MCP Despliegue del servidor. Hace poco.Cloudflare ha anunciado la compatibilidad con su plataforma para la construcción y el despliegue.a distancia MCP que marca el MCP Un importante punto de inflexión en la aplicación.

Cloudflare Para simplificar MCP El servidor está construido para introducir cuatro capacidades clave:

  1. workers-oauth-provider: a OAuth que simplifica enormemente el proceso de autorización necesario para los servicios remotos.
  2. McpAgent: integrado en Cloudflare Agents SDK Una clase en el MCP Los detalles de teletransporte del
  3. mcp-remote: una herramienta adaptadora que permite la conexión local sólo compatible con MCP El cliente también puede comunicarse con el MCP Interacción con el servidor.
  4. AI playground a distancia MCP cliente (informática): una interfaz de chat en línea para conectarse directamente y probar a distancia MCP con controles de autenticación integrados.

Los desarrolladores pueden utilizar el Cloudflare El código de ejemplo y el botón de despliegue proporcionados, en un abrir y cerrar de ojos, colocan un MCP El servidor se despliega en el entorno de producción.

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

 

A diferencia de lo que ocurría hasta ahora con el uso de MCP son diferentes, el servidor remoto MCP El servidor es de acceso público. Los usuarios solo tienen que iniciar sesión y conceder permisos mediante un proceso de autorización familiar.MCP Clientes (por ejemplo AI Agent) podrán acceder a las herramientas necesarias. Esto se considera un gran paso adelante. En los últimos meses, ha sido un reto llevar la codificación Agent Conectar con el local MCP han dado a los desarrolladores una primera muestra de su potencial, y los servidores de MCP A su vez, se espera extender un modelo de trabajo similar a un grupo más amplio de usuarios, incluidos más escenarios de aplicaciones cotidianas para el consumidor. No se trata sólo de una diferencia de aplicación técnica, sino que podría anunciar AI Agent Un cambio fundamental en el paradigma de las aplicaciones.

 

De lo local a lo remoto: un paso crítico para que MCP llegue a las masas

MCP se está convirtiendo rápidamente en un protocolo universal que permite utilizar grandes modelos lingüísticos (LLMLa capacidad de ir más allá del simple razonamiento (inference) y la generación de mejoras de recuperación (RAG) que puede realizar operaciones que requieren acceso a recursos externos (por ejemplo, enviar correos electrónicos, desplegar código, publicar blogs, etc.). Esto hace que AI Agent (MCP Cliente) se puede acceder a través de un servicio externo (MCP servidor) para interactuar con las herramientas y recursos proporcionados por el servidor.

Sin embargo, hasta la fecha, laMCP se limitan a ejecutarse localmente. Si desea que el AI Agent aprobar (una factura o inspección, etc.) MCP Para acceder a una herramienta en la web, los desarrolladores suelen tener que configurar un servidor local en su propia máquina. Esto significa que no es posible utilizar una interfaz web o una aplicación móvil desde el MCPTambién faltan mecanismos que permitan a los usuarios normales autenticarse y autorizarse.MCP El servidor no está realmente "en línea".

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

fuera del sitio MCP El soporte conectado cambia esta situación. Crea oportunidades para llegar a una gama más amplia de usuarios de Internet que son menos propensos a ir a una instalación local y ejecutar aplicaciones de escritorio sólo para utilizar el MCP Servidor. Remoto MCP soporte, como si se pasara del software de escritorio al Web Transición del software. Los usuarios esperan trabajar continuamente en todos los dispositivos y que todo funcione cuando se conectan. Local MCP Es cómodo para los desarrolladores, pero es la conexión remota la que hace que el MCP El eslabón crítico que falta para que los servicios lleguen a todos los usuarios de Internet. Por supuesto, las conexiones remotas también deben tener en cuenta el posible impacto de la latencia de la red, que no es la misma que la local. stdio La comunicación es diferente.

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

 

Autenticación y autorización "listas para usar" en MCP

comandante en jefe (militar) MCP Empujar de local a remoto es algo más que cambiar la capa de transporte (del stdio a fluido HTTP). Cuando se construye una remota que requiere acceso a la información de la cuenta de usuario MCP la autenticación (authentication) y autorización (authorization). Tiene que haber una forma de que los usuarios inicien sesión y demuestren su identidad, y tiene que haber una forma de que los usuarios controlen AI Agent A qué se puede acceder cuando se utiliza el servicio.

MCP La especificación utiliza el OAuth 2.0 para resolver este problema.OAuth es un protocolo estándar que permite a los usuarios autorizar a las aplicaciones a acceder a su información o servicios sin compartir contraseñas. En el MCP Escenario.MCP El propio servidor reproduce OAuth Provider papel. Sin embargo, la autoaplicación completa se ajusta a la MCP formal OAuth El proceso es bastante complejo y propenso a errores.Cloudflare Los programas ofrecidos están diseñados para resolver este problema.

workers-oauth-provider: Biblioteca de proveedores OAuth 2.1 personalizada para trabajadores de Cloudflare

Cuando el promotor está en el Cloudflare desplegar sobre MCP servidor cuando su Worker Es posible utilizar workers-oauth-provider Este nuevo TypeScript para actuar como OAuth Provider. La biblioteca encapsula el Worker Código para API Puntos finales (entre otros) MCP server endpoints) añadió una capa de autorización.

MCP El servidor recibe la información del usuario autenticado directamente como parámetro y no necesita realizar la validación o gestión de tokens por su cuenta. Al mismo tiempo, el desarrollador sigue teniendo pleno control sobre cómo se autentica el usuario: desde la pantalla de inicio de sesión (UI) hasta qué proveedor de identidad elegir (p. ej. GoogleGitHub (o construye tu propio sistema).

completa MCP OAuth El proceso es el siguiente:

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

En este proceso, elMCP El servidor es a la vez un servicio ascendente (p. ej. GitHubGoogle(utilizado para enfatizar) OAuth Los clientes, por su parte, están orientados a MCP Clientes (por ejemplo AI Agent(utilizado para enfatizar) OAuth Servidor (Provider). Los desarrolladores pueden utilizar cualquier proceso de autenticación upstream, y el workers-oauth-provider seguro MCP Cumplimiento del servidor MCP Especificación de los requisitos de autorización para trabajar con una amplia gama de aplicaciones cliente y sitios web. Esto incluye la compatibilidad con el registro dinámico de clientes (RFC 7591) y los metadatos del servidor de autorización (RFC 8414). El uso de esta biblioteca reduce significativamente la complejidad del desarrollo y mejora la seguridad y la conformidad en comparación con la autoimplementación.

Interfaz OAuth sencilla y conectable

utilizar Cloudflare Workers construir (algo abstracto) MCP el desarrollador sólo tiene que proporcionar el archivo OAuth Provider Ejemplos de vías relacionadas (autorización, tokens, puntos finales de registro de clientes), y MCP Procesador para servidor y lógica de autenticación (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",
});

Esta abstracción facilita la inserción de lógica de autenticación personalizada. Por ejemplo, una aplicación que utilice el método GitHub como proveedor de identidades MCP que puede utilizarse implementando la función /callback responder cantando /authorize enrutamiento, integrándose en menos de 100 líneas de código.

¿Por qué los servidores MCP emiten su propio token?

En el diagrama de autorización anterior y MCP Cabe destacar la parte de la norma relativa a la autorización MCP El servidor enviará un mensaje al MCP El cliente emite su propio Tokenen lugar de pasar directamente el servicio ascendente del que procede el Token.

Específicamente.Worker El token de acceso obtenido en la fase previa (access token) Almacenamiento cifrado (por ejemplo, mediante Workers KV) y, a continuación, generar y emitir un nuevo Token en beneficio de MCP Cliente.workers-oauth-provider La biblioteca gestiona este proceso automáticamente, y el código del desarrollador no necesita tocar directamente el token de subida de texto plano ni gestionar el propio almacenamiento, evitando así posibles riesgos de seguridad.

// 调用 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)

A primera vista, este enfoque indirecto parece más complejo. ¿Por qué está tan diseñado?

Al emitir su propio Token(matemáticas) géneroMCP Los servidores pueden imponer un control de acceso más preciso que los proveedores de acceso. Incluso cuando se emiten a MCP del lado del cliente Token comprometida, y el atacante obtiene acceso sólo a esa MCP Permisos limitados concedidos explícitamente por el servidor (a través de su tools), en lugar del acceso completo al servicio ascendente.

Por ejemplo, supongamos que MCP El servidor solicita autorización al usuario para leer Gmail Permisos de correo (mediante gmail.readonly scope). Sin embargo, el servidor expone el tool La funcionalidad es más limitada, ya que sólo permite leer la notificación de reserva de viaje de un remitente concreto para responder a preguntas como "¿A qué hora es la salida de mi hotel mañana?". etc. Los desarrolladores pueden añadir la función MCP Esta restricción se aplica en el servidor. Si se emite al MCP del lado del cliente Token Robado, como el Token Corresponde a MCP en lugar del proveedor original (Google), el atacante no puede utilizarlo para leer correos electrónicos arbitrarios y sólo puede llamar a la función MCP herramientas específicas proporcionadas por el servidor.OWASP Para sustituir el término "sobreagente" (Excessive Agency) figura como construida AI uno de los principales riesgos de la aplicación. Al emitir su propio Token y la imposición de restricciones.MCP El servidor puede restringir el acceso a la herramienta para proporcionar sólo la funcionalidad requerida por el cliente, siguiendo el principio del menor privilegio.

Otro ejemplo, basado en el GitHub puede obligar a que sólo determinados usuarios accedan a una herramienta. En el siguiente ejemplo, sólo los usuarios de la lista blanca (geelen) para ver y llamar al generateImage que utiliza la herramienta Workers AI Siga las instrucciones para generar una imagen:

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' }],
}
}
)
}
}
}

 

Introducción de McpAgent: compatible con el teletransporte actual y futuro

comandante en jefe (militar) MCP El siguiente paso para sacar la máquina local es abrir la capa de transporte remota. La máquina local MCP Los servidores suelen estar configurados con entradas y salidas estándar (stdio) para comunicarse, pero que el MCP a través de Internet, es necesario implantar un protocolo de teletransporte, que actualmente se basa en el proyecto de especificación HTTP (utilizado como expresión nominal) Server-Sent Events (SSE).

Cloudflare en su Agents SDK void void void void void void void void void void void void void void void void void void void void void void void void void void void void void void void McpAgent se encarga de la complejidad del teletransporte. Lo hace en segundo plano utilizando la función Durable Objects para mantener una conexión persistente, haciendo que el MCP El cliente puede pasar el SSE hacia MCP El servidor envía el mensaje. El desarrollador no necesita escribir el código subyacente que gestiona la transmisión o la serialización. Una solución minimalista MCP El servidor puede implementarse con sólo una docena de líneas de código:

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) }],
}));
}
}

Cabe señalar que, tras los debates comunitariosMCP El teletransportador del pliego de condiciones se está revisando con planes para utilizar streamable HTTP (Streamable HTTP) sustituye al actual HTTP+SSE Programa. Esto permitirá una asociación con la MCP El servidor establece HTTP y, opcionalmente, actualizar a SSEEl cliente puede enviar mensajes a diferentes puntos finales, eliminando la complejidad de tener que enviar mensajes a diferentes puntos finales.Cloudflare indique McpAgent Las clases evolucionarán con las actualizaciones de las especificaciones para admitir nuevas Streamable HTTP que garantizan que los desarrolladores no tengan que reescribir el código para adaptarse a los cambios en los métodos de transmisión.

Esta consideración de la evolución futura de los protocolos de transmisión es igualmente importante. En la actualidad, la gran mayoría de MCP Servidor Exposición principal toolsEn esencia, son simples llamadas a procedimientos remotos (RPC), que puede proporcionar la transmisión sin estado. Pero el más complejo "man-in-the-loop" (human-in-the-loop) y Agent Escenarios de interacción que requerirán prompts responder cantando sampling et al. (y otros autores) MCP Soporte conceptual. Estos escenarios que requieren una comunicación bidireccional y en tiempo real son difíciles de implementar eficientemente sin una capa de transporte bidireccional. Para entonces, laCloudflare Plataforma,Agents SDK responder cantando Durable Objects Todo compatible de forma nativa WebSocketsLa capacidad de comunicación full-duplex, bidireccional y en tiempo real ofrece la posibilidad de futuras comunicaciones más avanzadas. MCP Sentar las bases para las aplicaciones.

 

Servidor MCP Stateful con funciones de Agente

existe Cloudflare enlace ascendente MCP Cuando el servidor, cada MCP Las sesiones de los clientes están controladas por un Durable Object Apoyo (a través de Agents SDK). Esto significa que cada sesión puede gestionar y persistir su propio estado, e incluso puede tener su propio SQL Base de datos.

Esto prepara el terreno para construir MCP El servidor abre la puerta.MCP Los servidores ya no son sólo un lugar para las aplicaciones cliente y las aplicaciones externas. API capas de transición sin estado entre ellas, que a su vez pueden ser aplicaciones con estado: por ejemplo, juegos, procesos de pago con carritos de la compra, grafos de conocimiento persistentes, etc. En la Cloudflare Arriba.MCP El potencial de los servidores va mucho más allá de actuar como REST API de la parte delantera.

Se utiliza un sencillo ejemplo de contador para comprender los principios básicos de su funcionamiento:

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 });
}
}

Para una sesión determinada, los MCP El servidor tomará una serie de tool Recuerda el estado del contador entre llamadas.

existe MCP Dentro del servidor, los desarrolladores pueden utilizar la función Cloudflare Funciones completas de la plataforma para desarrolladores, como MCP El servidor inicia el navegador para la navegación web, activando WorkflowLlame a AI Modelos, etc. Esto es un buen augurio para la MCP El ecosistema evolucionará hacia casos de uso más avanzados e inteligentes.

 

Conexión de un cliente MCP existente a un servidor remoto

Cloudflare Apoyo anticipado a la teleasistencia MCPIncluso en la corriente dominante MCP Por lo general, las aplicaciones cliente admiten la autenticación remota MCP Antes. Esto brinda a los desarrolladores la oportunidad de ir un paso por delante.

Pero esto también plantea un verdadero reto: si todavía no hay soporte para la telemática MCP cómo los desarrolladores pueden probar y conseguir que los usuarios utilicen los mandos a distancia que construyen. MCP ¿Servidores?

Cloudflare Para contrarrestarlo, se ofrecen dos nuevas herramientas:

  1. Workers AI Playground actualización: Esta interfaz de chat en línea es ahora un mando a distancia totalmente funcional MCP Cliente que admite la conexión a cualquier MCP con un proceso de autenticación integrado. El desarrollador sólo tiene que introducir la dirección del servidor remoto URL(por ejemplo https://remote-server.example.com/sse) y haga clic en Conectar para probarlo inmediatamente sin necesidad de instalar ningún software localmente.Cloudflare 拥抱远程 MCP:将 AI Agent 能力推向更广阔的互联网

    Tras hacer clic en Conectar, el usuario pasará por un proceso de autenticación (si se ha configurado) y podrá chatear directamente con el usuario. MCP Interacción con la herramienta del servidor.

  2. mcp-remote adaptador (dispositivo): Para los que ya apoyan MCP Los clientes que aún no manejan conexiones remotas y autenticación (como el Claude Desktop tal vez Cursor), puede utilizar la función mcp-remote. Es un npm que actúa como puente entre los clientes locales y los servidores remotos. Permite a desarrolladores y usuarios previsualizar la interfaz con servidores remotos. MCP experiencia de interacción con el servidor sin tener que esperar a que el propio cliente actualice su soporte.

    Cloudflare Proporciona información sobre cómo incorporar mcp-remote junto con Claude DesktopCursorWindsurf epidemia MCP Directrices para el uso del cliente junto con el cliente. Por ejemplo Claude Desktop en el archivo de configuración, simplemente añada una configuración similar a la siguiente:

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

 

La era del MCP remoto ha llegado

Protocolo de contexto de modelo remoto (Remote MCP) es sin duda AI Agent es una importante dirección de desarrollo. Cuando las aplicaciones cliente admitan ampliamente la MCP cuando su base de usuarios se amplíe de los desarrolladores a un grupo mucho más amplio de personas, que puede que ni siquiera hayan oído hablar del MCP El término.

Para los proveedores de servicios, la MCP Es un servidor que integra sus propios servicios en un sistema utilizado por millones de usuarios. AI La ruta crítica en asistentes y herramientas. Según los informes, muchas grandes empresas de Internet han estado construyendo activamente MCP servidores, y al mismo tiempo, te hace esperar a aquellos que son conocidos por su Agent-firstyMCP-native camino hacia el nacimiento de un negocio emergente.

sobre la base de Cloudflare proporciona herramientas y plataformas que los desarrolladores pueden utilizar ahora para empezar a crear sistemas remotos preparados para el futuro. MCP Aplicaciones. Esto no es sólo una actualización de la pila tecnológica, es una actualización de la AI Agent Una importante exploración de cómo integrar los servicios de Internet. A medida que madure el ecosistema, los MCP Promete generar experiencias de usuario más inteligentes y personalizadas. Los desarrolladores pueden consultar la Documentación para desarrolladores de Cloudflare Infórmate y empieza a practicar.

© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...