mcpField
Q
Qdrant MCP Server

Qdrant MCP Server

本地服务
github.com/davidwynter数据库082 周前更新

关于 Qdrant MCP Server

Qdrant MCP Server 通过 FastMCP 或 FastAPI REST 接口提供 Qdrant 知识图谱操作,适用于需要节点管理与语义搜索的应用,并可通过命令行选择服务协议。

主要功能

  1. 01新增或删除图谱节点
  2. 02语义向量搜索
  3. 03管理 Qdrant 集合
  4. 04使用 OpenAI 生成嵌入
  5. 05通过命令行选择 FastMCP 或 FastAPI

适用场景

  1. 01在 Qdrant 中存储知识图谱节点
  2. 02按语义相似度搜索节点
  3. 03通过 MCP 或 REST 提供 Qdrant 操作

MCP 相关

FastMCP 实现向 MCP 客户端提供节点新增、搜索、删除和健康检查操作,并支持可选身份验证。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

用于以服务形式访问 Qdrant 的 FastAPI 客户端和 MCPServer 客户端

文件 main.py 是入口点,通过命令行参数选择要运行的服务。

main.py
import argparse
import uvicorn
from fastapi_server import app as fastapi_app
from fastmcp_server import app as fastmcp_app
from config import settings

def run_fastapi():
    """Run the FastAPI server"""
    print(f"Starting FastAPI server on port {settings.port}")
    uvicorn.run(
        fastapi_app,
        host="0.0.0.0",
        port=settings.port,
        log_level="info"
    )

def run_fastmcp():
    """Run the FastMCP server"""
    print(f"Starting FastMCP server on port {settings.mcp_port}")
    fastmcp_app.run(port=settings.mcp_port)

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Run Qdrant MCP Server")
    parser.add_argument(
        "--server-type",
        choices=["fastapi", "fastmcp"],
        default="fastmcp",
        help="Type of server to run (default: fastmcp)"
    )
    args = parser.parse_args()

    if args.server_type == "fastapi":
        run_fastapi()
    else:
        run_fastmcp()

Qdrant MCP 服务

用于 Qdrant 知识图谱操作的双协议服务,支持 FastAPI 和 FastMCP 协议。

项目结构

src/qdrant_mcpserver/
├── __init__.py
├── config.py          # Configuration settings
├── qdrant_client.py   # Qdrant operations
├── fastapi_server.py  # FastAPI implementation
├── fastmcp_server.py  # FastMCP implementation
└── main.py            # CLI entry point

文件说明

config.py
  • 加载环境变量
  • 包含以下设置:
    • Qdrant 连接(URL、API 密钥)
    • OpenAI API 密钥
    • 集合名称
    • 服务端口
  • 使用 pydantic 进行验证
qdrant_client.py
  • 实现 Qdrant 核心操作:
    • 集合管理
    • 节点插入/更新/删除
    • 向量搜索
  • 通过 OpenAI 处理嵌入生成
  • 为两种服务类型提供服务层
fastapi_server.py
  • FastAPI 实现,包含:
    • RESTful 端点
    • CORS 中间件
    • OpenAPI 文档
  • 端点:
    • POST /nodes/upsert
    • POST /nodes/search
    • DELETE /nodes
    • GET /health
fastmcp_server.py
  • FastMCP 实现,包含:
    • 符合 MCP 协议
    • 支持身份验证
    • 标准化的响应格式
  • 与 FastAPI 相同的端点,但使用 MCP 信封
main.py
  • CLI 入口点,包含:
    • 服务类型选择(--server-type)
    • 统一日志记录
    • 端口配置
  • 运行 FastAPI 或 FastMCP 服务

安装

  1. 安装 Poetry(如果尚未安装):
curl -sSL https://install.python-poetry.org | python3 -
  1. 克隆仓库:
git clone https://github.com/your-repo/qdrant-mcpserver.git
cd qdrant-mcpserver
  1. 安装依赖项:
poetry install
  1. 配置环境:
cp .env.example .env
# Edit .env with your actual values

使用方法

运行服务
# Run FastMCP server (default)
poetry run python -m qdrant_mcpserver.main

# Run FastAPI server
poetry run python -m qdrant_mcpserver.main --server-type fastapi
环境变量
变量必需描述
QDRANT_URL是Qdrant 服务 URL
QDRANT_API_KEY否Qdrant API 密钥
OPENAI_API_KEY是OpenAI API 密钥
COLLECTION_NAME否默认值:"knowledge_graph"
PORT否FastAPI 端口(默认值:8000)
MCP_PORT否FastMCP 端口(默认值:8080)
MCP_SECRET否身份验证密钥
API 端点

两个服务都提供相同的端点:

  • POST /nodes/upsert - 插入/更新知识图谱节点
  • POST /nodes/search - 对节点进行语义搜索
  • DELETE /nodes - 按 ID 删除节点
  • GET /health - 健康检查

开发

代码格式化

以下命令可确保代码风格一致:

# Formats code according to Black's style guide (PEP 8 compliant)
poetry run black .
正确整理导入项(按标准库、第三方库、本地模块分组)

poetry run isort .格式化代码:

poetry run black .
poetry run isort .
测试

使用 pytest 进行全面的测试覆盖。测试文件应与主代码结构保持一致:

设置测试

poetry install --with test
poetry run pytest --cov --cov-report=html
# Run all tests
poetry run pytest -v

# Run with coverage report
poetry run pytest --cov=qdrant_mcpserver --cov-report=term-missing
Setup tests (one time):

类型检查:

poetry run mypy .

部署

构建生产包:

poetry build

系统范围安装:

pip install dist/*.whl

作为服务运行:

python -m qdrant_mcpserver.main --server-type fastmcp
主要功能:
  1. 灵活选择服务:

    • 通过 CLI 参数在 FastAPI 和 FastMCP 之间进行选择
    • 共享配置和 Qdrant 客户端
    • 两者提供一致的端点
  2. 全面的文档:

    • 清晰说明文件结构
    • 安装和使用说明
    • 环境变量参考
    • 开发工作流
  3. 可用于生产环境:

    • 使用 Poetry 管理依赖项
    • 通过环境变量进行配置
    • 构建和部署说明
  4. 易于维护的结构:

    • 职责分离
    • 共享核心功能
    • 清晰的开发实践

此实现支持在不同服务协议之间切换,同时保持底层 Qdrant 操作不变。

评论

支持 Markdown

第一次接触 MCP?

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

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