一、MCP 工具概念
MCP(Model Context Protocol,模型上下文协议)是一种开放协议,允许你从外部服务器向 Deep Agents Code(LangChain 的 AI 代理开发环境)动态加载额外工具。
核心思想:不修改代理代码本身,就能让 AI 获得操作文件系统、调用 API、查询数据库等外部能力。Deep Agents Code 启动时会自动连接配置的 MCP 服务器,发现其提供的工具,并将它们与内置工具合并供代理使用。
二、MCP 的作用
| 作用维度 | 说明 |
|---|---|
| 能力扩展 | 让 AI 代理突破内置工具限制,连接外部系统 |
| 即插即用 | 通过配置文件添加/移除工具,无需改代码 |
| 安全隔离 | 工具在独立进程中运行(stdio 模式),或通过网络连接(HTTP/SSE 模式) |
| 权限管控 | 支持项目级信任机制,防止恶意仓库自动执行危险命令 |
三、有哪些工具
工具取决于你连接的MCP 服务器,文档中提到的典型工具包括:
| 服务器 | 提供的工具示例 | 用途 |
|---|---|---|
docs-langchain | 文档检索工具 | 查询 LangChain 概念指南、教程 |
reference-langchain | API 参考工具 | 查询类、方法、参数定义 |
filesystem | read_file、list_directory | 读写本地文件系统 |
github | 仓库管理、Issue 操作等 | 与 GitHub 交互 |
database | SQL 查询、数据操作 | 连接远程数据库 |
linear、slack、notion | 项目管理、消息发送 | 连接第三方 SaaS 服务(需 OAuth) |
注意:实际可用工具以服务器暴露的为准,可通过
allowedTools和disabledTools进行过滤。
四、能解决什么实际问题
- AI 需要读写本地文件:比如让代理自动读取项目代码、生成报告文件
- AI 需要操作 GitHub:自动创建 PR、评论 Issue、查询仓库状态
- AI 需要查询数据库:让代理直接执行 SQL 获取业务数据进行分析
- AI 需要实时文档支持:连接 LangChain 官方文档 MCP,让代理基于最新文档回答技术问题
- AI 需要集成第三方服务:通过 OAuth 连接 Slack、Notion、Linear 等,实现跨系统自动化
五、运用到哪些项目中
- Deep Agents Code 会话:作为 LangChain 官方推荐的代理开发环境
- 需要文件操作的 AI 项目:代码生成、文档处理、数据分析代理
- DevOps 自动化项目:GitHub 仓库管理、CI/CD 辅助
- 企业知识库项目:连接内部数据库或文档系统
- 多工具协作的复杂代理:需要同时操作文件、API、数据库的综合性 AI 应用
六、命令和配置参数详解
核心命令
| 命令 | 作用 |
|---|---|
dcode | 启动 Deep Agents Code,自动发现并加载 MCP 配置 |
dcode mcp login <server> | 对需要 OAuth 认证的服务器执行登录流程 |
/mcp | 在交互会话中查看各服务器状态、工具列表 |
dcode --mcp-config <path> | 显式指定 MCP 配置文件路径 |
dcode --no-mcp | 完全禁用 MCP 加载 |
dcode --trust-project-mcp | 跳过项目级 MCP 的信任提示(非交互模式常用) |
配置文件(.mcp.json)
配置文件可放在三个位置(优先级由低到高):
~/.deepagents/.mcp.json— 用户级,所有项目共享<project>/.deepagents/.mcp.json— 项目级,隐藏目录<project>/.mcp.json— 项目级,根目录(与 Claude Code 兼容)
关键配置参数
{"mcpServers":{"server-name":{// 传输类型:stdio(默认)| sse | http"type":"http",// stdio 模式:本地命令"command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","/tmp"],"env":{"KEY":"value"},// 远程模式:SSE/HTTP 服务器地址"url":"https://api.example.com/mcp","headers":{"Authorization":"Bearer ${TOKEN}"},// OAuth 认证(仅远程服务器)"auth":"oauth",// 工具过滤(二选一)"allowedTools":["read_file","list_*"],"disabledTools":["delete_*"]}}}| 参数 | 含义 |
|---|---|
type/transport | 通信方式:stdio(本地子进程)、sse(Server-Sent Events)、http(流式 HTTP) |
command | stdio 模式下要执行的命令(如npx) |
args | 传递给命令的参数数组 |
env | 子进程环境变量,用于安全传递 API Key |
url | 远程 MCP 服务器端点 |
headers | HTTP 请求头,支持${VAR}环境变量插值 |
auth | 设为oauth时启用 OAuth 登录流程(与Authorization头互斥) |
allowedTools | 白名单,仅保留列出的工具(支持fnmatch通配符) |
disabledTools | 黑名单,禁用列出的工具 |
七、实际案例:配置文件系统 + GitHub 工具
假设你需要让 AI 代理能够读取本地项目文件并管理 GitHub 仓库,配置如下:
1. 创建配置文件
在用户目录创建~/.deepagents/.mcp.json:
{"mcpServers":{"filesystem":{"command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","/home/user/projects"],"allowedTools":["read_file","list_directory"]},"github":{"command":"npx","args":["-y","@modelcontextprotocol/server-github"],"env":{"GITHUB_TOKEN":"ghp_xxxxxxxxxxxx"}}}}2. 启动并验证
# 启动 Deep Agents Code,自动加载 MCP 服务器dcode# 你会看到类似输出:# ✓ Loaded 5 MCP tools# 在交互会话中查看状态/mcp3. 实际使用场景
启动后,你的 AI 代理现在可以:
- 读取文件:
请读取 /home/user/projects/myapp/src/main.py 的内容并分析 - 列出目录:
查看 myapp 项目下有哪些配置文件 - GitHub 操作:
帮我查看 langchain-ai/langchain 仓库最近的 5 个 Issue
代理会自动调用对应的 MCP 工具完成这些操作,无需你手动编写任何 API 调用代码。
4. 安全注意事项
filesystem服务器限制了allowedTools,仅允许读取和列出目录,禁止写入/删除- GitHub Token 通过
env传递,不会暴露在命令历史或配置文件的版本控制中 - 如果是项目级配置,首次启动时 Deep Agents Code 会提示你确认信任,防止恶意仓库执行危险命令
学习路径
- 入门:先配置
docs-langchain和reference-langchain,让 AI 能查官方文档 - 进阶:添加
filesystem服务器,让 AI 能操作本地文件 - 实战:根据项目需求接入
github、database或第三方 SaaS 服务 - 安全:理解
allowedTools过滤和项目级信任机制,确保生产环境安全