首页/AI自动化/构建并提供 MCP (模型上下文协议) 服务器
AI自动化需要一定基础

构建并提供 MCP (模型上下文协议) 服务器

预估收入:未提及未提及见收入

本文介绍如何利用 MCP 协议构建一个标准化的 AI 工具服务器。通过将特定 API 封装为 MCP 服务器,开发者可以一次性实现集成,使其能被多种 AI 代理框架通用,从而提高 AI 工具的开发效率和兼容性。

使用工具

TypeScriptNode.jsMCP (Model Context Protocol)HTTP API

从零构建MCP服务器:把HTTP API变成AI Agent的工具

构建并提供 MCP (模型上下文协议) 服务器

在AI开发圈子里,重复造轮子是个老问题。每换一个Agent框架,就要为同一个API写一套新的适配代码。MCP(模型上下文协议)的出现改变了这种局面:它给工具集成定义了一个稳定的协议边界。你只需要实现一次服务器,任何兼容MCP的客户端都能直接使用。

本文用一个真实场景——问题追踪系统的集成——带你从零搭建并测试一个MCP服务器。整个过程使用TypeScript和Node.js,不依赖特定的厂商SDK。最终,你的Agent可以通过自然语言查询未解决问题,而模型本身不需要知道HTTP细节。

为什么需要MCP服务器

假设你有一个问题追踪API,比如GET /v1/issues?project=OPS&status=open&limit=10。如果没有MCP,你想让LLM调用它,就得为每个Agent框架写单独的适配器:LangChain写一个工具,AutoGPT再写一个,以后换个框架又得重写。

MCP把这一切标准化。你只需构建一个MCP服务器,将API封装成一个工具,比如search_open_issues。服务器的职责是校验输入、调用API、规范化响应,返回模型可以直接理解的紧凑结果。之后,任何支持MCP的Agent主机都能连接这个服务器,而无需改动业务逻辑。

这就像在闲鱼或猪八戒网上接单:你只需要提供一个标准服务入口,客户(Agent框架)通过统一协议来调用你,不需要关心你的具体实现。

架构与协议边界

整个链路分为三层:

  • API客户端:负责认证、超时处理、HTTP状态码判断和响应规范化。
  • MCP服务器:负责工具发现、输入校验、工具描述和协议格式的结果输出。
  • Agent主机:负责模型提示词、工具调用审批、对话状态和停止条件。

这种分离意味着,未来你从某个Agent框架切换到另一个,只要新框架支持MCP,你的问题追踪适配器完全不用改。

准备项目

用TypeScript启动一个Node.js项目,安装必要的依赖。建议使用@modelcontextprotocol/sdk作为MCP协议实现,用dotenv管理环境变量,用tsxts-node运行TypeScript代码。

环境变量中设置ISSUE_TRACKER_API_URLISSUE_TRACKER_TOKEN,不要将凭据硬编码到源码里。这样账号信息安全,也方便在不同环境间切换。

构建HTTP API客户端

这一层是纯粹的业务代码,与MCP无关。创建一个http-client.ts文件,封装对上游API的请求。核心功能包括:

  • 拼接请求URL,处理查询参数。
  • 发送带Bearer Token的HTTPS请求。
  • 处理非200响应,抛出可读的错误信息。
  • 将响应JSON规范化为统一的Issue[]接口。

这里的关键是保持客户端的纯粹性。你可以在测试中单独验证它,而无需启动MCP服务器。

实现MCP服务器

MCP服务器的主要工作是定义工具。使用SDK提供的Server类和McpServer接口,注册search_open_issues工具。

工具定义包含:

  • 输入模式:使用JSON Schema描述参数,比如projectKey是必填字符串,limit是可选数字。
  • 处理函数:校验参数后调用HTTP客户端,将结果转换为MCP的CallToolResult结构。
  • 错误处理:捕获异常并返回错误消息,让Agent知道问题所在。

可选地,还可以实现一个getProjectStatus工具,但本文聚焦一个工具,足够演示完整流程。

测试服务器:不经过模型

不要急着连接LLM。先用一个简单的MCP客户端测试服务器是否能正常工作。在测试文件中,通过stdio与服务器建立会话,调用listTools确认工具存在,然后调用callTool传入参数,断言返回的结果。

这种确定性测试是必要的。它能在不消耗token的情况下验证整个链路,包括输入校验、API调用和响应格式化。你甚至可以伪造一个本地HTTP服务来模拟上游API,实现完全自动化测试。

连接到LLM Agent

当服务器通过测试后,就可以接入Agent。一个典型的Agent循环如下:

  • 用户提问:"OPS项目有多少未解决的问题?"
  • Agent主机加载系统提示词,包含可用的工具列表。
  • 模型决定调用search_open_issues,生成一个工具调用请求。
  • MCP客户端将该请求转发给服务器,服务器执行HTTP调用。
  • 结果返回给模型,模型总结成自然语言回复用户。

你可以在Node.js中使用openaianthropicSDK,配合MCP客户端库实现。关键点:模型不直接接触HTTP,只看到工具名称、描述和返回的数据,这大大降低了出错的概率。

验证完整路径

建议构建一个端到端测试脚本,模拟用户提问,断言最终回复中包含预期的问题数量。用nockmsw拦截HTTP请求,让测试稳定且不依赖外部系统。

同时,检查服务器是否正确处理了空结果、超大响应和部分失败。这些边界情况决定了你的工具在真实场景中的可靠程度。

失败场景与加固

生产环境中的MCP服务器不能只处理理想路径。你需要考虑:

  • 上游API超时:设置合理的超时时间,例如10秒,超时后返回明确错误。
  • 认证失败:捕获401/403,提示用户重新配置token。
  • 输入不合法:如果缺少projectKey,返回参数校验错误,而不是用默认值默默运行。
  • 协议兼容:确保你使用的SDK版本与客户端匹配,避免消息格式不一致。

加固思路是:暴露给模型的信息必须简洁且有效。不要返回原始HTTP响应,而是提取关键字段,如idtitlestatus,让模型能够快速理解。

局限性与未来方向

本文构建的MCP服务器只是一个起点。它处理了一个简单工具的调用,但真实场景中通常有多个工具、复杂认证和分页数据。下一步可以考虑:

  • 将工具扩展为多个,并处理好工具之间的依赖。
  • 支持OAuth2动态令牌,而不是静态Bearer Token。
  • 将服务器发布到npm或Docker Hub,方便其他开发者通过MCP市场安装。
  • 在服务器中增加遥测和日志,方便观测Agent调用行为。

MCP的价值在于标准化。当你把API集成做成MCP服务器,它就能被所有支持MCP的Agent复用。这就像在淘宝服务市场发布一个标准API接口,买家只需按协议接入,不用关心你的实现语言和部署环境。

如果你正在将现有项目接入AI Agent,试着为你的API写一个MCP层。用TypeScript快速上手,用测试确保稳定,然后连接任意LLM。你会发现,工具集成不再是每个框架都要重写一次的重复劳动。

想要进一步提升开发效率,可以参考AI工具实战笔记中关于协议标准化的具体应用案例。

相关推荐

AI自动化

利用Base44构建无代码应用与AI智能体

该方法介绍如何利用Base44这一无代码/Vibe-coding平台,通过自然语言描述快速构建完整的全栈应用程序。用户可以利用其内置的AI Agent功能实现自动化工作流,无需掌握编程、数据库设计或运维知识,极大地降低了软件开发和产品变现的门槛。

无法确定
AI自动化

利用Base44构建CRUD应用

本文介绍如何利用AI驱动的无代码平台Base44快速构建CRUD(增删改查)应用程序。通过其可视化的数据建模工具和AI自动化功能,开发者或非技术人员可以大幅缩短开发周期,简化数据建模、工作流和UI设计过程,从而高效地开发出业务管理类应用。

未提及
AI自动化

利用Base44为理发店构建定制化无代码应用

本文介绍了如何利用无代码开发平台Base44,为理发行业打造定制化应用。通过构建预约系统、客户互动工具、运营管理及营收增长模块,理发师可以实现业务自动化、提升客户体验并最大化利润。

未提及
AI自动化

利用AI智能体构建自动化一人企业

本文介绍了一种通过7个轻量化AI智能体构建自动化一人企业的方案。作者弃用复杂的框架,改用Python、SQLite和Cron实现知识抓取、内容生成、合规审查、自动回复及数据分析。该系统的核心逻辑是利用AI维持高频的内容产出和用户互动,从而为数字产品销售构建流量漏斗。

未提及具体金额(通过数字产品变现)
AI自动化

利用Base44无代码平台构建网络安全定制应用

本文介绍了如何利用AI驱动的无代码平台Base44,为网络安全公司快速构建高度安全、可扩展且定制化的应用程序(如威胁分析和事件响应系统),旨在降低开发成本并提高效率。

未提及
AI自动化

基于PDCA循环的自动化内容流水线监控优化

本文介绍了一种通过PDCA(计划-执行-检查-行动)模式优化自动化内容流水线的方法。核心在于建立一个可机器读取的“预测账本”,在设定目标的同时预设“失败后的诊断动作(on_fail)”,从而将数据异常的发现延迟从数月缩短至即时,实现自动化流程的精准监控与快速修复。

未提及