test-my-mcpserver

  • Linux
  • Apple

Integrations

  • Enables querying a vector database for RAG (Retrieval Augmented Generation) responses, allowing the LLM to retrieve information from stored knowledge base documents.

  • Implements tools for executing code and performing calculations, allowing the LLM to run Python functions to retrieve or process information.

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

模型上下文协议 (MCP) 是一个开放协议,它规范了应用程序向 LLM 提供上下文的方式。换句话说,它为基于 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中的实现,并在client.py中有一个相应的简单 CLI 客户端。

作为有用的资源,请查看MCP 的服务器列表以获取官方集成和社区制作的服务器。


设置和安装

  1. 克隆 Repo
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
-
security - not tested
F
license - not found
-
quality - not tested

测试

  1. MCP Server Components
    1. Tools
    2. Resources
    3. Prompts
  2. Setting Up Our Example
    1. Setup and Installation
      ID: gjpoubbada