mcp - 鉴权设计参考
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();