ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

dcode 如何配置 MCP 服务器并通过 dcode mcp login 完成远程 OAuth 认证?

dcode 如何配置 MCP 服务器并通过 dcode mcp login 完成远程 OAuth 认证? dcode 如何配置 MCP 服务器并通过 dcode mcp login 完成远程 OAuth 认证【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents在 dcodedeepagents 仓库libs/code中的终端编码 agent里接入一个需要 OAuth 认证的远程 MCP 服务器例如 Notion 的https://mcp.notion.com/mcp时需要完成两件事在 MCP 配置文件里正确声明该服务器以及运行dcode mcp login server完成远程 OAuth 握手。本文给出这条从配置到登录成功、再到工具可用的完整路径以及登录失败时的排查依据。前提是已安装 dcode仓库提供的安装方式为curl -LsSf https://langch.in/dcode | bash dcode编写 MCP 配置文件MCP 文档是一个包含mcpServers对象的 JSON。每个服务器条目可声明type或transport配置了url而省略 transport 时按http处理否则按stdio处理。dcode 接受stdio、http、sse并把streamable_http、streamable-http归一化为http。远程服务器必须有urlstdio 服务器必须有commandargs、env和远程headers均受支持。dcode CLI 帮助界面内置的远程 OAuth 服务器示例如下来自 ui.py 中的dcode mcp login --help输出可直接作为模板把服务器名和 URL 换成你的目标{ mcpServers: { notion: { transport: http, url: https://mcp.notion.com/mcp, auth: oauth } } }字段规则要点详见 MCP Integration 与 mcp_config.pyauth: oauth是远程认证选项不能与静态Authorizationheader 同时使用且静态Authorizationheader 的优先级高于已存储的 OAuth 凭据配置了静态 header 时不会走 OAuth。command、url、args、env、headers字段中支持${VAR}与${VAR:-default}环境变量引用。变量未设置且无默认值、或${...}写法不合法时是报错而不是静默产生一个错误的端点或密钥。allowedTools与disabledTools是互斥的非空 glob 列表用于过滤该服务器暴露的工具。配置文件放在哪里三个自动发现路径dcode 按以下顺序从低到高优先级自动发现配置文件dcode mcp config会打印这些路径并标记哪些在磁盘上存在来自 mcp_tools.py 的MCP_CONFIG_DISCOVERY_PATHS与 client/commands/mcp.py 的run_mcp_config用户级当前 profile 的~/.deepagents/.mcp.json项目子目录project-root/.deepagents/.mcp.json项目根project-root/.mcp.json。其中project-root定义为最近的含.git的祖先目录否则就是当前目录。任何子命令上都可用--mcp-config path显式指定一个文件绕过发现机制dcode mcp login server同样支持该参数dcode mcp config # 查看发现路径 dcode mcp login linear --mcp-config ./mcp-config.json两个信任边界需要注意它们决定你的服务器定义能否参与登录和加载用户级配置profile 下那个.mcp.json始终被视为可信来源项目级.mcp.json是不受信的除非本次调用设置了--trust-project-mcp或该服务器在用户级信任策略中有匹配项目根与服务器指纹的批准否则会被跳过。这样做的目的是防止克隆下来的仓库里的headers等字段在 OAuth 握手时外带本地机密。所以最稳妥的主路径是把需要 OAuth 的远程服务器写在用户级~/.deepagents/.mcp.json或者用--mcp-config指向自己维护的文件。执行 dcode mcp login 完成 OAuth 认证dcode mcp login不带参数时列出所有已配置auth: oauth但尚无本地 token 的服务器带服务器名时对该服务器执行登录流程命令定义见 client/commands/mcp.pydcode mcp login # 列出需要登录的 OAuth 服务器 dcode mcp login notion # 对 notion 这个服务器执行 OAuth 登录登录流程的行为依据 mcp_auth.py 的login()与 MCP Integration只支持远程http/sse传输对 stdio 服务器会直接报错错误信息形如 “OAuth login is only valid for http/sse”。认证采用 RFC 9728 的发现式登录因此即使配置里没写auth: oauth只要远端以 401 Bearer protected-resource challenge 应答dcode 也会把该服务器标记为unauthenticated并提示dcode mcp login server登录流程同样适用。有浏览器可用时通过webbrowser打开授权页完成 loopback 回调无浏览器的环境headless/SSH会退化为打印授权 URL 由你手动完成无法打开浏览器时流程会以“No browser is available to complete the OAuth flow.”失败。成功后 token 独立于配置存放位于所选 profile 状态目录下的mcp-tokens子目录文件名由校验过的服务器名加上解析后 URL 的哈希组成同名的不同端点因此不会互相覆盖。重新授权失败时不会丢弃之前存储的有效凭据。退出码与失败信息dcode mcp login的退出码约定来自 client/commands/mcp.py 的 docstring0成功或列出登录状态时所有已配置服务器状态都确定“部分服务器需要登录”只是提示不算失败1配置或登录失败包括未知服务器、无效服务器定义、token 存储目录不可写、环境变量插值失败等2没有找到任何 MCP 配置文件。几条文档中明确给出的失败处理路径提示cannot write to the MCP tokens store时按提示检查 token 存储目录权限后重跑dcode mcp login server存储的 token 文件损坏时mcp_auth的报错会指向删除该文件并重新登录TUI 内为/mcp login server终端内为dcode mcp login server涉及环境变量插值的配置失败详情会被打码避免把解析后的密钥打印到终端。验证登录结果并让工具生效验证分三层都有文档依据登录命令本身login()成功后输出Logged in to MCP server server设置DEBUG时还会追加 token 保存路径。这是 CLI 层面的成功条件。列表命令再跑一次dcode mcp login刚登录的服务器不再出现在 “MCP servers needing login” 列表中全部正常时输出No MCP servers need login.退出码为 0。dcode 会话内登录只写 token不会自动重载当前会话的工具。启动 dcode 后未认证的服务器状态为unauthenticated含义是“需要先完成 OAuth 登录才能加载工具”见 mcp_tools.py 的状态定义在 TUI 中用/mcp打开查看器可以看到服务器状态/mcp login server可发起登录登录后运行/mcp reconnect加载工具app.py 中的提示语为 “Authenticated — run/mcp reconnectto load tools.” / “Run/mcp reconnectwhen ready to load the new tools.”。工具加载后MCP 工具在 dcode 中以{server_name}_{tool_name}的形式命名。另外注意 operations/security.md 与 MCP Integration 的边界信任决定“定义能否连接”OAuth 决定“允许的远程连接如何认证”——token 不会替你批准项目级配置信任批准也不会替端点完成认证两者不能互相替代。不适用与限制stdio 服务器不能用dcode mcp login走 OAuth它只适用于远程http/sse目标项目级.mcp.json中的服务器未通过信任检查时既不会出现在dcode mcp login的扫描里也不会被登录dcode 与 Talonlibs/talon是两套独立的 MCP 集成配置审批、凭据文件和运行时会话互不共享Talon 的deepagents-talon mcp login与本文的dcode mcp login不通用--no-mcp会整体禁用 MCP 加载--mcp-config优先级最高并在普通会话中做预校验这两项开关见 Run a dcode Session。完成登录后下一步就是在 dcode 会话里用/mcp reconnect确认目标服务器从unauthenticated变为已加载随后直接调用其工具验证功能是否可用。【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表