正文
1.4 工具
MCP 中的工具允许服务器公开可由客户端调用并由 LLM 用来执行操作的可执行函数。工具的关键方面包括:
-
发现 tools/list:客户端可以通过端点列出可用的工具
-
调用:使用端点调用工具 tools/call,服务器执行请求的操作并返回结果
-
灵活性:工具范围从简单的计算到复杂的 API 交互
与资源一样,工具也由唯一名称标识,并可以包含说明来指导其使用。但是,与资源不同的是,工具表示可以修改状态或与外部系统交互的动态操作。
{
name: string;
description?: string;
inputSchema: {
type: "object",
properties: { ... }
}
}
1.5 采样
采样是 MCP 的一项强大功能,允许服务器通过客户端请求 LLM 完成,从而实现复杂的代理行为,同时保持安全性和隐私性。这种人机交互设计确保用户可以控制 LLM 所看到和生成的内容。采样流程遵循以下步骤:
-
sampling/createMessage 服务器向客户端发送请求。
-
客户审核请求并可以修改。
-
来自 LLM 的客户样本。
-
客户检查完成情况。
-
客户端将结果返回给服务器。
{
messages: [
{
role: "user" | "assistant",
content: {
type: "text" | "image",
text?: string,
data?: string,
mimeType?: string
}
}
],
modelPreferences?: {
hints?: [{
name?: string
}],
costPriority?: number,
speedPriority?: number,
intelligencePriority?: number
},
systemPrompt?: string,
includeContext?: "none" | "thisServer" | "allServers",
temperature?: number,
maxTokens: number,
stopSequences?: string[],
metadata?: Record<string, unknown>
}
由于 LLM 难以直接访问
实时数据源
(如企业内部数据库、实时文档、在线服务等),开发者通常需要为每个应用场景定制专用的适配器或插件,这既耗时费力,又缺乏可扩展性。