返回 MCP 目录
public公开dns本地运行

chat-app-mcp

MCP服务器为LLM代理提供基础设施连接服务,支持数据库、文件存储、Kafka和Web接口的交互,通过容器化部署并与Gitlab Agent和LLM Chat集成实现自动化数据管道创建

article

README

🚀 LLM代理的MCP服务器

MCP服务器是我们解决方案的核心所在。它为LLM Chat和Gitlab Agent服务提供了与MCP服务器所在基础设施进行交互的能力。

✨ 主要特性

在MCP服务器端,实现了与以下对象的交互:

  • 数据库:所有支持sqlalchemy驱动的数据库。
  • 文件存储:如S3、SMB等文件存储系统。
  • Kafka:消息队列系统。
  • 网络接口:支持与各类Web接口进行交互。

对于文件存储,支持以下数据格式:

  • 文本格式:CSV、TSV。
  • 标记语言:JSON、XML。
  • 列式存储:Parquet。

针对数据库的主要操作包括:

  • 可用性检查:验证数据库是否可正常访问。
  • 表结构检查:确认指定的模式和表是否存在。
  • 表结构获取:获取表的DDL(数据定义语言)。
  • 数据样本获取:获取表数据样本以检查结构。

针对存储系统的主要操作包括:

  • 存储可用性检查:验证存储系统是否可正常访问。
  • 文件和目录检查:确认目录和文件是否存在。
  • 文件读取:读取文件或其部分内容(适用于文本格式)。
  • Parquet文件模式获取:获取Parquet文件的模式信息。

📦 安装指南

我们的项目支持容器化部署,并提供了用于构建镜像的Dockerfile。

要使服务正常运行,需要配置以下环境变量:

  • HTTP_PROXY:代理服务器地址,适用于无法直接访问互联网的环境。
  • HTTPS_PROXY:HTTPS请求的代理服务器地址,同样适用于无直接互联网访问的环境。
  • GITLAB_URL:Gitlab服务器的API访问地址。
  • GITLAB_TOKEN:具有读写权限的有效Gitlab API令牌。
  • PROJECT_PATH:用于创建分支的项目路径。
  • AIRFLOW_URL:Apache Airflow服务器的地址。
  • AIRFLOW_USER:具有Airflow服务器REST API访问权限的用户。
  • AIRFLOW_PASSWORD:用户的密码。

构建镜像时,需指定所有必要的环境变量并启动构建过程:

$ git clone https://github.com/AnatoliyAksenov/chat-app-backend.git
$ cd chat-app-backend
$ docker build -t chat-app-backend:0.0.1 --build-arg HTTPS_PROXY=http://10.0.0.7:3128 \
--build-arg LDAP_SERVER=10.0.0.100 \
--build-arg LDAP_SERVER=1389 \
--build-arg POSTGRESQL_URL=postgres://10.0.0.7:5432/chat .

此外,我们还为测试环境配置了通过CI/CD进行应用程序的构建和部署。

🔧 技术细节

架构概述

此架构信息复制自Gitlab代理仓库。

代理主要由两个模块组成:

  • LLM Chat:用户交互的前端界面。
  • LLM Gitlab Agent:负责与Gitlab和其他服务交互的后端服务。

同时,服务的正常运行依赖于MCP服务器,该服务器提供了与数据库和存储系统交互的工具集。

scheme

数据加载流程

新的数据加载管道创建始于聊天界面。用户在与代理交互过程中,提供创建新数据加载任务所需的所有信息。聊天代理收集完必要数据后,会在Gitlab项目中创建一个issue,该issue包含了创建管道所需的全部信息。

Gitlab在issue创建后,会触发一个Webhook通知LLM Gitlab Agent开始处理该issue。Agent会在指定的Gitlab项目中创建一个新分支,并将生成的代码和文档推送到该分支,同时创建一个Merge Request,随后完成其任务。

当Merge Request被接受后,CI/CD流程会将更改部署到Apache Airflow中。

📚 详细文档

相关项目链接

  • MCP服务器:https://github.com/AnatoliyAksenov/chat-app-mcp
  • LLM Chat后端:https://github.com/AnatoliyAksenov/chat-app-backend
  • LLM Chat前端:https://github.com/AnatoliyAksenov/chat-app-frontend
  • Gitlab代理:https://github.com/AnatoliyAksenov/gitlab-agent

此外,我们还准备了一个已部署的测试环境。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端