Cloudflare adopte le MCP à distance : étendre les capacités des agents d'intelligence artificielle à l'ensemble de l'Internet
en cours de construction AI
Applications et Agent
Le cercle des protocoles de contexte de modèle (Model Context Protocol
, MCP
) est en train de devenir un sujet brûlant. La plupart des discussions portent sur l'installation et l'exécution sur un ordinateur local de l'application MCP
Déploiement du serveur. Récemment.Cloudflare
a annoncé une aide à la construction et au déploiement sur sa plateformeà distance MCP
qui marque l'entrée en vigueur de la MCP
Un tournant important dans l'application.
Cloudflare
Pour simplifier l'accès à distance MCP
Le serveur est conçu pour présenter quatre capacités clés :
workers-oauth-provider
: aOAuth
qui simplifie considérablement le processus d'autorisation nécessaire pour les services à distance.McpAgent
: intégré dans le système d'information de l'UECloudflare Agents SDK
Une classe dans leMCP
Les détails de la téléportation de lamcp-remote
: un outil d'adaptation qui permet aux utilisateurs ayant une connexion locale seulement de se connecter à l'Internet.MCP
Le client peut également communiquer avec le serveur distantMCP
Interaction avec le serveur.AI playground
à distanceMCP
client (informatique): une interface de chat en ligne permet de se connecter directement et de tester des systèmes à distance.MCP
avec des contrôles d'authentification intégrés.
Les développeurs peuvent utiliser l'outil Cloudflare
L'exemple de code et le bouton de déploiement fournis permettent, en un rien de temps, de placer un MCP
Le serveur est déployé dans l'environnement de production.
https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-server
Contrairement à ce qui se passait auparavant avec les MCP
Le serveur est différent, et le serveur distant MCP
Le serveur est accessible au public. Les utilisateurs se connectent simplement et accordent des permissions par le biais d'un processus d'autorisation familier.MCP
Les clients (par exemple AI Agent
) pourront accéder aux outils nécessaires. Il s'agit là d'un grand pas en avant. Au cours des derniers mois, il a été difficile de mettre en place les outils de codage et de gestion de l'information. Agent
Connexion au réseau local MCP
ont donné aux développeurs un premier aperçu de leur potentiel, et les serveurs à distance de la MCP
À son tour, il devrait permettre d'étendre un modèle de travail similaire à un groupe plus large d'utilisateurs, y compris à des scénarios d'application plus quotidiens pour le grand public. Il ne s'agit pas seulement d'une différence de mise en œuvre technique, mais d'un signe avant-coureur de l'évolution des technologies de l'information et de la communication. AI Agent
Un changement fondamental dans le paradigme de l'application.
Du local au distant : une étape cruciale pour que MCP atteigne le plus grand nombre
MCP
devient rapidement un protocole universel qui permet d'utiliser de grands modèles linguistiques (LLM
La capacité à aller au-delà du simple raisonnement (inference
) et la génération d'amélioration de la recherche (RAG
) qui peut effectuer des opérations nécessitant un accès à des ressources externes (par exemple, envoyer des courriels, déployer du code, publier des blogs, etc.) ). AI Agent
(MCP
) est accessible par l'intermédiaire d'un service externe (MCP
) pour interagir avec les outils et les ressources fournis par le serveur.
Toutefois, à ce jour, laMCP
sont principalement limitées à un fonctionnement local. Si vous souhaitez que l'application AI Agent
faire passer (un projet de loi, une inspection, etc.) MCP
Pour accéder à un outil sur le web, les développeurs doivent généralement installer un serveur local sur leur propre machine. Cela signifie qu'il n'est pas possible d'utiliser une interface web ou une application mobile à partir de l'ordinateur de l'utilisateur. MCP
Il manque également des mécanismes permettant aux utilisateurs ordinaires de s'authentifier et de s'autoriser.MCP
Le serveur n'est pas réellement "en ligne".

hors site MCP
Le support connecté change la donne. Il permet d'atteindre un plus grand nombre d'utilisateurs d'Internet qui sont moins susceptibles de se rendre sur une installation locale et d'exécuter des applications de bureau uniquement pour utiliser le site Web de l'Union européenne. MCP
Serveur. A distance MCP
comme s'il s'agissait de passer d'un logiciel de bureau à un logiciel de bureau. Web
Transition des logiciels. Les utilisateurs s'attendent à travailler en continu sur tous les appareils et à ce que tout fonctionne lorsqu'ils se connectent. Local MCP
C'est pratique pour les développeurs, mais c'est la connexion à distance qui fait la différence. MCP
Le chaînon manquant essentiel pour que les services atteignent tous les utilisateurs de l'internet. Bien entendu, les connexions à distance doivent également tenir compte de l'impact possible de la latence du réseau, qui diffère de la latence locale. stdio
La communication est différente.

Faire en sorte que l'authentification et l'autorisation fonctionnent "out of the box" dans MCP
commandant en chef (militaire) MCP
Le passage du local au distant ne se résume pas à un simple changement de couche de transport (de la couche stdio
à l'écoulement HTTP
). Lors de la création d'une application à distance nécessitant l'accès à des informations de compte d'utilisateur MCP
le serveur d'authentification (authentication
) et les autorisations (par exempleauthorization
) est devenu essentiel. Il faut que les utilisateurs puissent se connecter et prouver leur identité, et qu'ils aient la possibilité de contrôler l'accès à l'information. AI Agent
Ce à quoi on peut accéder en utilisant le service.
MCP
La spécification utilise le OAuth 2.0
pour résoudre ce problème.OAuth
est un protocole standard qui permet aux utilisateurs d'autoriser des applications à accéder à leurs informations ou services sans partager leurs mots de passe. Dans le cadre de la MCP
Scénario.MCP
Le serveur lui-même joue OAuth Provider
rôle. Toutefois, la réalisation complète en elle-même est conforme à l'objectif de l'UE en matière d'environnement. MCP
formel OAuth
Le processus est assez complexe et sujet aux erreurs.Cloudflare
Les programmes proposés sont conçus pour répondre à ce problème.
workers-oauth-provider
Bibliothèque de fournisseur OAuth 2.1 personnalisée pour les travailleurs de Cloudflare
Lorsque le développeur se trouve dans le Cloudflare
se déploie au-dessus de MCP
lorsque son Worker
Il est possible d'utiliser workers-oauth-provider
Cette nouvelle TypeScript
Bibliothèque pour agir en tant que OAuth Provider
. La bibliothèque encapsule les Worker
Code pour API
Critères d'évaluation (y compris, mais sans s'y limiter) MCP
) a ajouté une couche d'autorisation.
MCP
Le serveur reçoit les informations de l'utilisateur authentifié directement en tant que paramètre et n'a pas besoin d'effectuer lui-même la validation ou la gestion des jetons. Dans le même temps, le développeur conserve un contrôle total sur la manière dont l'utilisateur est authentifié : à partir de l'écran de connexion (UI
), le fournisseur d'identité à choisir (par ex. Google
, GitHub
(ou créez votre propre système).
complet MCP OAuth
La procédure est la suivante :

Dans ce processus, leMCP
Le serveur est à la fois un service en amont (par ex. GitHub
, Google
(souligné par l'auteur) OAuth
Les clients, quant à eux, sont orientés vers MCP
Les clients (par exemple AI Agent
(souligné par l'auteur) OAuth
Serveur (Provider
). Les développeurs peuvent utiliser n'importe quel processus d'authentification en amont, et l'option workers-oauth-provider
sécurisé MCP
Conformité des serveurs MCP
Spécification des exigences en matière d'autorisation pour travailler avec un large éventail d'applications clients et de sites web. Cela inclut la prise en charge de l'enregistrement dynamique des clients (RFC 7591
) et les métadonnées du serveur d'autorisation (RFC 8414
). L'utilisation de cette bibliothèque réduit considérablement la complexité du développement et améliore la sécurité et la conformité par rapport à l'auto-implémentation.
Interface OAuth simple et enfichable
utiliser Cloudflare Workers
construire (qqch abstrait) MCP
le développeur n'a qu'à fournir le OAuth Provider
Exemples de chemins connexes (autorisation, jetons, points finaux d'enregistrement du client), et MCP
Processeur pour le serveur et la logique d'authentification (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",
});
Cette abstraction facilite l'insertion d'une logique d'authentification personnalisée. Par exemple, une application qui utilise la fonction GitHub
en tant que fournisseur d'identité MCP
qui peut être utilisé en mettant en œuvre la méthode /callback
répondre en chantant /authorize
l'intégration en moins de 100 lignes de code.
Pourquoi les serveurs MCP émettent-ils leur propre jeton ?
Dans le schéma d'autorisation ci-dessus et MCP
La partie de la norme relative à l'autorisation mérite d'être soulignée MCP
Le serveur enverra un message au MCP
Le client émet ses propres Token
au lieu de transmettre directement le service en amont à partir duquel le Token
.
En particulier.Worker
Le jeton d'accès obtenu en amont (access token
) Stockage crypté (par exemple, à l'aide de Workers KV
), puis de générer et d'émettre un nouveau document autonome, le Token
au profit de MCP
Client.workers-oauth-provider
La bibliothèque gère ce processus automatiquement, et le code du développeur n'a pas besoin de toucher directement le jeton en amont en texte clair ni de gérer le stockage lui-même, ce qui permet d'éviter les risques de sécurité potentiels.
// 调用 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)
À première vue, cette approche indirecte semble plus complexe. Pourquoi est-elle ainsi conçue ?
En émettant ses propres Token
(math.) genreMCP
Les serveurs peuvent appliquer un contrôle d'accès plus fin que les fournisseurs en amont. Même lorsqu'ils sont délivrés à des MCP
côté client Token
compromis, et l'attaquant obtient l'accès à cette seule MCP
Autorisations limitées explicitement accordées par le serveur (par l'intermédiaire de la fonction tools
), plutôt qu'un accès complet au service en amont.
Par exemple, supposons qu'un MCP
Le serveur demande à l'utilisateur l'autorisation de lire Gmail
Autorisations pour le courrier (en utilisant gmail.readonly scope
). Cependant, le serveur expose le tool
La fonctionnalité est plus restreinte, puisqu'elle permet de lire uniquement la notification de réservation de voyage d'un expéditeur spécifique afin de répondre à des questions telles que "Quelle est l'heure de départ de mon hôtel demain ? etc. Les développeurs peuvent ajouter la fonction MCP
Cette contrainte est appliquée par le serveur. Si elle est émise à l'intention du MCP
côté client Token
Volé, comme le Token
Correspond à MCP
plutôt que le fournisseur initial en amont (Google
), l'attaquant ne peut pas l'utiliser pour lire des courriels arbitraires et ne peut qu'appeler la fonction MCP
les outils spécifiques fournis par le serveur.OWASP
Pour remplacer le terme "sur-agent" (Excessive Agency
) est répertorié comme construit AI
l'un des principaux risques de l'application. En émettant ses propres Token
et l'application de mesures de restriction.MCP
Le serveur peut restreindre l'accès à l'outil pour ne fournir que les fonctionnalités requises par le client, selon le principe du moindre privilège.
Un autre exemple, basé sur le GitHub
vous pouvez forcer certains utilisateurs à accéder à un outil. Dans l'exemple suivant, seuls les utilisateurs figurant sur la liste blanche (geelen
) afin de voir et d'appeler le generateImage
qui utilise l'outil Workers AI
Suivez les instructions pour générer une image :
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' }],
}
}
)
}
}
}
Introduction de McpAgent : compatible avec la téléportation actuelle et future
commandant en chef (militaire) MCP
L'étape suivante pour faire sortir la machine locale consiste à ouvrir la couche de transport à distance. La couche de transport MCP
Les serveurs sont généralement configurés avec des entrées et sorties standard (stdio
) pour communiquer, mais laisser le MCP
peuvent être invoqués sur l'internet, il est nécessaire de mettre en œuvre un protocole de téléportation, qui est actuellement basé sur le projet de spécification HTTP
(utilisé comme expression nominale) Server-Sent Events (SSE)
.
Cloudflare
dans son Agents SDK
vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide vide McpAgent
gère la complexité de la téléportation. Elle le fait en arrière-plan en utilisant la fonction Durable Objects
pour maintenir une connexion persistante, ce qui rend le MCP
Le client peut transmettre le SSE
vers MCP
Le serveur envoie le message. Le développeur ne doit pas écrire le code sous-jacent qui gère la transmission ou la sérialisation. Un système minimaliste MCP
Le serveur peut être mis en œuvre avec seulement une douzaine de lignes de code :
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) }],
}));
}
}
Il convient de noter qu'à la suite de discussions au sein de la communautéMCP
Le téléport dans le cahier des charges est en cours de révision et il est prévu d'utiliser le système "streamable". HTTP
(Streamable HTTP
) remplace l'actuel HTTP+SSE
Le programme. Cela permettra d'établir un partenariat avec l MCP
Le serveur établit des connexions sans état, pures HTTP
et, éventuellement, de passer à la version SSE
Le client peut envoyer des messages à différents points d'extrémité, tout en éliminant la complexité liée à l'envoi de messages à différents points d'extrémité.Cloudflare
indiquer McpAgent
Les classes évolueront en fonction des mises à jour des spécifications afin de prendre en charge les nouvelles Streamable HTTP
ce qui évite aux développeurs d'avoir à réécrire le code pour s'adapter aux changements des méthodes de transmission.
La prise en compte de l'évolution future des protocoles de transmission est tout aussi importante. Actuellement, la grande majorité des MCP
Exposition principale du serveur tools
Il s'agit essentiellement de simples appels de procédure à distance (RPC
), qui peut être assurée par une transmission sans état. Mais le système plus complexe de "l'homme dans la boucle" (human-in-the-loop
) et Agent
Scénarios d'interaction qui nécessiteront prompts
répondre en chantant sampling
et al. (et autres auteurs) MCP
Soutien conceptuel. Ces scénarios nécessitant une communication bidirectionnelle en temps réel sont difficiles à mettre en œuvre efficacement sans une couche de transport bidirectionnelle. D'ici là, la couche de transportCloudflare
Plate-forme,Agents SDK
répondre en chantant Durable Objects
Tous les produits sont pris en charge en mode natif WebSockets
La capacité de fournir une communication en temps réel, bidirectionnelle et en duplex intégral offre la possibilité de mettre en place des systèmes de communication plus avancés dans l'avenir. MCP
Préparer le terrain pour les applications.
Serveur MCP avec état et fonctions d'agent
existent Cloudflare
liaison montante MCP
Lorsque le serveur, chaque MCP
Les sessions des clients sont toutes contrôlées par un Durable Object
Soutien (via Agents SDK
). Cela signifie que chaque session peut gérer et maintenir son propre état, et peut même avoir son propre SQL
Base de données.
Cela ouvre la voie à l'élaboration d'un système d'information à base d'états (stateful). MCP
Le serveur ouvre la porte.MCP
Les serveurs ne sont plus seulement le lieu où sont installées les applications clients et les applications externes. API
des couches de transition sans état entre elles, qui peuvent elles-mêmes être des applications avec état - par exemple, des jeux, des processus d'encaissement avec des paniers d'achat, des graphes de connaissances persistants, etc. Dans le Cloudflare
En haut.MCP
Le potentiel des serveurs va bien au-delà de leur rôle de REST API
de l'extrémité avant.
Un exemple simple de compteur est utilisé pour comprendre les principes de base de son fonctionnement :
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 });
}
}
Pour une session donnée, les MCP
Le serveur prendra un certain nombre de tool
Se souvenir de l'état du compteur entre les appels.
existent MCP
À l'intérieur du serveur, les développeurs peuvent utiliser la fonction Cloudflare
Les capacités complètes de la plate-forme de développement, telles que MCP
Le serveur démarre le navigateur pour la navigation sur le web, ce qui déclenche l'opération suivante Workflow
Appeler AI
Modèles, etc. C'est de bon augure pour la MCP
L'écosystème évoluera vers des cas d'utilisation plus avancés et plus intelligents.
Connexion d'un client MCP existant à un serveur distant
Cloudflare
Soutien précoce à la télémédecine MCP
Même dans le courant dominant MCP
Les applications clientes prennent généralement en charge les MCP
Avant. Cela permet aux développeurs d'avoir une longueur d'avance.
Mais cela pose également un véritable défi : s'il n'y a pas encore de support pour l'utilisation à distance de l'Internet, il est possible d'utiliser l'Internet à distance. MCP
comment les développeurs peuvent tester et faire utiliser les télécommandes qu'ils construisent MCP
Les serveurs ?
Cloudflare
Deux nouveaux outils sont proposés pour y remédier :
Workers AI Playground
mise à jourL'interface de chat en ligne est désormais une interface à distance entièrement fonctionnelle.MCP
Client qui permet de se connecter à n'importe quelMCP
avec un processus d'authentification intégré. Le développeur saisit simplement l'adresseURL
(par exemplehttps://remote-server.example.com/sse
) et cliquez sur Connecter pour le tester immédiatement sans avoir à installer de logiciel localement.Après avoir cliqué sur Connect, l'utilisateur passera par le processus d'authentification (s'il a été mis en place) et pourra ensuite discuter directement avec le
MCP
Interaction avec l'outil serveur.mcp-remote
adaptateur (dispositif)Pour ceux qui soutiennent déjàMCP
Les clients qui ne gèrent pas encore les connexions à distance et l'authentification (tels que le programmeClaude Desktop
peut-êtreCursor
), vous pouvez utiliser la fonctionmcp-remote
. Il s'agit d'unnpm
qui sert de pont entre les clients locaux et les serveurs distants. Il permet aux développeurs et aux utilisateurs de prévisualiser l'interface avec les serveurs distants.MCP
sans avoir à attendre que le client lui-même mette à jour son support.Cloudflare
Fournit des informations sur la manière de constituer une sociétémcp-remote
avecClaude Desktop
,Cursor
,Windsurf
épidémieMCP
Lignes directrices pour l'utilisation du client en conjonction avec le client. Par exempleClaude Desktop
dans le fichier de configuration, il suffit d'ajouter une configuration similaire à la suivante :{ "mcpServers": { "remote-example": { "command": "npx", "args": [ "mcp-remote", "https://remote-server.example.com/sse" // 替换为你的远程服务器 URL ] } } }
L'ère du MCP à distance est en marche
Protocole de contexte de modèle à distance (Remote MCP
) est sans aucun doute AI Agent
est un axe de développement important. Lorsque les applications clientes prendront largement en charge les MCP
lorsque sa base d'utilisateurs s'étendra des développeurs à un groupe beaucoup plus large de personnes - qui n'auront peut-être même jamais entendu parler de l'application MCP
Le terme.
Pour les prestataires de services, la mise en place de MCP
Un serveur est un serveur qui intègre ses propres services dans un système utilisé par des millions d'utilisateurs. AI
Le chemin critique des assistants et des outils. De nombreuses grandes entreprises du secteur de l'Internet seraient en train de construire activement des assistants et des outils. MCP
et en même temps, cela vous fait attendre avec impatience ceux qui sont connus pour leurs Agent-first
,MCP-native
La création d'une entreprise émergente en est le résultat.
sur la base de Cloudflare
fournit des outils et des plates-formes que les développeurs peuvent utiliser dès maintenant pour commencer à construire des systèmes de télétravail pérennes. MCP
Les applications. Il ne s'agit pas seulement d'une mise à niveau de la pile technologique, mais aussi d'une mise à niveau de l'architecture de l'entreprise. AI Agent
Une exploration importante de la manière d'intégrer les services Internet. Au fur et à mesure que l'écosystème se développe, les MCP
Il promet de créer des expériences utilisateur plus intelligentes et plus personnalisées. Les développeurs peuvent consulter la Documentation pour les développeurs de Cloudflare Obtenez plus d'informations et commencez à vous entraîner.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...