集成 OpenAI、Git、文件系统和 Prometheus 的 MCP 服务器
该存储库包含一个模型控制平面 (MCP) 服务器实现,支持 OpenAI 服务、Git 存储库分析、本地文件系统操作和 Prometheus 集成。
项目结构
要求
- Python 3.8+
- 快速API
- 优维康
- OpenAI SDK
- GitPython
- 请求
- Docker 和 Docker Compose(用于 Prometheus 功能)
安装
- 克隆此存储库
- 安装依赖项:
环境变量
设置以下环境变量:
对于 Azure OpenAI:
对于标准 OpenAI:
对于普罗米修斯:
运行服务器
启动 MCP 服务器:
或了解更多选项:
该服务器将在http://localhost:8000上可用。
统一测试工具
我们提供统一的测试脚本,为您提供所有测试功能的用户友好界面:
该交互式脚本提供:
- 文件系统测试
- Git 集成测试
- 内存分析工具
- Prometheus 测试和内存压力
- MCP 服务器管理
- 环境设置
个人测试
您也可以直接运行单个测试:
测试 OpenAI 集成:
测试 Git 集成(提供 Git 存储库 URL):
测试 Git diff 功能(分析需求兼容性):
测试文件系统功能:
测试 langflow 与 MCP 的集成:
测试 Prometheus 集成:
高级 Git 分析
要使用 AI 建议进行更高级的 Git 存储库分析:
您还可以在存储库中搜索特定的模式:
或者使用 AI 洞察分析最后一次提交的差异:
内存分析工具
MCP 包含几个用于内存监控和分析的工具:
您还可以模拟内存压力进行测试:
Prometheus 集成
设置
- 使用 Docker Compose 启动 Prometheus 堆栈:
这将开始:
- Prometheus 服务器(可通过http://localhost:9090访问)
- 节点导出器(用于主机指标)
- cAdvisor(用于容器指标)
- 对于压力测试,您可以启动内存压力容器:
或者使用容器测试脚本:
Docker 配置和重置脚本
该项目包括多个 Docker 配置和重置脚本,以便在不同环境中可靠运行:
Docker 配置
- 标准配置(
docker-compose.yml
):使用 Prometheus 和 Langflow 的自定义 Dockerfiles 来确保跨系统的权限一致。 - 桥接网络配置(
docker-compose.bridge.yml
):对于主机网络有问题的环境,使用桥接网络的替代配置。
自定义 Dockerfile 解决权限问题
该项目针对 Prometheus 和 Langflow 使用自定义 Dockerfile 来解决常见的权限问题:
- Dockerfile.prometheus :为
nobody
用户设置具有适当权限的 Prometheus 配置。 - Dockerfile.langflow :将组件目录复制到容器中,而不改变文件所有权,从而允许 Langflow 访问组件而不会出现权限错误。
这种方法消除了卷安装的需要,从而避免了不同机器和用户配置之间的权限冲突。
重置脚本
- 所有服务重置(
reset-all.sh
):使用单个命令重置所有容器。 - 个人服务重置:
这些脚本确保容器正确配置了正确的权限和最新的代码更改。
故障排除
如果您遇到权限问题:
- 使用重置脚本重建容器
- 使用
docker compose logs <service_name>
检查日志 - 确保添加到 Langflow 的所有组件都包含在 Dockerfile.langflow 中
跨机器部署
部署到新机器时:
- 克隆存储库
- 使重置脚本可执行:
chmod +x *.sh
- 运行重置脚本:
./reset-all.sh
reset-all.sh
自定义 Dockerfiles 自动处理不同系统之间可能出现的所有权限问题。
使用 Prometheus 客户端
MCPAIComponent
类包含 Prometheus 功能:
有用的 PromQL 查询
- CPU 使用率:
rate(node_cpu_seconds_total{mode!="idle"}[1m])
- 内存使用情况:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
- 磁盘使用情况:
node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}
- 容器 CPU 使用率:
rate(container_cpu_usage_seconds_total[1m])
- 容器内存使用情况:
container_memory_usage_bytes
API 端点
OpenAI 端点
- GET
/v1/models
- 列出所有可用模型 - GET
/v1/models/{model_id}
- 获取特定模型的信息 - POST
/v1/models/azure-gpt-4/completion
- 使用 Azure OpenAI 生成文本补全 - POST
/v1/models/azure-gpt-4/chat
- 使用 Azure OpenAI 生成聊天响应 - POST
/v1/models/openai-gpt-chat/chat
- 使用 OpenAI 聊天模型生成聊天响应 - POST
/v1/models/openai-gpt-completion/completion
- 使用 OpenAI 补全模型生成文本补全
Git 集成端点
- POST
/v1/models/git-analyzer/analyze
- 分析 Git 存储库 - POST
/v1/models/git-analyzer/search
- 在 Git 存储库中搜索与模式匹配的文件 - POST
/v1/models/git-analyzer/diff
- 获取存储库中最后一次提交的差异
文件系统端点
- POST
/v1/models/filesystem/list
- 列出目录的内容 - POST
/v1/models/filesystem/read
- 读取文件内容 - POST
/v1/models/filesystem/read-multiple
- 一次读取多个文件 - POST
/v1/models/filesystem/write
- 将内容写入文件 - POST
/v1/models/filesystem/edit
- 编辑具有多个替换的文件 - POST
/v1/models/filesystem/mkdir
- 创建目录 - POST
/v1/models/filesystem/move
- 移动文件或目录 - POST
/v1/models/filesystem/search
- 搜索符合模式的文件 - POST
/v1/models/filesystem/info
- 获取有关文件或目录的信息
Prometheus 端点
- POST
/v1/models/prometheus/query
- 执行即时查询 - POST
/v1/models/prometheus/query_range
- 执行范围查询 - POST
/v1/models/prometheus/series
- 获取系列数据 - GET
/v1/models/prometheus/labels
- 获取所有可用标签 - POST
/v1/models/prometheus/label_values
- 获取特定标签的值 - GET
/v1/models/prometheus/targets
- 获取所有目标 - GET
/v1/models/prometheus/rules
- 获取所有规则 - GET
/v1/models/prometheus/alerts
- 获取所有警报
客户端使用情况
您可以通过提供 MCP 服务器 URL 在您的 LangFlow 管道中使用MCPAIComponent
:
使用 GitCodeAnalyzer 类
对于更结构化的 Git 分析,可以使用GitCodeAnalyzer
类:
故障排除
Prometheus 问题
- 验证 Prometheus 是否正在运行:
docker ps | grep prometheus
- 检查您是否可以访问 Prometheus UI: http://localhost:9090
- 验证 MCP 服务器是否正在运行且可访问
- 检查 MCP 服务器日志是否存在错误
- 首先尝试简单查询来验证连接性(例如,
up
查询)
OpenAI 问题
- 验证您的 API 密钥设置是否正确
- 检查速率限制或配额问题
- 验证您使用的 API 密钥支持的模型
Git 问题
- 确保 Git 存储库 URL 可访问
- 如果使用私有存储库,请检查身份验证问题
- 确保 GitPython 已正确安装
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
一种服务器实现,通过 REST API 端点为 OpenAI 服务、Git 存储库分析和本地文件系统操作提供统一的接口。
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol (MCP) server that lets you seamlessly use OpenAI's models right from Claude.Last updated -12428JavaScriptMIT License
- -securityAlicense-qualityAn MCP server that exposes HTTP methods defined in an OpenAPI specification as tools, enabling interaction with APIs via the Model Context Protocol.Last updated -2PythonMIT License
- -securityAlicense-qualityA modular server that implements the Model Context Protocol standard, providing tools for interacting with GitHub, GitLab, Google Maps, Memory storage, and web automation through a unified gateway.Last updated -9323PythonApache 2.0
- -securityFlicense-qualityA Model Context Protocol server implementation that enables connection between OpenAI APIs and MCP clients for coding assistance with features like CLI interaction, web API integration, and tool-based architecture.Last updated -28Python