Skip to content

MCP

MCP (Model Context Protocol)是一种开放协议,用于标准化应用程序如何向大型语言模型(LLMs)提供上下文。可以将 MCP 想象为 AI 应用的 typec 接口。正如 typec 提供了一种标准化的方式将设备连接到各种外设和配件,MCP 也提供了一种标准化的方式,将 AI 模型连接到不同的数据源和工具

img

配置文件

字段名类型必填说明
mcpServers对象所有MCP服务的集合,每个服务由server_name标识
server_name字符串自定义服务名称(如amap-maps、filesystem、github、mongodb)
disabled布尔是否禁用该服务。如果设置为true,则该服务不会被启动
startupTimeout整数服务启动/通信最大等待时间,默认值通常是60秒(单位:秒)
command字符串启动命令(如node、npx、uv)
args数组命令参数(如["-y", "@amap/amap-maps-mcp-server"])-y的作用:自动确认(Yes)或跳过交互式提示
env对象环境变量(如API密钥、数据库连接密码)
transport字符串stdio:本地进程通信(如Node.js、Python脚本)
http:HTTP通信(需提供URL)

OpenMCP

OpenMCP

基本示例

安装浏览器插件:https://chromewebstore.google.com/detail/drawio-mcp-extension/okdbbjbbccdhhfaefmcmekalmmdjjide

image-20251203151130681

安装VS插件:

image-20251203151048984

添加MCP:

json
{
    "mcpServers": {
        "drawio": {
            "command": "npx",
            "args": [
                "-y",
                "drawio-mcp-server"
            ],
            // "cwd": "/path/to/your/project/directory", // 选填
            "type": "stdio"
        }
    }
}

image-20251203151213241

查看插件:

image-20251203151414474

测试连接:

image-20251203151355816

测试效果:

image-20251203151633328

工具列表:

image-20251203152037412

SpringAI集成

参考博客:

Spring Al 通过以下 Spring Boot 启动器提供 MCP 集成:

客户端启动器

  • spring-ai-starter-mcp-client核心启动器提供STDIO和基于HTTPSSE支持
  • spring-ai-starter-mcp-client-webflux基于WebFluxSSE流式传输实现

服务端启动器

  • spring-ai-starter-mcp-server核心服务器具有STDIO传输支持
  • spring-ai-starter-mcp-server-webmvc基于Spring MVCSSE流式传输实现
  • spring-ai-starter-mcp-server-webflux基于WebFluxSSE流式传输实现

配置文件drawio-mcp-server.json(Linux):

json
{
  "mcpServers": {
    "drawio": {
      "command": "npx",
      "args": [
        "-y",
        "drawio-mcp-server"
      ]
    }
  }
}

Windows写法:

json
{
  "mcpServers": {
    "drawio": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "drawio-mcp-server"
      ]
    }
  }
}

配置application.yml

yaml
spring:
  ai:
    mcp:
      client:
        stdio:
          # 指定MCP服务器配置文件
          servers-configuration: classpath:/drawio-mcp-server.json

配置ChatClient

java
@Bean
public ChatClient ragClient(ToolCallbackProvider mcpTools) {
    return ChatClient.defaultTools(mcpTools)
}

效果:

image-20251203205217656