项目简介

MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在为大型语言模型 (LLM) 客户端提供标准化的上下文信息和功能。它允许 LLM 调用外部工具、访问数据资源,并利用预定义的提示模板进行交互。

主要功能点

  • 工具管理与执行: 托管和管理各种外部工具,支持同步和异步命令执行、脚本、以及与 Azure DevOps Repos、Kusto 等服务的交互。工具可以通过代码或 YAML 文件定义。
  • 上下文与环境配置: 通过 .env 文件和 YAML 配置文件加载环境参数、仓库信息等上下文数据,供工具使用或提供给 LLM。
  • 提示模板定义: 支持通过 YAML 文件定义和管理 Prompt 模板, enabling customizable LLM interaction patterns.
  • 灵活的传输协议: 虽然核心是 JSON-RPC 协议通信,但服务器可以支持多种传输方式,例如 Server-Sent Events (SSE),以便与不同的 LLM 客户端集成。
  • 插件化架构: 核心功能与具体工具实现分离,易于扩展新的工具和功能。

安装步骤

  1. 克隆 GitHub 仓库到本地。
  2. 确保您的系统安装了 Python (推荐 3.8+) 和 pip。
  3. 根据您的操作系统,运行安装脚本:
    • 在 Linux/macOS 上打开终端,进入项目根目录,运行 'scripts/install.sh'。
    • 在 Windows 上打开 PowerShell,进入项目根目录,运行 'scripts\install.ps1'。
  4. 安装脚本将处理 Python 依赖。您可能还需要安装其他外部依赖,例如 Azure CLI (用于 Azure Repo 工具)、兼容的浏览器和驱动 (用于浏览器工具) 等,具体取决于您计划使用的工具。

服务器配置

MCP Server 的配置主要通过项目根目录下的 '.env' 文件以及 'server/' 目录(或 '.private/'、'PRIVATE_TOOL_ROOT' 定义的目录)下的 'tools.yaml' 和 'prompts.yaml' 文件进行。

  • '.env' 文件: 用于配置环境参数,例如:
    • 'GIT_ROOT': Git 仓库根目录路径。
    • 'WORKSPACE_FOLDER': 工作区文件夹路径。
    • 'PRIVATE_TOOL_ROOT': 私有工具和配置的根目录路径。
    • 'AZREPO_ORG', 'AZREPO_PROJECT', 'AZREPO_REPO', 'AZREPO_BRANCH': Azure DevOps 仓库的默认参数。
    • 'KUSTO_CLUSTER_URL', 'KUSTO_DATABASE', 'KUSTO_APP_ID', 'KUSTO_APP_KEY', 'KUSTO_TENANT_ID': Kusto 连接参数。
  • 'tools.yaml': 定义和配置可用的工具,包括基于脚本、命令或代码的工具。
  • 'prompts.yaml': 定义 Prompt 模板。

MCP 客户端配置: 要让 MCP 客户端(如 VS Code 或 Cursor 扩展)连接到此服务器,通常需要在客户端的设置中添加服务器信息。配置是一个 JSON 对象,包含服务器的名称和连接 URL。例如:

  • 'server name': 客户端中显示的服务名称,例如 "MyLocalMCP"。
  • 'url': 服务器的地址,例如 'http://127.0.0.1:8000/sse' (如果服务器运行在本地 8000 端口并使用 SSE 传输协议)。具体的 URL 和端口取决于服务器实际启动时的配置。

基本使用方法

MCP Server 通常作为后台服务运行,由 LLM 客户端与之交互。

  1. 启动服务器: 根据项目文档找到服务器的启动命令(通常在 'server/' 目录或相关脚本中)。在终端中运行该命令。
  2. 配置客户端: 在您的 LLM 客户端(如集成了 MCP 扩展的 IDE)中,按照上述“MCP 客户端配置”说明,填写服务器的名称和 URL。
  3. 通过 LLM 交互: 在 LLM 客户端中与 LLM 进行对话或使用其功能。当 LLM 需要执行外部操作、访问环境信息或使用特定 Prompt 模板时,客户端将通过 MCP 协议向服务器发送请求。
  4. 查看结果: 服务器执行工具或处理请求后,将结果返回给客户端,由 LLM 客户端展示或供 LLM 进一步处理。

信息

分类

AI与计算