- 实施统一LLM与外部服务之间通信的标准协议。
- 开发工具、资源和提示模板,以扩展人工智能能力。
- 支持多种数据传输方式,重点支持通过 stdio 进行本地通信和通过 HTTP 进行远程通信。
- 直接与 Claude Desktop、GitHub Copilot 和 Visual Studio Code 等高级客户端集成。
如果你曾经觉得你的AI助手就像一个被困在瓶子里的精灵,无法与现实世界互动, 安装 MCP 服务器 这或许正是你需要的。只是你还不了解…… 模型上下文协议(MCP)。 基本上,这个标准使得像 Claude 或 GPT 这样的模型不再受限于它们从训练中学到的知识,并开始…… 采取实际行动通过实时查询数据库、读取文件或调用外部 API 来实现。
假设MCP是 USB-C 人工智能以前,每次集成都充斥着各种专有插件,混乱不堪;现在,只需一个协议,即可将数据服务器连接到任何兼容的客户端,而无需每次都重写代码。在本文中,我们将…… 详细讲解如何搭建自己的服务器从基本架构到各种语言和平台上的技术实现。
MCP生态系统的架构
为了避免迷失方向,我们首先必须了解这个游戏中有三个基本要素。 主持人 是用户触摸的应用程序(例如 Claude Desktop), MCP客户端 它是管理连接的内部组件,并且 MCP 服务器 正是这个过程真正完成了脏活累活,将模型的功能展现了出来。
服务器可以提供三种类型的原语。 工具 这些是可执行函数,例如查看天气或删除文件。 资源 这些是更静态的数据,例如配置文件或日志,可通过 URI 访问。最后, 提示 这些是预定义的模板,可以帮助用户以一致的方式与模型进行交互。
使用 TypeScript 进行技术实现
如果你正在寻找专业的开发环境,TypeScript 凭借其……是最佳选择。 官方 SDK 以及 Zod 强大的验证功能。要开始使用,您需要 Node.js(版本 18 或更高版本)以及一个结构清晰的文件夹,用于分别存放业务逻辑(服务)、工具定义(工具)和验证模式(模式)。
安装MCP服务器的关键一点是使用 Zod 定义合同这不仅仅是验证类型的问题,更重要的是要向语言学习模型(LLM)提供工具功能的详细描述。如果模型无法通过模式理解函数的用途,它们就不会使用它。应用这种方法至关重要。 。严格的() 防止人工智能“产生幻觉”,从而导致你的代码无法处理某些参数。
关于交通方式,您有两种选择。 标准排版 它非常适合本地开发,服务器作为客户端的子进程运行。另一方面, Streamable HTTP 它允许将服务器部署在云端,从而允许多个用户通过 POST 端点同时访问。
使用 Python 和 FastMCP 进行敏捷开发
对于那些希望以更快捷的方式安装 MCP 服务器的用户,Python 提供了相应的库。 快速MCP这个框架允许你通过向函数添加装饰器来注册工具。关键在于…… 文档字符串函数内部编写的文本是 LLM 读取的内容,用于决定是否调用该工具。
一个实际的例子是创建一个工具,该工具使用 Serper 等 API 查询网络,并使用 Beautiful Soup 处理内容。在 Python 中,您可以管理 传统形式错误向模型返回可执行的消息。返回“500 错误”毫无用处;最好告诉 AI: “找不到您请求的书店,请尝试其他关键词。”.
安装 MCP 服务器:与 Azure 的企业集成
如果您在企业环境中工作,Azure 提供了一种更加直观的方法: API 中心和逻辑应用您无需编写每一行代码,而是可以使用预构建的连接器(例如 Office 365 中的连接器)来设置 MCP 服务器。这允许 管理 API 从公司单一地点获取安全工具,无需从头开始开发集成。
工作流程包括在 API 中心注册逻辑应用程序,定义哪些连接器操作将成为工具,以及配置 输入源您可以决定参数是由模型动态定义,还是由管理员配置静态值。
在真实客户端上进行配置和调试
服务器启动后,需要进行连接。 克劳德桌面这是通过编辑 JSON 配置文件来实现的,在配置文件中指定启动服务器的命令及其绝对路径。 VS Code 中的 GitHub Copilot该过程类似,将 mcp 属性添加到 settings.json 文件中,并指定可执行文件(例如 uv 或 node)。
为了避免陷入疯狂的调试过程,可以这样做: MCP检查员这是一个网页界面,您可以手动运行工具、查看图表,并在将答案传递给人工智能之前检查其是否正确。如果发现错误,建议您进行复核。 如何排查 MCP 服务器上的连接错误一个非常常见的错误是在标准输入输出 (stdio) 模式下使用 console.log,这会破坏协议;请记住,所有日志都必须输出到标准输入输出 (stdio)。 控制台错误.
安装 MCP 服务器可将 AI 从简单的聊天转变为…… 能够交互的操作员 无论使用何种系统,无论是依靠 TypeScript 的严谨性、Python 的速度,还是 Azure 的基础设施,关键都在于设计出具有精确描述、严格验证和错误处理机制的工具,从而引导模型找到正确的解决方案。
专门研究技术和互联网问题的编辑,在不同数字媒体领域拥有十多年的经验。我曾在电子商务、通讯、在线营销和广告公司担任编辑和内容创作者。我还在经济、金融和其他领域的网站上撰写过文章。我的工作也是我的热情所在。现在,通过我的文章 Tecnobits,我尝试探索技术世界每天为我们提供的所有新闻和新机会,以改善我们的生活。