Back to MCP directory
publicPublicdnsLocal runtime

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

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client