MCP Server logo

MCP Server

by ningwenjie

The MCP (Multi-functional Computing Platform) server is a powerful backend service supporting file access, database connections, API integration, and vector database access. It is designed for integration with large language models like Qwen.

View on GitHub

Last updated: N/A

MCP服务器项目说明

项目概述

MCP(多功能计算平台)服务器是一个功能强大的后端服务,支持文件访问、数据库连接、API集成和向量数据库访问等多种功能。本项目专为与通义千问(Qwen)等大型语言模型集成而设计,提供了完整的Docker部署配置和通义千问调用示例。

项目结构

mcp_server/
├── src/                    # 源代码目录
│   ├── __init__.py         # 初始化模块
│   ├── config.py           # 配置管理
│   ├── server.py           # 服务器主类
│   └── modules/            # 功能模块
│       ├── __init__.py     # 模块注册
│       ├── file_module.py  # 文件访问模块
│       ├── database_module.py # 数据库连接模块
│       ├── api_module.py   # API集成模块
│       └── vector_module.py # 向量数据库模块
├── docker/                 # Docker配置
│   ├── Dockerfile          # Docker镜像配置
│   └── docker-compose.yml  # Docker Compose配置
├── examples/               # 示例代码
│   ├── qwen_client.py      # 通义千问客户端库
│   └── qwen_example.py     # 通义千问使用示例
├── docs/                   # 文档
│   ├── user_guide.md       # 用户指南
│   ├── api_docs.md         # API文档
│   └── qwen_examples.md    # 通义千问示例说明
├── test_server.py          # 服务器测试脚本
├── test_qwen_client.py     # 通义千问客户端测试脚本
├── main.py                 # 主入口文件
└── requirements.txt        # 依赖列表

功能特性

  • 文件访问:上传、下载、列表和删除文件
  • 数据库连接:MongoDB集成,支持文档的增删改查
  • API集成:支持调用外部API服务
  • 向量数据库:支持向量存储和相似度搜索
  • Docker部署:完整的Docker配置,支持一键部署
  • 通义千问集成:提供通义千问调用MCP服务器的客户端和示例

快速开始

安装

  1. 克隆项目代码:
git clone https://github.com/ningwenjie/mcp_server
cd mcp_server
  1. 使用Docker Compose启动服务:
docker-compose -f docker/docker-compose.yml up -d
  1. 验证服务是否正常运行:
curl http://localhost:8000/health

使用通义千问客户端

from examples.qwen_client import QwenMCPClient

# 初始化客户端
client = QwenMCPClient("http://localhost:8000")

# 上传文件
file_info = client.upload_file("example.txt")

# 存储向量
vector = [0.1, 0.2, 0.3] * 512  # 1536维向量
metadata = {"text": "这是一个示例文本", "source": "通义千问"}
vector_info = client.store_vector("qwen_embeddings", vector, metadata)

# 搜索向量
query_vector = [0.15, 0.25, 0.35] * 512
search_results = client.search_vector("qwen_embeddings", query_vector, top_k=3)

文档

详细文档请参阅:

测试

运行服务器测试:

python test_server.py

运行通义千问客户端测试:

python test_qwen_client.py

依赖

  • Python 3.10+
  • FastAPI
  • Uvicorn
  • PyMongo
  • FAISS
  • Docker (用于部署)

详细依赖列表请参阅 requirements.txt

许可证

MIT License