mcpField
S
Standardizing LLM Interaction with MCP Servers

Standardizing LLM Interaction with MCP Servers

本地服务
lucek.aiAI 与智能体6286 周前更新

关于 Standardizing LLM Interaction with MCP Servers

这是一个简洁的 MCP 服务与客户端示例实现,演示 Tools、Resources 和 Prompts 的用法。适合希望学习 MCP 基本组件和 LLM 交互方式的开发者。

主要功能

  1. 01示例 MCP 服务实现
  2. 02简单的命令行客户端
  3. 03Tool 调用用于查询向量数据库
  4. 04Resource 选择以提供上下文
  5. 05Prompt 模板用于分析类工作流

适用场景

  1. 01学习 MCP 服务的基本组件
  2. 02构建基于 ChromaDB 的知识库问答示例
  3. 03了解客户端与服务之间的交互模式

MCP 相关

该项目包含 MCP 服务 mcp_server.py 和命令行客户端 client.py,服务端暴露 Tools、Resources 和 Prompts 三类能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

使用 MCP 服务标准化大模型交互

模型上下文协议(Model Context Protocol,简称 MCP)是一项开放协议,用于标准化应用程序向大模型提供上下文的方式。换句话说,它为基于大模型的应用程序提供了一个统一框架,用于连接数据源、获取上下文、使用工具并执行标准提示词。

README 配图

MCP 生态系统包含三个特定组件:

  • MCP 服务负责:工具可用性(公开可用的函数)、工具执行(在收到请求时运行这些函数)、作为资源的静态内容(提供可供引用的数据)、预设提示词(用于常见任务的标准化模板)

  • 客户端负责管理:与服务的连接、大模型集成、组件间的消息传递

  • 主机提供:前端界面、向用户展示 MCP 功能、整个生态系统的集成点

这种架构创建了一个模块化系统,不同组件可以独立开发,同时保持互操作性。这样一来,用户就可以针对不同的大模型相关功能创建 MCP 服务,并在各种受支持的应用程序中即插即用。MCP 常用于集成服务 API 和工具,或连接到自己设备上的本地数据源。

MCP 服务组件

MCP 服务通过定义明确的接口公开标准化功能,构成了该协议的基础。主机和客户端随后可以使用协议标准连接到这些服务,但如何向用户呈现这些功能仍然灵活开放,由开发者决定。这意味着具体实现和用户体验完全取决于开发者——无论是通过命令行界面、图形应用程序,还是嵌入更大型的系统中。

在本指南中,我们将重点介绍如何构建一个具备核心功能的示例 MCP 服务,并实现一个简单的客户端来演示交互模式。首先,让我们了解 MCP 服务的主要组件:

README 配图
工具

工具是大模型可以调用以执行操作或检索信息的函数。每个工具都由以下内容定义:

{
  name: string;          // Unique identifier for the tool
  description?: string;  // Human-readable description
  inputSchema: {         // JSON Schema for the tool's parameters
    type: "object",
    properties: { ... }  // Tool-specific parameters
  }
}

工具允许大模型与外部系统交互、执行代码、查询数据库或进行计算。它们代表会产生影响或计算出新信息的操作。

资源

资源代表客户端应用程序可以访问的数据源。它们通过 URI 标识,可以包括:

{
  uri: string;           // Unique identifier for the resource
  name: string;          // Human-readable name
  description?: string;  // Optional description
  mimeType?: string;     // Optional MIME type
}

资源可以是静态的(例如配置文件),也可以是动态的(例如数据库记录或 API 响应)。它们无需调用函数即可向大模型提供上下文。

提示词

提示词是定义特定交互模式的可复用模板。它们使服务能够公开标准化的对话流程:

{
  name: string;              // Unique identifier for the prompt
  description?: string;      // Human-readable description
  arguments?: [              // Optional list of arguments
    {
      name: string;          // Argument identifier
      description?: string;  // Argument description
      required?: boolean;    // Whether argument is required
    }
  ]
}

提示词有助于为常见任务创建一致、专用的交互方式,用户可以通过斜杠命令等 UI 元素调用它们。

注意:工具专为大模型交互而设计(类似于函数调用),而提示词和资源在 MCP 生态系统中承担不同的用途。提示词通常是由用户控制的模板,可通过斜杠命令等 UI 元素直接调用;资源则是由应用程序控制的数据源,可先呈现给用户以供选择,再纳入大模型上下文。

更多详情和其他功能,请参阅 MCP 官方文档


设置我们的示例

我们的 MCP 服务将展示工具、资源和提示词。核心概念是创建一个简单的知识库聊天机器人流程,实现以下功能:

  1. 让大模型使用工具查询向量数据库,以提供 RAG 响应
  2. 让用户选择现有资源以提供上下文
  3. 让用户执行标准提示词,以完成更复杂的分析工作流
README 配图

上图展示的内容已在 mcp_server.py 中实现,并提供了对应的简单命令行客户端 client.py。

如需参考资料,请查看 MCP 的服务列表,其中包含官方集成和社区制作的服务。


设置与安装

  1. 克隆仓库
git clone https://github.com/ALucek/quick-mcp-example.git
cd quick-mcp-example
  1. 创建 ChromaDB 数据库

按照 MCP_setup.ipynb 中的说明创建向量数据库,并将 PDF 嵌入其中。

  1. 创建虚拟环境并安装软件包
# Using uv (recommended)
uv venv
source .venv/bin/activate  # On macOS/Linux
# OR
.venv\Scripts\activate     # On Windows

# Install dependencies
uv sync
  1. 运行客户端和服务端
python client.py mcp_server.py

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。