AI命令执行框架

MCP Server是一个提供AI驱动的命令执行、插件工具和高级功能的综合框架,支持同步脚本执行、安全Python评估和知识管理,可作为独立服务运行或嵌入其他项目。

  • by plusplusoneplusplus
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 plusplusoneplusplus/mcp

使用说明

MCP服务器

这 MCP服务器 为AI驱动的命令执行、基于插件的工具和高级功能提供了一个全面的框架,包括同步脚本执行、安全的Python评估和知识管理。它可以作为独立服务运行,也可以嵌入到其他项目中,以公开用于调用工具和管理任务的一致的API。

项目结构

  • mcp_tools/ –具有增强并发管理的插件框架和内置工具
  • 服务器/ –使用HTTP/SSE端点和DataFrame UI的Starlette服务器实现
  • 插件/ –可扩展插件(Azure DevOps、Git工具、知识索引、Kusto、CircleCI)
  • config/ –环境管理器和配置助手
  • utils/ –核心实用程序(异步作业、图形界面、内存管理、向量存储、PyEval)
  • 脚本/ –安装、实用程序脚本和自动提交工作流
  • 资产/ –图像和文档资源

安装

该项目使用 uv 用于依赖性管理。使用以下方式安装依赖项:

uv sync

或者使用pip在开发模式下安装:

pip install -e .

环境设置

配置由控制 .env 文件夹。从模板中创建一个,并使用您的设置进行编辑:

cp config/env.template .env

重要变量包括存储库路径(GIT_ROOT),Azure回购详细信息(AZREPO_ORG, AZREPO_PROJECT, AZREPO_REPO),可选 PRIVATE_TOOL_ROOT 用于外部工具配置。环境管理器自动加载 .env 存储库根目录、当前目录和主目录中的文件。

通过以下方式访问代码中的设置:

from config import env_manager
env_manager.load()
root = env_manager.get_git_root()

看 docs/config_overview.md 了解更多信息。

运行服务器

安装依赖项并配置后 .env,使用以下命令启动服务器:

uv run server/main.py

连接到SSE端点 http://0.0.0.0:8000/sse 或使用中的其他路线 server/api.py. 后台作业端点记录在 docs/background_jobs_api.md.

码头工人

A. Dockerfile 用于在容器中运行服务器。 使用以下内容构建图像:

docker build -t mcp-server .

然后启动集装箱暴露端口 8000:

docker run -p 8000:8000 mcp-server

看 docs/docker.md 了解更多详情。

配置文件

服务器从YAML文件加载提示和工具定义:

  • server/prompts.yaml
  • server/tools.yaml

私有覆盖可以放置在 server/.private/ 或位于由指向的文件夹中 PRIVATE_TOOL_ROOT。文件按以下顺序解析:

  1. PRIVATE_TOOL_ROOT
  2. server/.private/
  3. 默认值 server/

工具系统

工具是通过注册的模块化插件 mcp_tools内置公用设施包括:

  • 令执行器 –同步和异步命令执行,支持运行到完成
  • 浏览器自动化 –web交互的剧作家集成
  • PyEval –使用RestrictedPython进行安全的Python表达式求值
  • DataFrame服务 –使用web界面进行数据分析和可视化
  • 时间助手 –基于时间的实用程序和调度
  • YAML工具加载器 –来自YAML文件的动态工具定义

中的其他插件 plugins/ 目录包括Azure DevOps集成、Git操作、知识索引、Kusto查询和CircleCI工作流。看 mcp_tools/docs/creating_tools.md 有关构建自定义工具的详细信息。

web界面提供了全面的仪表板:

  • /tools –浏览所有已注册的工具并查看其详细信息
  • /dataframes –交互式DataFrame管理和可视化
  • /knowledge –知识图谱探索和管理
  • /pyeval –安全的Python评估接口

插件管理

外部插件可以通过在中声明来安装 plugin_config.yaml.每个 条目应指定 plugin_repo 以...形式 owner/repository 以及一个可选 sub_dir 如果插件位于子文件夹中。例子:

plugins:
   - plugin_repo: "github_owner/repo"
     sub_dir: "path/to/plugin"
     type: "python"

跑吧 mcp_admin 工具与 refresh_plugins 克隆或更新操作 基于此配置的插件。通过 force=true 删除所有已安装的 重新安装前的插件。

运行测试

使用以下工具执行所有测试套件:

scripts/run_tests.sh

或者跑 pytest 直接在 mcp_tools/tests, plugins/*/tests,或 server/tests.

主要功能(v0.2.0)

  • 运行至完成执行 –同步脚本执行和全面的输出捕获
  • PyEval安全 –使用RestrictedPython进行安全的Python表达式求值
  • 增强的DataFrame用户界面 –用于数据分析和可视化的响应式web界面

下一步去哪里

  1. 浏览以下文档 mcp_tools/docs/ 和 docs/ 了解工具创建、依赖注入和高级功能。
  2. 查看中的示例配置文件 server/ 并尝试添加自己的工具。
  3. 探索插件 plugins/ 具体实现目录。
  4. 检查 utils/ 矢量存储、图形界面和内存管理等高级实用程序的目录。
  5. 请参阅 CHANGELOG.md 查看详细的发行说明和最新更新。

编辑器集成

Cursor/VCode等编辑器可以通过在设置中添加以下内容来使用SSE端点:

{
  "mcpServers": {
    "mymcp-sse": { "url": "http://0.0.0.0:8000/sse" }
  }
}

演示截图