项目简介

Backstage MCP 服务端是一个强大的应用后端,它使得大型语言模型(LLM)能够通过一个标准化的协议与Backstage软件目录进行交互。该服务端将Backstage Catalog API中的核心功能抽象为一系列可调用的工具,让LLM能够以自然语言指令的方式查询、管理和操作Backstage中的实体和位置信息。

主要功能点

  • 全面Backstage目录API覆盖: 将Backstage Catalog API中的所有主要端点实现为MCP工具,包括实体管理(查询、获取详情、刷新、删除)、位置管理(获取、添加、删除)以及实体验证等。
  • 动态工具加载: 能够自动发现并注册代码库中的工具,简化工具扩展和维护。
  • 类型安全与验证: 使用TypeScript开发,并结合Zod进行严格的参数模式验证,确保数据输入的准确性和安全性。
  • 生产级可靠性: 具备完善的错误处理、日志记录和健康检查机制,旨在提供稳定、可靠的服务。

安装步骤

  1. 准备环境: 确保您已安装Node.js 18+和Yarn包管理器,并且可以访问一个运行中的Backstage实例。
  2. 克隆仓库: 打开终端,运行以下命令克隆项目代码:
    git clone https://github.com/Coderrob/backstage-mcp-server.git
    cd backstage-mcp-server
  3. 安装依赖: 在项目目录下运行:
    yarn install
  4. 构建项目: 运行构建命令生成可执行文件:
    yarn build

服务器配置

该MCP服务器需要配置Backstage实例的API访问凭证。这些凭证通过环境变量提供。当您的MCP客户端启动此MCP服务器时,需要将这些环境变量传递给服务器进程。

以下是一个MCP客户端配置此Backstage MCP服务器的示例: 您的MCP客户端通常会有一个JSON格式的配置,其中包含 MCP 服务器的启动命令 (command)、参数 (args) 和环境变量 (env)。请根据您的MCP客户端的实际配置方式,设置以下对应信息:

{
  "mcpServers": {
    "backstage": {
      "command": "node", // 用于启动Backstage MCP服务器的命令
      "args": ["dist/index.js"], // 启动服务器时执行的文件路径,通常指向构建后的JavaScript入口文件
      "env": {
        "BACKSTAGE_BASE_URL": "https://your-backstage-instance.com", // **必填**: 您的Backstage实例的基础URL,例如 "https://backstage.example.com"
        "BACKSTAGE_TOKEN": "your-backstage-token" // **认证方式一**: Bearer令牌,用于API访问
        // **认证方式二**: OAuth凭据 (如果使用,请配置以下三项):
        // "BACKSTAGE_CLIENT_ID": "your-client-id",
        // "BACKSTAGE_CLIENT_SECRET": "your-client-secret",
        // "BACKSTAGE_TOKEN_URL": "https://your-token-url.com",
        // **认证方式三**: API Key认证 (如果使用,请配置以下一项):
        // "BACKSTAGE_API_KEY": "your-api-key",
        // **认证方式四**: 服务账户密钥 (如果使用,请配置以下一项):
        // "BACKSTAGE_SERVICE_ACCOUNT_KEY": "your-service-account-key"
      }
    }
  }
}

请注意

  • 'BACKSTAGE_BASE_URL' 是必填项,它指示MCP服务器连接哪个Backstage实例。
  • 认证方式任选其一。如果同时配置了多种,优先级从高到低为 'BACKSTAGE_TOKEN' > OAuth凭据 > 'BACKSTAGE_API_KEY' > 'BACKSTAGE_SERVICE_ACCOUNT_KEY'。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行 'yarn start'。服务器将通过标准输入/输出(stdin/stdout)监听MCP协议消息。
  2. 通过MCP客户端连接: 配置您的MCP客户端(参考上文的配置示例)以启动并连接此Backstage MCP服务器。
  3. LLM交互: 一旦MCP客户端与此服务器成功连接,您的大型语言模型即可通过自然语言指令与Backstage目录进行交互。例如:
    • 用户可以说: "Show me all the services in the catalog" (显示目录中的所有服务) LLM将智能地调用 'get_entities' 工具,并附带适当的筛选条件来获取服务列表。
    • 用户可以询问: "What's the location for the user-service entity?" (user-service实体的所在地是什么?) LLM将调用 'get_location_by_entity' 工具获取与指定实体关联的位置信息。

信息

分类

AI与计算