MCP 服务器是一个后端程序,作为特定数据源或工具的标准化包装器。它实现 MCP 规范,通过网络暴露功能,比如可执行的工具或数据资源。本质上,它把特定服务的独特协议(如数据库查询或第三方 REST API)翻译成 MCP 的通用语言,使任何 MCP 客户端都能理解。
MCP 规范中的服务器示例
实践:如何创建你的第一个 MCP 服务器?
以暴露工具的服务器为例(关于工具的定义见下文)。该服务器需要处理来自客户端的两个主要请求:
官方 SDK 和资源
你可以使用官方开源 SDK 开始构建自己的 MCP 客户端和服务器:
Python SDK
TypeScript SDK
官方 MCP 规范
社区服务器实现
MCP 工具 - tools
工具是 MCP 服务器向客户端暴露的具体可执行能力。与被动的数据资源(如文件或文档)不同,工具代表 LLM 可以决定调用的动作,比如发送邮件、创建项目工单或查询实时数据库。
工具与服务器的交互方式如下:MCP 服务器声明它提供的工具。例如,Elastic 服务器会暴露一个 list_indices 工具,定义其名称、用途和所需参数(如 list_indices、get_mappings、get_shards 和 search)。
客户端连接到服务器并发现这些可用工具。客户端将可用工具作为系统提示或上下文的一部分呈现给 LLM。当 LLM 的输出表示有使用工具的意图时,客户端解析该意图并正式请求相应服务器使用指定参数执行该工具。