Quick Mcp Example

Quick Mcp Example

🚀 使用 MCP 协议标准化与 LLM 交互的服务器通信

模型上下文协议(Model Context Protocol,MCP) 是一个开放协议,它统一了应用程序向大语言模型(LLM)提供上下文的方式。简单来说,它为基于 LLM 的应用程序提供了一个统一的框架,用于连接数据源、获取上下文信息、使用工具以及执行标准提示语句。

MCP 生态系统定义了三个关键组件:

  • MCP 服务器:负责处理工具可用性(公开可用功能)、工具执行(按需运行这些功能)、将静态内容作为资源(提供可以引用的数据)以及预设提示语句(标准化模板,用于常见任务)。
  • 客户端:管理与服务器的连接、LLM 集成以及组件之间的消息传递。
  • 主机:提供用户界面,向用户展示 MCP 功能,同时也是与其他生态系统的集成点。

这种架构构建了一个模块化系统,允许不同组件独立开发,同时保持互操作性。这使用户能够构建针对不同 LLM 相关功能的 MCP 服务器,并在各种支持的应用程序中实现即插即用。MCP 常用于集成功能 API 和工具,或连接到本地数据源。

✨ 主要特性

  • 提供统一框架,让应用程序能以标准化方式与 LLM 交互。
  • 模块化架构,各组件可独立开发且保持互操作性。
  • 支持多种数据格式,能灵活配置 LLM 行为以满足不同应用场景需求。

📦 安装指南

克隆仓库

git clone https://github.com/ALucek/quick-mcp-example.git
cd quick-mcp-example

创建 ChromaDB 数据库

按照 MCP_setup.ipynb 中的说明,创建向量数据库并嵌入一个 PDF 文档。

创建虚拟环境并安装依赖项

# 使用 uv(推荐)
uv venv
source .venv/bin/activate  # macOS/Linux
# 或者
.venv\Scripts\activate     # Windows

# 安装依赖项
uv sync

运行客户端和服务器

python client.py mcp_server.py

💻 使用示例

基础用法

工具定义示例

{
name: string;          // 工具的唯一标识符
description?: string;  // 人类可读的描述
inputSchema: {         // 工具参数的 JSON 模式
type: "object",
properties: { ... }  // 工具特定参数
}
}

工具允许 LLM 与外部系统交互、执行代码、查询数据库或进行计算。它们代表具有效果或生成新信息的操作。

资源定义示例

{
uri: string;           // 资源的唯一标识符
name: string;          // 人类可读的名称
description?: string;  // 可选描述
mimeType?: string;     // 可选 MIME 类型
}

资源可以是静态内容或动态生成的内容。MCP 支持多种数据格式,包括文本文件、PDF 文档和 JSON 数据。

📚 详细文档

MCP 服务器组件

MCP 服务器通过定义明确的接口公开标准化功能,构成了协议的基础。主机和客户端可以通过协议标准连接到这些服务器,但如何向用户呈现这些功能仍然灵活且完全由开发者决定。也就是说,实际的实现和用户体验可以完全根据开发者的意愿进行设计——无论是命令行界面、图形化应用程序还是嵌入在更大的系统中。

在此指南中,我们将重点构建一个示例 MCP 服务器,包含核心功能,并附带一个简单的客户端实现来演示交互模式。首先,让我们概述 MCP 服务器的主要组件:

工具

工具是 LLM 可以调用的功能,用于执行操作或检索信息。每个工具的定义如下:

{
name: string;          // 工具的唯一标识符
description?: string;  // 人类可读的描述
inputSchema: {         // 工具参数的 JSON 模式
type: "object",
properties: { ... }  // 工具特定参数
}
}

工具允许 LLM 与外部系统交互、执行代码、查询数据库或进行计算。它们代表具有效果或生成新信息的操作。

资源

资源表示可以被客户端应用程序访问的数据源。它们通过唯一标识符进行识别,包括:

{
uri: string;           // 资源的唯一标识符
name: string;          // 人类可读的名称
description?: string;  // 可选描述
mimeType?: string;     // 可选 MIME 类型
}

资源可以是静态内容或动态生成的内容。MCP 支持多种数据格式,包括文本文件、PDF 文档和 JSON 数据。

提示符

提示符定义了 LLM 的行为模式。它们允许客户端指定如何与 LLM 交互,例如:

  • 指定输入的处理方式
  • 定义输出格式
  • 配置上下文信息

通过 MCP,客户端可以灵活地配置 LLM 的行为,以满足具体应用场景的需求。

通过以上步骤,您可以快速搭建一个基于 MCP 协议的 LLM 交互系统。更多详细信息,请参考相关文档和示例代码。

  • 0 关注
  • 0 收藏,12 浏览
  • system 提出于 2025-09-19 05:06

相似服务问题