首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

将每个应用程序连接到其他每个应用程序

2026-09-05 1 阅读 约9分钟阅读 Chidiebere229
分享:
字号:
我一直很羡慕 Zapier 丰富的连接器库。我希望我们的应用程序——Val Town,一个氛围编码平台——可以一键连接到每个应用程序。 zapier.com/apps 这是一个经典的 n² 问题,将每个应用程序连接到每个其他应用程序。我一直梦想着能够有某种协议,任何应用程序都可以通过该协议动态地验证和授权任何其他应用程序。 OAuth 是该协议吗?几乎!注册 OAuth 客户端 核心问题仍然存在:每个应用程序仍然需要注册为每个其他应用程序的 OAuth 客户端。注册 OAuth 客户端最多只需在开发人员门户上单击 5 分钟。但你永远不知道。这可能意味着填写一些表格、制作演示视频、签署文件,或者,最恐怖的是,进行视频通话。这是一个临时的、手动的令人头痛的问题。我们都必须为用户想要连接的每个应用程序执行此操作。但我们有理由充满希望! Anthropic 和 OpenAI 看到了这个问题的出现。他们需要一种方法来连接到所有客户的应用程序,但他们不想获得所有这些 OAuth 客户端。因此,他们在 MCP 规范中加入了一个鲜为人知的 OAuth 扩展:动态客户端注册 (DCR)。动态客户端注册 (DCR) DCR 可自动解决客户端注册问题。您的应用程序无需人工手动获取 OAuth 客户端,而是动态配置一个 OAuth 客户端,然后立即启动 OAuth 流到该应用程序(它以前从未听说过)。这就是梦想!在我的初创公司 Val Town 中,我们在构建 MCP 服务器/插件时了解了 DCR,这使您能够从 Claude 和 ChatGPT 通过 OAuth 进入 Val Town。但好处并不仅仅限于 Claude 和 ChatGPT。任何应用程序都可以向 Val Town 动态注册 OAuth 客户端,并连接到其用户的 Val Town 帐户。使用 DCR 登录 例如,在此原语之上,我们创建了 std/oauth ,这是一个中间件库,它通过 2 行代码将“使用 Val Town 登录”OAuth 添加到您的 Val Town 应用程序中。这实际上是一个完整的应用程序: import { Hono } from "https://esm.sh/hono" ;从“https://esm.town/v/std/oauth/middleware.ts”导入{ getOAuthUserData, oauthMiddleware, } ; const app = new Hono();应用程序。 get ( "/" , async (c) => { const session = wait getOAuthUserData (c.req . raw ); return c.html ( < html > < body > {session?.user ? < p > 以 {session.user.username} 登录 : < a href = "/auth/login"> 登录 } , ); });导出默认的 oauthMiddleware (app.fetch );试试下面的方法:没有额外的设置步骤。如果您在 Val Town 上点击“remix”,您将获得该应用程序的副本,并且“使用 Val Town 登录”身份验证将立即生效。当第一个用户登录时,您的应用程序的 Val Town OAuth 客户端将在幕后创建。需要明确的是,这里没有魔法,因为 Val Town 运行授权服务器和应用程序的基础设施。该库可以适应在任何基础设施上运行,并适用于任何支持 DCR 的身份验证提供程序。情况会变得更好。 DCR 虽然解决了大多数 OAuth 客户端注册问题,但实施起来可能有些痛苦。 (MCP 团队的 Paul Carleton 在此解释了更多信息。)输入客户端 ID 元数据文档 (CIMD)。 CIMD 意味着您根本不必预先注册 OAuth 客户端。相反,您可以在 URL 上自行托管 OAuth 客户端数据,然后立即启动 OAuth 流程。例如,Notion 的 CIMD 链接是 https://mcp.notion.com/.well-known/oauth-authorization-server ,它返回: { "issuer" : "https://mcp.notion.com" , "authorization_endpoint" : "https://mcp.notion.com/authorize" , "token_endpoint" : "https://mcp.notion.com/token" , "registration_endpoint" :“https://mcp.notion.com/register”、“scopes_supported”:[“default”]、“response_types_supported”:[“code”]、“response_modes_supported”:[“query”]、“grant_types_supported”:[“authorization_code”、“refresh_token”、 "urn:ietf:params:oauth:grant-type:jwt-bearer" ] 、 "authorization_grant_profiles_supported" : [ "urn:ietf:params:oauth:grant-profile:id-jag" ] 、 "token_endpoint_auth_methods_supported" : [ "client_secret_basic" 、 "client_secret_post" 、 "none" ]、“replication_endpoint”:“https://mcp.notion.com/token”、“code_challenge_methods_supported”:[“plain”、“S256”]、“client_id_metadata_document_supported”:true、“introspection_endpoint”:“https://mcp.notion.com/introspect”、 "introspection_endpoint_auth_methods_supported" : [ "client_secret_basic" , "client_secret_post" , "none" ] } 任何支持 CIMD 的应用程序都可以立即使用 Notion 启动 OAuth 流程 – 每当用户请求时 – 即使该应用程序之前从未听说过 Notion。现在总共有数千个应用程序支持 DCR,数百个应用程序支持 CIMD。我不记得什么时候新的软件协议能够如此迅速地传播。在我们急于制作可与 ChatGPT 和 Claude 一起使用的 MCP 服务器的过程中,我们无意中也使我们的应用程序可以相互连接。所以我把它发挥到了逻辑的极端,并用 3,613 个连接构建了这个实时演示应用程序
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱