MCP
MCP(Model Context Protocol)让 Dline 通过 MCP 服务器使用外部工具、资源和提示词。服务器可以是本机进程(STDIO),也可以是远程端点(Streamable HTTP 或 SSE)。
打开 MCP 设置
Section titled “打开 MCP 设置”点击 Dline 面板标题栏中的 MCP Servers 按钮。视图包含三个标签:
- Marketplace:浏览在线目录中的服务器。点击 Install 后,Dline 会启动一个任务,协助你完成安装和配置。
- Remote Servers:添加远程服务器。
- Configure:管理已配置的服务器,或编辑配置文件。
也可以点击输入框下方工具栏中的服务器图标(悬停提示为 Manage MCP Servers),在弹出的 MCP Servers 列表中用开关快速启用或停用服务器;点击列表右上角的齿轮图标会直接打开 Configure 标签。


添加远程服务器
Section titled “添加远程服务器”在 Remote Servers 标签中:
- 在 Server Name 中填写唯一的名称。
- 在 Server URL 中填写完整的 URL。
- 在 Transport Type 中选择 Streamable HTTP(默认)或 SSE (Legacy)。
- 点击 Add Server。
这个表单不能填写请求头。如需认证头,请改为编辑配置文件。
编辑全局配置文件
Section titled “编辑全局配置文件”在 Configure 标签中点击 Configure MCP Servers,Dline 会打开 <documents-root>/settings/mcp_settings.json。<documents-root> 默认是操作系统“文档”目录下的 dline 文件夹;设置 DLINE_DOCS_DIR 后,以该变量的值作为根目录。
本地服务器(STDIO)
Section titled “本地服务器(STDIO)”{ "mcpServers": { "local-server": { "command": "node", "args": ["/path/to/server.js"], "env": { "API_KEY": "${env:MY_API_KEY}" }, "timeout": 60, "disabled": false } }}{ "mcpServers": { "remote-server": { "type": "streamableHttp", "url": "https://example.com/mcp", "headers": { "Authorization": "Bearer ${env:MCP_TOKEN}" } } }}| 字段 | 说明 |
|---|---|
command、args、env、cwd | STDIO 服务器的启动命令、参数、环境变量和工作目录 |
url、headers | 远程服务器的地址和请求头 |
type | stdio、sse 或 streamableHttp。只有 url 而没有 type 时按 sse 处理,建议显式填写 |
timeout | 请求超时,单位为秒,默认 60,最小 1 |
disabled | 为 true 时禁用该服务器 |
autoApprove | 允许自动批准的工具名列表 |
${env:VAR} 在每次连接服务器时解析:先使用为该服务器保存的值,再使用 VS Code 进程的环境变量。两者都没有时,Dline 会弹出掩码输入框请你填写,并只为该服务器保存这个值;保存位置是 Dline 数据目录下仅限当前用户访问的 secret 存储,而不是配置文件。只有在当前窗口打开过 Dline 侧边栏或 Dline 面板后才会弹出输入框;在此之前该服务器保持等待,其他服务器照常连接。取消或提交空值时,该服务器不会连接并显示错误,重启服务器即可再次填写。在 MCP 设置页的服务器行上点击钥匙图标(Clear Saved Variables),会清除为该服务器保存的值并立即重新连接。
工作区服务器
Section titled “工作区服务器”项目可以在 <workspace>/.agents/mcp/ 下放置 .yaml、.yml 或 .json 描述文件,每个文件描述一个服务器,只在该工作区生效。子目录同样会被扫描。文件名不参与识别,服务器以 name 区分。
<workspace>/└── .agents/ └── mcp/ ├── project-db.yml └── remote-docs.json本地服务器(STDIO)
Section titled “本地服务器(STDIO)”.agents/mcp/project-db.yml:
name: project-dbdescription: Query the project databasetype: stdiocommand: nodeargs: ["${workspaceFolder}/tools/db-mcp.js"]env: DB_URL: "${env:PROJECT_DB_URL}"timeout: 120.agents/mcp/remote-docs.json:
{ "name": "remote-docs", "description": "Search the team documentation service", "type": "streamableHttp", "url": "https://docs.example.com/mcp", "headers": { "Authorization": "Bearer ${env:DOCS_MCP_TOKEN}" }}描述文件规则
Section titled “描述文件规则”- 必须提供
name,且在同一工作区内唯一。两个文件使用同一个name时,按路径排序靠前的文件生效,另一个被忽略并记录警告。description可选。其他字段与全局配置相同,但不需要外层的mcpServers。 ${workspaceFolder}会被替换为工作区根目录。stdio类型未指定cwd时,默认以工作区根目录作为工作目录。${env:VAR}在服务器连接时按与全局服务器相同的顺序解析。你填写的值只为当前工作区中的该服务器保存,不会共享给全局服务器、其他服务器或其他工作区。- 凭据必须通过
${env:VAR}提供。以下位置出现明文时,描述文件会被拒绝:字段名中以完整词段包含token、secret、password、credential、cookie、authorization或api_key的字段(例如API_TOKEN、db-password、Authorization);同名的 URL 查询参数;写成--token=<value>形式的参数。凭据请通过env或headers传递,不要放在args中。 - 工作区描述文件中的
autoApprove会被忽略,不能借此自动批准工具。工作区服务器的工具默认不自动批准,你可以在 MCP 服务器管理界面为它们勾选 Auto-approve。这个选择保存在 Dline 针对当前工作区的设置中,不写入仓库;描述文件内容一旦改变就会清除,修改后的服务器需要重新批准。 - Dline 会监听
.agents/mcp/。新增、修改或删除描述文件后无需重新加载窗口即可生效。校验失败的描述文件会被跳过,错误写入日志。
打开任务时,启用或停用服务器只对当前任务生效;未打开任务时,则保存为工作区设置。参见能力开关作用域。
在 Configure 标签中,每个服务器都可以:
- 用开关启用或停用,工作区服务器同样提供开关。开关作用于当前工作区,状态保存在本机的 Dline 工作区状态中,不修改
mcp_settings.json或仓库中的描述文件; - 点击 Restart Server 重启;连接失败时点击 Retry Connection 重试;
- 在 Request Timeout 中选择 30 秒到 1 小时的超时(仅全局配置中的服务器);
- 为单个工具勾选 Auto-approve,或勾选 Auto-approve all tools(工作区服务器的选择只对当前工作区生效,默认不勾选);
- 点击 Delete Server 删除。
OAuth 认证
Section titled “OAuth 认证”对于需要 OAuth 的远程服务器,连接时会显示需要认证,服务器行中会出现 Authenticate 按钮。点击后,Dline 会在外部浏览器中打开授权页面。完成授权后,浏览器会回到 Dline 在 http://127.0.0.1 上的本地页面(优先使用 48820–48839 端口)显示结果,Dline 随即自动重新连接该服务器,不会再弹出“打开 VS Code”的提示。Dline 在服务器上登记的客户端名称为 “Dline”。只有首次授权需要浏览器,之后 Dline 会自动刷新已保存的令牌,直到服务器将其撤销。在 VS Code for the Web 中,回调仍经由 VS Code 返回。
- 只添加你信任的服务器。
- 凭据使用
${env:VAR}引用,不要写入仓库文件。 - 服务器配置中的
autoApprove不会绕过全局审批设置,请在批准有副作用的工具调用前检查参数。
| 问题 | 处理方法 |
|---|---|
| 服务器无法连接 | 检查命令或 URL,然后点击 Retry Connection |
| 看不到工具 | 确认服务器已启用并成功连接 |
| 认证错误 | 检查 headers 或环境变量;OAuth 服务器请点击 Authenticate |
| 请求超时 | 调大 Request Timeout 或 timeout |
| 工作区服务器没有出现 | 确认文件位于 .agents/mcp/ 下且扩展名为 .yaml、.yml 或 .json,name 没有重复,并检查 Dline 输出中是否有描述文件校验错误 |