MCP服务器与客户端

一个基于Spring AI的简单MCP服务器和客户端,用于演示如何实现与现有API并行的MCP服务器,并提供工具调用功能。

  • by sandipchitale
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 sandipchitale/api-mcp

使用说明

API-MCP

使用Spring AI实现的简单MCP服务器和客户端

它基本上展示了如何实现一个MCP服务器,该服务器在这种情况下可以与'/api/people' API并肩运行。

服务器应用程序(com.apple.ai.mcp.api_mcp.server.ApiMcpApplication )

提供一个单一工具:

Tool[name=getPeople, description=Get registered people, inputSchema=JsonSchema[type=object, properties={}, required=[], additionalProperties=false, defs=null, definitions=null]]

看见 application-server.yaml 翻译为中文是:“应用服务器配置文件(YAML 格式)” 用于MCP服务器配置。

客户端应用程序( com.apple.ai.mcp.api_mcp.client.ApiMcpClientApplication )

创建一个MCP客户端,能够与上述MCP服务器通信,列出工具并调用它们。

看 application-client.yaml 翻译为中文是:“客户端应用配置文件.yaml” 用于MCP服务器配置。

示例客户端运行

API MCP Client Application
Client: Implementation[name=api-mcp-server-client - api-mcp-server, version=1.0.0]
Calling with args:  {id=1} Tool[name=getPersonById, description=Get person by given id, inputSchema=JsonSchema[type=object, properties={id={type=integer, format=int32}}, required=[id], additionalProperties=false, defs=null, definitions=null]]
Tool result: 
[TextContent[audience=null, priority=null, text={"id":1,"name":"Sandip"}]]
Calling with args:  {} Tool[name=getPeople, description=Get registered people, inputSchema=JsonSchema[type=object, properties={}, required=[], additionalProperties=false, defs=null, definitions=null]]
Tool result: 
[TextContent[audience=null, priority=null, text=[{"id":1,"name":"Sandip"},{"id":2,"name":"Tim"}]]]

使用MCP Inspector

您还可以从Anthropic运行、配置和使用MCP Inspector工具:

运行MCP检查器

$ node --version
v23.6.1
$ npx @modelcontextprotocol/inspector
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: 1c54561452d5e1136bd90dbaf655315894791dd27a3d7b8dde7d9a093b7500cc
   Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth

🚀 MCP Inspector is up and running at:
   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=1c54561452d5e1136bd90dbaf655315894791dd27a3d7b8dde7d9a093b7500cc

一旦它运行起来,就可以这样配置和使用它:

如你所见,你可以列出甚至调用这些工具。