快速mcp示例

@justmywyw/quick-mcp-example
0 Stars 20 次浏览 justmywyw 更新于 2026-08-23

测试

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

标准化LLM与MCP服务器的交互

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

MCP生态系统概述了三个特定组件:

  • MCP 服务器处理:工具可用性(公开哪些功能可用)、工具执行(在请求时运行这些功能)、静态内容作为资源(提供可引用的数据)、预设提示(常见任务的标准模板)

  • 客户端管理:到服务器的连接、LLM集成、组件间的消息传递

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

这种架构创建了一个模块化系统,在这个系统中不同的组件可以独立开发同时保持互操作性。这让用户能够为不同的LLM相关功能制作MCP服务器,并在多种支持的应用程序之间即插即用。通常用于集成服务API和工具,或连接到您自己机器上的本地数据源。

MCP 服务器组件

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

在本指南中,我们将重点构建一个具有核心功能的示例MCP服务器,以及一个简单的客户端实现来演示交互模式。首先,让我们了解一下MCP服务器的主要组成部分:

工具

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

{
  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
  }
}

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

资源

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

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

资源可以是静态的(如配置文件)或动态的(如数据库记录或API响应)。它们在不需要函数调用的情况下为LLM提供上下文。

提示

提示是定义特定交互模式的可重用模板。它们允许服务器公开标准化的对话流程:

{
  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元素(如斜杠命令)来调用它们。

注意:虽然工具是专门为LLM交互设计的(类似于函数调用),但在MCP生态系统中,提示词和资源有不同的用途。提示词通常是用户控制的模板,可以通过UI元素(如斜杠命令)直接调用;而资源则是应用程序控制的数据源,在被包含进LLM上下文之前可能会呈现给用户选择。

更多细节和额外功能可以在MCP官方文档中找到。


设置我们的示例

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

  1. 让LLM使用工具查询向量数据库以获取RAG响应
  2. 让用户选择现有资源以提供上下文
  3. 让用户执行标准提示词以实现更复杂的分析工作流

上述图表在mcp_server.py中实现,并有一个对应的简单CLI客户端在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