第 6 章:MCP 服务器介绍与接入

MCP 让 Agent 用统一方式发现和调用外部能力。电商 IT 工程师在维护 Agent 工具时,也需要查询官方配置与接口资料。本章先用公开文档检索服务完成一次连接、调用和结果核对,再理解同样的接入机制怎样用于业务系统。

6.1 为什么需要 MCP

Agent 要查询文档或业务系统,需要知道有哪些能力、输入什么参数、怎样调用、结果是什么。MCP,即 Model Context Protocol,为这些交互提供共同的协议。

例如,文档服务可以提供"搜索文档"和"读取页面"两个工具。Agent 根据用户问题选择工具,提交参数,取得结果后再组织回答。

MCP 服务器是一段提供能力的程序,可以在本机运行,也可以作为远程服务运行。"服务器"不一定指一台单独购买的电脑。MCP 架构说明

6.2 模型、客户端、服务器与业务接口

角色 负责什么 本章例子
模型 理解问题、提出调用、解释结果 判断先搜索哪个主题
Host:宿主应用 组织任务和工具执行 Codex 或 WorkBuddy
Client:客户端组件 在宿主内与 MCP 服务通信 软件中的 MCP 连接组件
Server:服务器程序 提供工具、资源或提示模板 官方文档检索服务

一次工具调用可以理解为:

复制代码
用户提出问题 → Agent 选择工具 → MCP 客户端发送参数
→ MCP 服务执行操作 → 返回结果 → Agent 整理回答

MCP 与普通 API

普通业务 API 已经能够查询订单或库存。增加 MCP 时,可以保留这些接口,用适配程序把所需能力作为 MCP 工具提供给 Agent。

复制代码
Codex → MCP 服务 → 已有业务 API → 数据库

这只是关系示意。把一个 FastAPI 网页地址或数据库连接串填入 MCP 配置,不能自动完成适配。服务必须实现客户端支持的 MCP 协议,并明确工具参数和返回结果。

工具、资源和提示模板

工具用于执行操作,资源用于提供可读取的内容,提示模板用于提供可复用的交互模板。服务可以提供其中一部分,客户端也可能只展示部分能力。本章关注工具调用。MCP 能力说明

6.3 MCP、Skills 与模型接入怎样区分

设置 改变什么
切换 OpenAI / DeepSeek 使用哪个模型服务
添加 MCP 服务 Agent 可以访问哪些外部工具或数据
安装 Skill 某类任务按什么方法处理

Skill 可以要求先搜索、再读原文、最后附上来源;MCP 提供实际搜索和读取能力。技能也可以只使用本地工具,不必依赖 MCP。

模型凭据、MCP 服务凭据与业务系统权限分别配置。模型接入成功不会自动授予其他系统的访问权。

6.4 认识两种连接方式

方式 工作方式 需要准备
STDIO 客户端启动程序,通过标准输入输出通信 启动命令、解释器、参数与所需环境变量
Streamable HTTP 客户端访问运行中的 MCP 端点 服务地址、网络连接与所需认证

STDIO 常用于本机工具;HTTP 常用于共享服务,也可以连接本机监听的端口。使用哪种方式取决于服务实现,不能只改配置中的类型名称。Codex MCP 配置

服务运行位置与客户端运行位置要分清。localhost 指执行连接的环境本身;云端运行环境中的 localhost 不会指向自己的电脑。

6.5 简单案例:在 Codex 中查询官方文档

第一步:添加服务

OpenAI Docs MCP 提供官方文档检索和页面读取,地址为 https://developers.openai.com/mcp。它用于查询文档,不代替用户调用模型 API。官方接入说明

在终端中执行:

复制代码
codex mcp add openaiDeveloperDocs --url https://developers.openai.com/mcp
codex mcp list

也可以在实际生效的 config.toml 中添加以下段落:

复制代码
[mcp_servers.openaiDeveloperDocs]
url = "https://developers.openai.com/mcp"

两种方式选一种即可。保留原来的模型配置,已有同名段落时合并修改,避免重复配置。重新打开客户端,在支持该命令的 Codex CLI 会话中用 /mcp 查看活动服务。

第二步:提出文档查询请求

复制代码
请使用 OpenAI 文档 MCP 查询 Codex 如何发现和调用本地 Skills。
先搜索,再读取相关原文,用中文解释,并附上对应官方链接。
不要修改本地配置。服务不可用时说明错误,不用记忆中的回答替代查询结果。

第三步:核对调用与回答

检查层次 核对内容
配置 服务名称和地址正确
连接 客户端取得服务提供的工具
调用 执行记录中出现搜索、页面读取及返回结果
回答 技能目录和调用方法来自读取的文档,链接对应原文

能在列表中看到名称,只能说明已经配置。需要继续观察连接状态、实际调用和回答依据。工具名称以服务返回的列表为准,不凭空假设名称。

6.6 WorkBuddy 中的接入思路

在当前客户端的连接器或 MCP 入口查看可用服务。已有连接器按界面安装和授权;自定义入口按要求填写地址,或提供本地服务启动命令。WorkBuddy 连接器说明

WorkBuddy 连接器包与 Codex 的 TOML 配置属于不同格式。若入口要求完整连接器包,应按其规范准备,不能直接上传 Codex 配置文件。

连接后同样检查工具列表、调用记录和回答依据。不同客户端的入口可以不同,但"连接到什么服务、调用了什么工具、返回什么结果"这三个问题相同。

6.7 出现问题时怎样定位

现象 优先检查
本地程序启动失败 解释器、启动命令、依赖和路径
HTTP 服务连接失败 地址、端口、网络和传输方式
认证失败 服务要求的凭据、授权状态和账号权限
已连接但没有所需工具 服务暴露的能力与客户端加载状态
工具存在但未调用 任务是否需要该工具、描述是否明确
返回空结果 查询条件与数据范围,区分"无数据"和"查询失败"
调用成功但回答错误 返回内容是否相关,回答是否超出证据

对于写入类操作,服务端仍需检查权限与业务状态。Skill 中的操作说明不能替代服务端授权。项目实战篇将使用已有 Python 程序、业务 API 和数据库进一步说明这一关系。

下一章认识 Skills,学习把任务步骤、规则与资源整理成可复用的方法。

相关推荐
-梅1 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·自动化·github
syntaxsage1 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo1 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
corey931 小时前
Linux 学习 - 第十四周作业
linux·运维·学习
可乐_不渴1 小时前
# C语言文件操作全解析:从 fopen 到 fclose,一文吃透文件 IO
linux·服务器·c语言
李纲明2 小时前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
志栋智能9 小时前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡10 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
2301_7807896610 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos