mcpField
M
MCP Knowledge Base Assistant

MCP Knowledge Base Assistant

本地服务
github.com/kofiadom记忆与知识078 周前更新

关于 MCP Knowledge Base Assistant

MCP Knowledge Base Assistant 演示 OpenAI 客户端如何连接服务端,从 JSON 知识库检索公司政策答案,是 MCP 入门示例,服务端可选用 Docker 封装。

主要功能

  1. 01公司政策问答知识库
  2. 02检索知识的 MCP 工具
  3. 03SSE 客户端与服务端连接
  4. 04通过 OpenAI API 生成自然语言答复
  5. 05可选的 Docker 服务端容器

适用场景

  1. 01回答有关公司政策的问题
  2. 02学习连接 MCP 客户端与服务端
  3. 03通过 JSON 条目扩充政策问答

MCP 相关

服务端通过 `get_knowledge_base` 工具公开 JSON 知识库。Python 客户端经由 SSE 连接,并将该工具提供给 OpenAI 使用。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MCP 知识库助手

这是一个 Model Context Protocol(MCP)的演示项目,将由 OpenAI 驱动的客户端连接到知识库服务。该项目展示了如何构建一个简单而强大的 AI 助手,通过 MCP 访问知识库,回答有关公司政策的问题。

📋 概述

该项目演示了:

  1. 如何构建一个将知识库作为工具提供的 MCP 服务
  2. 如何创建一个连接到服务的 MCP 客户端
  3. 如何集成 OpenAI 的 API,创建自然语言界面
  4. 如何使用 Docker 将服务组件容器化

用户可以用自然语言询问公司政策相关问题,AI 会从知识库中检索相关信息并提供准确答案。

🏗️ 架构

该项目采用 MCP 客户端-主机-服务架构:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│                 │     │                 │     │                 │
│  OpenAI Model   │◄────┤  MCP Client     │◄────┤  MCP Server     │
│  (GPT-4o)       │     │  (client.py)    │     │  (server.py)    │
│                 │     │                 │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘
                                                        │
                                                        ▼
                                               ┌─────────────────┐
                                               │                 │
                                               │  Knowledge Base │
                                               │  (kb.json)      │
                                               │                 │
                                               └─────────────────┘
  • MCP 服务:将知识库作为可查询的工具提供
  • MCP 客户端:连接到服务并集成 OpenAI 的 API
  • OpenAI 模型:处理自然语言查询并生成响应
  • 知识库:包含公司政策问答对的 JSON 文件

🚀 入门指南

前提条件
  • Python 3.11 或更高版本
  • Docker(可选,用于容器化服务)
  • OpenAI API 密钥
安装
  1. 克隆代码库:

    git clone <repository-url>
    cd MCP-Get-Started
    
  2. 创建虚拟环境并安装依赖项:

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
    pip install -r requirements.txt
    
  3. 在项目根目录中创建 .env 文件,并填入你的 OpenAI API 密钥:

    OPENAI_API_KEY=your_openai_api_key_here
    
运行服务
选项 1:直接使用 Python 运行
python server.py
选项 2:使用 Docker 运行
# Build the Docker image
docker build -t mcp-server .

# Run the container
docker run -p 8050:8050 mcp-server
运行客户端

服务运行后,打开一个新终端并运行:

python client.py

📝 用法

客户端会连接到服务,并询问一个有关公司平等机会政策的示例问题。你可以修改 client.py 中的查询,询问其他公司政策相关问题。

输出示例:

Connected to server with tools:
  - get_knowledge_base: Retrieve the entire knowledge base as a formatted string.

Query: What is the company's equal opportunity policy?

Response: The company's equal opportunity policy is as follows: The company is an equal opportunity employer and prohibits discrimination based on race, gender, age, religion, disability, or any other protected characteristic.

🔧 项目结构

  • server.py:提供知识库的 MCP 服务实现
  • client.py:连接到服务并集成 OpenAI 的 MCP 客户端
  • data/kb.json:包含公司政策问答对的知识库
  • Dockerfile:用于将服务容器化的配置
  • requirements.txt:Python 依赖项

🧩 工作原理

MCP 服务(server.py)

服务提供一个名为 get_knowledge_base 的工具,用于从知识库文件(data/kb.json)中检索信息。它使用 SSE(服务器发送事件)传输方式在端口 8050 上运行。

MCP 客户端(client.py)

客户端:

  1. 使用 SSE 传输方式连接到 MCP 服务
  2. 获取可用工具列表
  3. 接收用户的自然语言查询
  4. 将查询与可用工具一同发送给 OpenAI
  5. 如果 OpenAI 决定使用工具,客户端就会执行工具调用
  6. 将最终响应返回给用户
知识库(data/kb.json)

知识库是一个简单的 JSON 文件,包含有关公司政策的问答对。可根据需要添加更多政策或信息进行扩展。

🔄 生命周期管理

客户端使用 Python 的异步上下文管理器实现了完善的生命周期管理:

async with MCPOpenAIClient() as client:
    await client.connect_to_server()
    response = await client.process_query("What is the policy?")
# Resources are automatically cleaned up when exiting the context

这可以确保所有资源都得到正确初始化和清理,符合 MCP 最佳实践。

🛠️ 自定义

添加更多知识

要扩展知识库,只需向 data/kb.json 文件中添加更多问答对。

添加更多工具

你可以在 server.py 中使用 @mcp.tool() 装饰器定义其他函数,为服务添加更多工具。

更改模型

要使用其他 OpenAI 模型,请修改 client.py 中 MCPOpenAIClient 类的 model 参数。

📚 进一步了解 MCP

模型上下文协议(MCP)是大模型与外部工具和服务交互的标准化方式。它提供:

  • 可复用性:只需构建一次服务,即可在任何兼容 MCP 的客户端中使用
  • 可组合性:组合多个服务,打造复杂功能
  • 生态发展:受益于他人创建的服务

如需了解更多信息,请访问 MCP 文档。

📄 许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

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

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