Aprendizagem pessoal com IA
e orientação prática
豆包Marscode1

A Cloudflare adota o MCP remoto: levando os recursos do agente de IA para a Internet mais ampla

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

em construção AI Aplicativos e Agent O círculo de protocolos de contexto de modelo (Model Context ProtocolMCP) está se tornando um assunto muito discutido. Grande parte da discussão gira em torno da instalação e execução em um computador local do MCP Desdobramento do servidor. Recentemente.Cloudflare anunciou suporte para criação e implementação em sua plataformaremotamente MCP que marca o servidor MCP Um ponto de virada importante no aplicativo.

Cloudflare Para simplificar o controle remoto MCP O servidor foi desenvolvido para apresentar quatro recursos principais:

  1. workers-oauth-provider: a OAuth Provider library, que simplifica bastante o processo de autorização necessário para serviços remotos.
  2. McpAgent: integrado em Cloudflare Agents SDK Uma classe no MCP Os detalhes de teletransporte do
  3. mcp-remoteFerramenta de adaptador que permite que os aplicativos suportados somente por conexão local MCP O cliente também pode se comunicar com o servidor remoto MCP Interação com o servidor.
  4. AI playground à distância MCP cliente (computação)Interface de bate-papo on-line para se conectar e testar diretamente o controle remoto MCP com verificações de autenticação incorporadas.

Os desenvolvedores podem usar o Cloudflare O código de amostra e o botão de implementação fornecidos, em pouco tempo, colocam um MCP O servidor é implantado no ambiente de produção.


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

 

Em contraste com o uso anteriormente predominante de MCP são diferentes, o servidor remoto MCP O servidor é acessível publicamente. Os usuários simplesmente fazem login e concedem permissões por meio de um processo de autorização conhecido.MCP Clientes (por exemplo AI Agent) poderão acessar as ferramentas necessárias. Isso é considerado um grande avanço. Nos últimos meses, tem sido um desafio colocar a codificação Agent Conectar-se ao local MCP Os servidores deram aos desenvolvedores uma amostra inicial de seu potencial, e os servidores remotos MCP Por sua vez, espera-se estender um modelo de trabalho semelhante a um grupo mais amplo de usuários, incluindo cenários de aplicativos mais cotidianos para o consumidor. Essa não é apenas uma diferença na implementação técnica, mas pode ser o prenúncio de AI Agent Uma mudança fundamental no paradigma do aplicativo.

 

Do local ao remoto: uma etapa crítica para a MCP alcançar as massas

MCP está se tornando rapidamente um protocolo universal que permite grandes modelos de linguagem (LLMA capacidade de ir além do simples raciocínio (inference) e geração de aprimoramento de recuperação (RAG) que pode executar operações que exigem acesso a recursos externos (por exemplo, envio de e-mails, implantação de código, publicação de blogs etc.). Isso faz com que AI Agent (MCP Client) pode ser acessado por meio de um serviço externo (MCP servidor) para interagir com as ferramentas e os recursos fornecidos pelo servidor.

No entanto, até o momento, oMCP são, em sua maioria, limitados à execução local. Se você quiser o AI Agent aprovar (um projeto de lei ou inspeção etc.) MCP Para acessar uma ferramenta na Web, os desenvolvedores geralmente precisam configurar um servidor local em sua própria máquina. Isso significa que não é possível usar uma interface da Web ou um aplicativo móvel a partir do MCPTambém faltam mecanismos para permitir que usuários comuns se autentiquem e se autorizem.MCP O servidor não está realmente "on-line".

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

fora do local MCP O suporte conectado muda isso. Ele cria oportunidades para atingir uma gama mais ampla de usuários da Internet que têm menos probabilidade de ir a uma instalação local e executar aplicativos de desktop apenas para usar o MCP Servidor. Remoto MCP suporte, como se estivesse migrando de um software de desktop para o Web Transição de software. Os usuários esperam trabalhar continuamente em todos os dispositivos e que tudo funcione quando eles fizerem login. Local MCP É conveniente para os desenvolvedores, mas é a conexão remota que torna o MCP O elo crítico que falta para que os serviços alcancem todos os usuários da Internet. Obviamente, as conexões remotas também precisam levar em conta o possível impacto da latência da rede, que não é o mesmo que a latência local stdio A comunicação é diferente.

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

 

Fazendo com que a autenticação e a autorização funcionem "fora da caixa" na MCP

comandante-em-chefe (militar) MCP Fazer push de local para remoto é mais do que apenas mudar a camada de transporte (do stdio para fluido HTTP). Ao criar um controle remoto que exija acesso às informações da conta do usuário MCP o servidor, a autenticação (authentication) e autorizações (por exemploauthorization) tornou-se fundamental. É necessário que haja uma maneira de os usuários fazerem login e comprovarem sua identidade, e que haja uma maneira de os usuários controlarem AI Agent O que pode ser acessado ao usar o serviço.

MCP A especificação usa o OAuth 2.0 para resolver esse problema.OAuth é um protocolo padrão que permite que os usuários autorizem os aplicativos a acessar suas informações ou serviços sem compartilhar senhas. No MCP Cenário.MCP O próprio servidor reproduz OAuth Provider função. No entanto, a realização completa, por si só, está de acordo com a MCP formal OAuth O processo é bastante complexo e propenso a erros.Cloudflare Os programas oferecidos são projetados para resolver esse problema.

workers-oauth-providerBiblioteca do provedor OAuth 2.1 personalizado para Cloudflare Workers

Quando o desenvolvedor estiver no Cloudflare implantado em cima de MCP quando seu servidor Worker É possível fazer uso de workers-oauth-provider Esse novo TypeScript A biblioteca para atuar como um OAuth Provider. A biblioteca encapsula o Worker Código para API Pontos finais (incluindo, mas não se limitando a) MCP endpoints de servidor) adicionou uma camada de autorização.

MCP O servidor recebe as informações do usuário autenticado diretamente como um parâmetro e não precisa executar a validação ou o gerenciamento do token por conta própria. Ao mesmo tempo, o desenvolvedor ainda tem controle total sobre como o usuário é autenticado: na tela de login (UI) até o provedor de identidade a ser escolhido (por exemplo GoogleGitHub (ou crie seu próprio sistema).

completo MCP OAuth O processo é o seguinte:

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

Nesse processo, oMCP O servidor é um serviço upstream (por exemplo GitHubGoogle(usado para ênfase) OAuth Os clientes, por sua vez, são orientados a MCP Clientes (por exemplo AI Agent(usado para ênfase) OAuth Servidor (Provider). Os desenvolvedores podem usar qualquer processo de autenticação upstream, e o workers-oauth-provider seguro MCP Conformidade do servidor MCP Especificação dos requisitos de autorização para trabalhar com uma ampla variedade de aplicativos e sites de clientes. Isso inclui suporte para registro dinâmico de clientes (RFC 7591) e metadados do servidor de autorização (RFC 8414). O uso dessa biblioteca reduz significativamente a complexidade do desenvolvimento e melhora a segurança e a conformidade em comparação com a autoimplementação.

Interface OAuth simples e com capacidade de conexão

fazer uso de Cloudflare Workers construir (algo abstrato) MCP o desenvolvedor só precisa fornecer o OAuth Provider Exemplos de caminhos relacionados (autorização, tokens, pontos de extremidade de registro do cliente) e MCP Processador para servidor e lógica de autenticação (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",
});

Essa abstração facilita a inserção de lógica de autenticação personalizada. Por exemplo, um aplicativo que usa o GitHub como um provedor de identidade MCP que pode ser usado implementando o /callback responder cantando /authorize roteamento, integrando-se em menos de 100 linhas de código.

Por que os servidores MCP emitem seu próprio token?

No diagrama de autorização acima e MCP A parte de autorização da norma é digna de nota MCP O servidor enviará uma mensagem para o MCP O cliente emite seu próprio Tokenem vez de passar diretamente o serviço upstream do qual o Token.

Especificamente.Worker O token de acesso obtido do upstream (access token) Armazenamento criptografado (por exemplo, usando Workers KV) e, em seguida, gerar e emitir um novo e autônomo Token para o benefício de MCP Cliente.workers-oauth-provider A biblioteca lida com esse processo automaticamente, e o código do desenvolvedor não precisa tocar diretamente no token upstream de texto simples nem gerenciar o próprio armazenamento, evitando assim possíveis riscos de segurança.

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

À primeira vista, essa abordagem indireta parece mais complexa. Por que ela é tão projetada?

Ao emitir seu próprio Token(matemática) gêneroMCP Os servidores podem aplicar um controle de acesso mais refinado do que os provedores upstream. Mesmo quando emitidos para MCP no lado do cliente Token comprometido, e o invasor obtém acesso apenas a esse MCP Permissões limitadas concedidas explicitamente pelo servidor (por meio de seu tools), em vez de acesso total ao serviço upstream.

Por exemplo, suponha que um MCP O servidor solicita autorização do usuário para ler Gmail Permissões de correio eletrônico (usando gmail.readonly scope). No entanto, o servidor expõe o tool A funcionalidade é mais restrita, permitindo que apenas a notificação de reserva de viagem de um remetente específico seja lida para responder a perguntas como "Qual é o horário de check-out do meu hotel amanhã?" e assim por diante. Os desenvolvedores podem adicionar a função MCP Essa restrição é imposta no servidor. Se for emitida para o MCP no lado do cliente Token Roubado, como o Token Corresponde a MCP em vez do provedor upstream original (Google), o invasor não pode usá-lo para ler e-mails arbitrários e só pode chamar o MCP ferramentas específicas fornecidas pelo servidor.OWASP Para substituir o termo "over-agent" (Excessive Agency) é listado como um AI um dos principais riscos do aplicativo. Ao emitir seu próprio Token e a imposição de restrições.MCP O servidor pode restringir o acesso à ferramenta para fornecer apenas a funcionalidade exigida pelo cliente, seguindo o princípio do menor privilégio.

Outro exemplo, baseado no já mencionado GitHub você pode forçar apenas determinados usuários a acessar uma ferramenta. No exemplo a seguir, somente os usuários da lista branca (geelen) para ver e chamar o generateImage que usa a ferramenta Workers AI Siga as instruções para gerar uma imagem:

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

 

Introdução do McpAgent: compatível com o teletransporte atual e futuro

comandante-em-chefe (militar) MCP A próxima etapa para trazer a máquina local para fora é abrir a camada de transporte remoto. A camada de transporte MCP Os servidores geralmente são configurados com entradas e saídas padrão (stdio) para se comunicar, mas deixe o MCP possam ser chamados pela Internet, é necessário implementar um protocolo de teletransporte, que atualmente se baseia na especificação preliminar HTTP (usado em uma expressão nominal) Server-Sent Events (SSE).

Cloudflare em seu 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 void void McpAgent lida com a complexidade do teletransporte. Ela faz isso em segundo plano usando a função Durable Objects para manter uma conexão persistente, fazendo com que o MCP O cliente pode passar o SSE em direção a MCP O servidor envia a mensagem. O desenvolvedor não precisa escrever o código subjacente que lida com a transmissão ou a serialização. Uma solução minimalista MCP O servidor pode ser implementado com apenas uma dúzia de linhas 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) }],
}));
}
}

Vale a pena observar que, após as discussões da comunidadeMCP O teletransporte na especificação está sendo revisado com planos para usar o streamable HTTP (Streamable HTTP) substitui o atual HTTP+SSE Programa. Isso permitirá a integração com o MCP O servidor estabelece um sistema stateless, puro HTTP e, opcionalmente, atualizar para SSEO cliente pode enviar mensagens para diferentes pontos de extremidade, eliminando a complexidade de ter que enviar mensagens para diferentes pontos de extremidade.Cloudflare indicar McpAgent As classes evoluirão com as atualizações de especificações para dar suporte a novos Streamable HTTP garantindo que os desenvolvedores não precisem reescrever o código para se adaptar às mudanças nos métodos de transmissão.

Essa consideração da evolução futura do protocolo de transmissão é igualmente importante. Atualmente, a grande maioria dos MCP Exposição principal do servidor toolsBasicamente, são chamadas de procedimento remoto simples (RPC), que pode ser fornecida pela transmissão sem estado. Mas o mais complexo "man-in-the-loop" (human-in-the-loop) e Agent Cenários de interação que exigirão prompts responder cantando sampling et al. (e outros autores) MCP Suporte conceitual. Esses cenários que exigem comunicação bidirecional e em tempo real são difíceis de implementar de forma eficiente sem uma camada de transporte bidirecional. Nesse caso, aCloudflare Plataforma,Agents SDK responder cantando Durable Objects Todos com suporte nativo WebSocketsA capacidade de fornecer um recurso de comunicação full-duplex, bidirecional e em tempo real oferece a oportunidade de uma futura comunicação mais avançada. MCP Estabelecer as bases para os aplicativos.

 

Servidor MCP com estado e recursos de agente

existir Cloudflare uplink MCP Quando o servidor, cada MCP As sessões de cliente são todas controladas por um Durable Object Suporte (via Agents SDK). Isso significa que cada sessão pode gerenciar e manter seu próprio estado, e pode até mesmo ter seu próprio SQL Banco de dados.

Isso abre caminho para a criação de MCP O servidor abre a porta.MCP Os servidores não são mais apenas um local para aplicativos clientes e aplicativos externos API entre camadas de transformação sem estado que podem ser aplicativos com estado, como jogos, processos de checkout com carrinhos de compras, gráficos de conhecimento persistentes etc. No Cloudflare Para cima.MCP O potencial dos servidores vai muito além de atuar como REST API do front end.

Um exemplo simples de contador é usado para entender os princípios básicos de sua operação:

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 uma determinada sessão, os MCP O servidor receberá um número de tool Lembre-se do estado do contador entre as chamadas.

existir MCP Dentro do servidor, os desenvolvedores podem usar o Cloudflare Recursos completos da plataforma do desenvolvedor, como a habilitação de MCP O servidor inicia o navegador para navegação na Web, acionando WorkflowChamada AI Modelos, etc. Isso é um bom presságio para a MCP O ecossistema evoluirá para casos de uso mais avançados e inteligentes.

 

Conexão de um cliente MCP existente a um servidor remoto

Cloudflare Suporte antecipado para o controle remoto MCPMesmo na mídia convencional MCP Os aplicativos clientes geralmente oferecem suporte a aplicativos remotos e autenticados MCP Antes. Isso oferece aos desenvolvedores a oportunidade de estar um passo à frente.

No entanto, isso também representa um verdadeiro desafio: se ainda não houver suporte para o controle remoto, o MCP clientes, como os desenvolvedores podem testar e fazer com que os usuários usem os controles remotos que criaram MCP Servidores?

Cloudflare Duas novas ferramentas são fornecidas para combater isso:

  1. Workers AI Playground atualizaçãoInterface de bate-papo on-line: Essa interface de bate-papo on-line agora é um controle remoto totalmente funcional MCP Cliente que oferece suporte à conexão com qualquer MCP com um processo de autenticação incorporado. O desenvolvedor simplesmente insere o endereço URL(por exemplo https://remote-server.example.com/sse) e clique em Connect para testá-lo imediatamente sem a necessidade de instalar nenhum software localmente.

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

    Após clicar em Connect, o usuário passará pelo processo de autenticação (se configurado) e poderá conversar diretamente com o MCP Interação com a ferramenta do servidor.

  2. mcp-remote adaptador (dispositivo)Para aqueles que já apóiam MCP Os clientes que ainda não lidam com conexões remotas e autenticação (como o Claude Desktop talvez Cursor), você pode usar o mcp-remote. É uma npm pacote que atua como uma ponte entre clientes locais e servidores remotos. Ele permite que os desenvolvedores e usuários visualizem a interface com servidores remotos em ferramentas com as quais estão familiarizados. MCP experiência de interação com o servidor sem ter que esperar que o próprio cliente atualize seu suporte.

    Cloudflare Fornece informações sobre como incorporar mcp-remote junto com Claude DesktopCursorWindsurf epidêmico MCP Diretrizes para usar o cliente em conjunto com o cliente. Por exemplo Claude Desktop no arquivo de configuração, basta adicionar uma configuração semelhante à seguinte:

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

 

A era do MCP remoto está chegando

Protocolo de contexto de modelo remoto (Remote MCP) é, sem dúvida, o AI Agent é uma importante direção de desenvolvimento. Quando os aplicativos clientes oferecem amplo suporte a aplicativos remotos MCP quando sua base de usuários se expandirá dos desenvolvedores para um grupo muito maior de pessoas - que talvez nunca tenham ouvido falar do MCP O termo.

Para os provedores de serviços, a criação de serviços remotos MCP Um servidor é um servidor que integra seus próprios serviços em um sistema usado por milhões de usuários. AI O caminho crítico em assistentes e ferramentas. Há relatos de que muitas grandes empresas de Internet estão desenvolvendo ativamente MCP servidores e, ao mesmo tempo, faz com que você espere ansiosamente por aqueles que são conhecidos por seus Agent-firsteMCP-native para o nascimento de uma empresa emergente.

com base em Cloudflare fornece ferramentas e plataformas que os desenvolvedores podem usar agora para começar a criar sistemas remotos preparados para o futuro MCP Aplicativos. Isso não é apenas uma atualização da pilha de tecnologia, é uma atualização do AI Agent Uma importante exploração de como integrar serviços de Internet. À medida que o ecossistema amadurece, os serviços remotos MCP Ele promete gerar experiências de usuário mais inteligentes e personalizadas. Os desenvolvedores podem conferir o Documentação do desenvolvedor da Cloudflare Obtenha mais informações e comece a praticar.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " A Cloudflare adota o MCP remoto: levando os recursos do agente de IA para a Internet mais ampla
pt_BRPortuguês do Brasil