返回市场
开放API-MCP服务器

开放API-MCP服务器

作者:h25629612242 星标更新:2025-03-28

项目介绍

概述

可以直接启用使用OpenAPI(Swagger)作为接口文档的接口来支持MCP,从而将应用程序转变为一个MCP服务器。

  • 支持多会话
  • 支持认证

其价值在于,MCP客户端(如cursor、claude桌面等)可以完成业务操作,而无需编写前端页面(Claude Sonnet 3.7测试无敌) 此外,未来肯定会出现基于AI的超级应用。在新的基于语言的交互模式中,我们只需要编写后端接口

要求

  • Java 17+
  • SpringBoot
  • SpringMVC

快速开始

  1. 添加依赖项,MCP原生依赖项
<dependency>
  <groupId>io.modelcontextprotocol.sdk</groupId>
  <artifactId>mcp-spring-webmvc</artifactId>
  <version>0.7.0</version>
</dependency>
  1. 复制 InternalWebMvcSseServerTransport.java McpConfig.java RestApiToolProvider.java UserContextSetter.java

  2. 实现UserContextSetter接口 示例

@Component
@AllArgsConstructor
public class MyUserContextSetter implements UserContextSetter{

    private JwtConfig jwtConfig;

    @Override
    public void set(String auth) {
        UserContext.set(jwtConfig.getUserContextFromTokenWithoutException(auth));
    }

    @Override
    public void clear() {
        UserContext.clear();
    }
}
  1. 补充其他基础设施(拦截器等)以满足业务需求

  2. 客户端示例

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

const transport = new SSEClientTransport(new URL("http://localhost:8080/mcp/sse/eyJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRfaWQiOjIsImlzX2FkbWluIjpmYWxzZSwic3ViIjoiMiIsImlhdCI6MTc0MzA4MTE5MiwiZXhwIjoxNzQzMTY3NTkyfQ.newz2wj0l5nWk1U_lHNg575bi1FubWSLXqji4o2W-P0"));

const client = new Client(
  {
    name: "MCP Server",
    version: "1.0.0"
  }
);

await client.connect(transport);

const tools = await client.listTools();
// 列出所有工具
console.log("Tools: ", JSON.stringify(tools));

// 调用一个工具
const result = await client.callTool({
  name: "TenantController.pageUser",
  arguments: {
    current: 1,
    pageSize: 10
  }
});

console.log("结果: ", JSON.stringify(result));