Solon v3.2.0

mcp - 鉴权设计参考

</> markdown

mcp-sdk 目前没有关于鉴权的接口定义。

1、服务端的鉴权设计参考

可以使用过滤器或者路由拦截器,检查请求信息并校验。比如:Basic Authentication

@Component
public class McpFilter implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        if (ctx.pathNew().startsWith("/mcp/")) {
            String authStr = ctx.header("Authorization");
            if (Utils.isEmpty(authStr)) {
                ctx.status(401);
                return;
            }

            //业务检测
        }

        chain.doFilter(ctx);
    }
}

2、客户的鉴权设计参考

McpClientToolProvider 为鉴权提供了很好的支持:

  • 使用 Basic Authentication(by header)
McpClientToolProvider toolProvider =  McpClientToolProvider.builder()
                .apiUrl("https://localhost:8080/mcp/sse")
                .apiKey("sk-xxxxx")
                .build();
  • 使用 queryString 参数
McpClientToolProvider toolProvider =  McpClientToolProvider.builder()
                .apiUrl("https://localhost:8080/mcp/sse?token=xxxx")
                .build();
  • 使用其它 header
McpClientToolProvider toolProvider =  McpClientToolProvider.builder()
                .apiUrl("https://localhost:8080/mcp/sse")
                .header("ak", "xxxx")
                .header("sk", "yyy")
                .build();