拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MCP服务器示例项目实战:用MCP Inspector调试hello-mcp-server并接入TaoToken统一API通道

MCP服务器示例项目实战:用MCP Inspector调试hello-mcp-server并接入TaoToken统一API通道 1. 从一次本地调试说起MCP Inspector 与 hello-mcp-server 到底解决什么问题如果你刚开始接触 MCPModel Context Protocol大概率会遇到一个很尴尬的局面服务端代码写完了工具方法也标注了Tool但不知道模型那边到底能不能正确识别、参数能不能传对、返回结构是不是符合预期。MCP Inspector 就是专门用来解决这个问题的测试工具它相当于给 MCP 服务器做一次“体检”把工具列表、参数 schema、调用返回都摊开给你看。而 hello-mcp-server 是一个最小可运行的 MCP 服务端示例项目适合拿来练手也适合作为你后续接入真实业务 REST API 的骨架。这篇内容聚焦三件事第一用 MCP Inspector 连接本地 hello-mcp-server验证工具列表和调用返回第二把 REST API 通过 OpenFeign 转成 MCP Tool让模型能调用你已有的 HTTP 接口第三通过 TaoToken 统一 API 通道为 MCP 服务提供模型调用能力避免在多个模型供应商之间来回切换 Key。适合谁看有 Spring Boot 基础、想快速跑通 MCP 服务端调试流程、并且希望用统一 Key 管理模型调用的开发者。我试过在本地把 Inspector 和 hello-mcp-server 同时跑起来整个链路从启动到工具调用返回大概十分钟能跑通。下面把可复制的配置、命令和排障点都整理出来。2. TaoToken 前置准备统一 Key 与 API 通道在 MCP 服务端接入模型调用之前需要先有一个统一的 API 通道。TaoToken 提供的就是这样一个入口你只需要申请一个 Key就能通过统一的 REST API 调用不同模型不用为每个模型单独维护一套鉴权和地址。对于 MCP 服务端来说这意味着你的settings.json或环境变量里只需要配置一个base_url和一个api_key后续切换模型只改模型名即可。具体操作路径先到官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册并登录然后在控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Key 管理页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。创建好之后把 Key 复制出来后面配置里会用到。注意API 基础地址是 https://taotoken.net/api 这个地址不带 UTM 参数直接用于代码里的base_url配置。如果你只是想先验证模型对话是否通可以打开模型对话页面 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 快速试一条消息。如果是长期做编码或 Agent 开发建议直接看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有更完整的接入说明。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content ClaudeCodeAnthropic 相关配置在 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。3. 可复制配置hello-mcp-server 启动与 Inspector 连接3.1 项目依赖与版本hello-mcp-server 基于 Spring Boot 4.0.5 和 JDK 21核心依赖是spring-ai-starter-mcp-server-webmvc。在pom.xml里需要引入 Spring AI BOM 和 Spring Cloud BOM版本分别是2.0.0-M4和2025.1.1。关键依赖片段如下dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-mcp-server-webmvc/artifactId /dependency dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-openfeign/artifactId /dependencydependencyManagement里导入两个 BOMdependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId version${spring-cloud.version}/version typepom/type scopeimport/scope /dependency3.2 application.yml 配置MCP 服务端协议设置为STREAMABLE端口设为 8083避免和已有服务冲突spring: application: name: hello-mcp-server ai: mcp: server: protocol: STREAMABLE server: port: 80833.3 MCP Tool 定义定义一个简单的加法工具用Tool注解描述方法用途ToolParam描述参数Service public class MathService { Tool(description 计算两个整数的和支持正负数) public int add( ToolParam(description 第一个加数必填例如 5) int a, ToolParam(description 第二个加数必填例如 3) int b ) { return a b; } }3.4 注册 ToolCallbackProvider在启动类里把MathService注册为工具提供者Bean public ToolCallbackProvider mathTools(MathService mathService) { return MethodToolCallbackProvider.builder() .toolObjects(mathService) .build(); }3.5 启动服务在项目根目录执行mvn spring-boot:run启动成功后日志里会看到Registered tools: 1说明工具注册成功。Tomcat 监听在 8083 端口。3.6 启动 MCP Inspector另开一个终端执行npx modelcontextprotocol/inspector首次运行会提示安装modelcontextprotocol/inspector0.21.2输入y确认。启动后终端会输出Proxy server listening on localhost:6277 Session token: f32533f0554e31defee79b135ba37d170ac92275601221eb6b34822cf4bc2db7 MCP Inspector is up and running at: http://localhost:6274/?MCP_PROXY_AUTH_TOKEN...浏览器会自动打开 Inspector 页面。如果没自动打开手动访问终端里输出的地址即可。3.7 Inspector 连接配置在 Inspector 页面里配置配置项值Transport TypeStreamable HTTPURLhttp://localhost:8083/mcp点击 Connect 按钮连接成功后左侧会显示工具列表。选择 Tools 页面能看到add工具及其参数 schema。4. 验证请求与成功结果4.1 工具列表验证连接成功后Inspector 的 Tools 页面会列出所有已注册的 MCP Tool。对于 hello-mcp-server应该看到add工具参数为a和b类型都是 integer。如果列表为空说明服务端没有正确注册ToolCallbackProvider检查启动类里的Bean方法是否被扫描到。4.2 调用工具并查看返回在 Inspector 里选中add工具填入参数a5、b3点击 Run Tool。右侧会返回 JSON-RPC 格式的响应{ content: [ { type: text, text: 8 } ] }这说明 MCP 服务端的工具调用链路是通的。Inspector 的日志区域会显示完整的请求和响应过程包括 sessionId 和 POST/GET 消息记录。4.3 REST API 转 MCP Tool 的验证如果你把 REST API 通过 OpenFeign 转成了 MCP Tool比如查询用户列表Inspector 里会多出一个getUsers工具。调用后返回的是用户列表的 JSON 数组。这一步的关键是 Feign 客户端的url要指向真实的 REST 服务地址否则会报连接超时。4.4 TaoToken 统一 API 通道的 settings.json 骨架MCP 服务端如果需要调用模型可以在settings.json里配置 TaoToken 的统一通道。骨架如下{ model_providers: { taotoken: { base_url: https://taotoken.net/api, api_key: 你的_TaoToken_API_Key, models: [gpt-4o, claude-3-5-sonnet] } }, default_provider: taotoken }这样配置后MCP 服务端调用模型时只需要指定模型名不用关心底层是哪个供应商。切换模型只改models数组或调用时的模型参数即可。5. 本篇常见错排查5.1 Inspector 连接失败如果点击 Connect 后报错Connection refused先确认 hello-mcp-server 是否在 8083 端口正常运行。可以用curl http://localhost:8083/mcp测试如果返回 405 或 400说明服务端在监听但请求方法不对这是正常的因为 MCP 用的是 POST。如果完全连不上检查application.yml里的server.port是否被其他配置覆盖。5.2 工具列表为空启动日志里如果出现No tool methods found in the provided tool objects: []说明ToolCallbackProvider没有正确绑定MathService。检查Bean方法是否在启动类里并且MathService是否被Service标注。另外确认Tool注解的 import 是org.springframework.ai.tool.annotation.Tool不是其他包的同名注解。5.3 Inspector 认证 token 问题Inspector 启动时会生成一个 Session token如果浏览器地址里没有带MCP_PROXY_AUTH_TOKEN参数页面会提示认证失败。解决办法是直接复制终端里输出的完整 URL 到浏览器打开。如果不想每次带 token可以设置环境变量DANGEROUSLY_OMIT_AUTHtrue但仅限本地调试使用。5.4 REST API 转 MCP Tool 时 Feign 调用超时Feign 客户端默认超时时间较短如果 REST 服务响应慢会报Read timed out。可以在application.yml里调整feign: client: config: default: connectTimeout: 5000 readTimeout: 100005.5 TaoToken API Key 配置错误如果模型调用返回 401检查settings.json里的api_key是否复制完整有没有多余空格。另外确认base_url是https://taotoken.net/api不要写成带 UTM 参数的地址。如果返回 404检查模型名是否在 TaoToken 支持的模型列表里。5.6 MCP 协议版本不匹配Spring AI 2.0.0-M4 对应的 MCP 协议版本和 Inspector 0.21.2 是兼容的。如果升级了其中一方可能会出现protocol version mismatch错误。解决办法是保持两边版本同步或者查看 Spring AI 官方文档确认兼容矩阵。6. 接入与排障入口如果你在 Inspector 连接或 MCP Tool 注册过程中遇到问题优先看接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有针对 MCP 服务端的配置说明。API Key 的创建和管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 如果 Key 泄露或需要轮换直接在这里操作。验证模型调用是否通可以用模型对话页面 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条测试消息。长期做编码或 Agent 开发建议看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有更完整的工程化接入方案。ClaudeCodeAnthropic 相关配置在 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后说一个实际踩过的坑Inspector 的 Streamable HTTP 连接在服务端重启后需要手动点 Reconnect否则 sessionId 会失效工具列表刷新不出来。这个不是 bug是 MCP 协议的设计记住就行。
返回列表