mcp - 支持的三种内容服务
MCP 协议,包括上面讲到的 Tool 服务外,共支持三种内容服务。
内容 | 描述 |
---|---|
Tool | 工具 |
Prompt | 提示语 |
Resouce | 资源 |
1、完整的 Mcp Server 展示(使用注解模式)
@McpServerEndpoint(sseEndpoint = "/mcp/sse")
public class McpServerTool {
@ToolMapping(description = "查询天气预报")
public String getWeather(@Param(description = "城市位置") String location, Context ctx) {
System.out.println("------------: sessionId: " + ctx.sessionId());
//ctx.realIp(); //ctx 可用于小范围鉴权
return "晴,14度";
}
@ResourceMapping(uri = "config://app-version", description = "获取应用版本号", mimeType = "text/config")
public String getAppVersion() {
return "v3.2.0";
}
@PromptMapping(description = "生成关于某个主题的提问")
public Collection<ChatMessage> askQuestion(@Param(description = "主题") String topic) {
return Arrays.asList(
ChatMessage.ofUser("请解释一下'" + topic + "'的概念?")
);
}
}
没有 @Param
注解的参数,不会转给大模型处理。
2、客户端对应的接口示意
McpClientProvider:callToolAsText
McpClientProvider:getTools
McpClientProvider:readResourceAsText
McpClientProvider:getResources
McpClientProvider:getPromptAsMessages
McpClientProvider:getPrompts
具体,参考后面的资料