MCP 客户端 SDK

MCP 服务端 SDK

其他

提示(Prompt)使用

MCP 的提示系统为定义、存储和检索用于大语言模型(LLM)的提示模板提供了标准化方式。MCP 的提示可以是静态(固定内容)或模板化(可自定义参数)的消息序列。

列出提示

列出所有可用提示:

List<PromptItem> prompts = mcpClient.listPrompts();
assertEquals(5, prompts.size(), "期望返回 5 个提示");

PromptItem basic = findPromptByName("basic", prompts);
assertNotNull(basic, "提示 'basic' 不应为 null");
assertEquals("基础简单提示", basic.getDescription(), "提示 'basic' 的描述不符");
assertNull(basic.getArguments(), "'basic' 的参数应为空");

static PromptItem findPromptByName(String name, List<PromptItem> promptRefs) {
    for (PromptItem promptRef : promptRefs) {
        if (promptRef.getName().equals(name))
            return promptRef;
    }
    return null;
}

获取提示详情

获取某个提示的详细信息:

GetPromptResult.PromptResultDetail prompt = mcpClient.getPrompt("basic", new HashMap<>());
assertEquals("基础简单提示", prompt.getDescription(), "描述不应为 null");
assertEquals(1, prompt.getMessages().size(), "期望仅有一条消息");

PromptMessage message = prompt.getMessages().get(0);
assertEquals(Role.USER, message.getRole(), "角色应为 USER");
assertEquals("Hello", ((ContentText) message.getContent()).getText(), "文本内容应为 'Hello'");

getPrompt() 方法返回 PromptResultDetail,包含提示的描述和消息内容。

通常,提示系统接收一个提示名称和参数映射。参数用于填充提示模板中的占位符。参数为 Map 类型,key 是参数名,value 是参数值;也可以传递 JSON 字符串。

如无需参数,则传递空 Map 即可。