Backstage AI 助手插件

Backstage AI 助手插件提供两种方式将 AI 集成到 Backstage 开发者门户:嵌入式聊天小部件和独立 MCP 服务器,支持多 LLM 提供商和 Backstage 工具集。

  • by oopsmyops
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 oopsmyops/backstage-mcp

使用说明

后台mcp

将您的Backstage开发人员门户带到人工智能——两种方式:

  • 🤖 后台助手插件 --一个门户内AI聊天小部件(前端+后端Backstage插件),具有多提供商LLM支持、UI模型选择器和完整的目录/脚手架/TechDocs工具集。
  • 🔌 独立MCP服务器 --一个约550 KB的文件,将相同的Backstage工具暴露给外部MCP客户端(Claude、Cursor、VS Code、Windsurf),而无需更改您的Backstage实例。

🤖 后台助手插件

直接嵌入到Backstage UI中的AI助手。

包 角色
@oopsmyops/backstage-plugin-assistant 前端 浮动聊天小部件+模型选择器
@oopsmyops/backstage-plugin-assistant-backend 后端 LLM编排+后台工具

亮点

  • 本土的 亚马逊基石 和 Azure AI Foundry,加上任何 OpenAI兼容 API(无代理),具有有序的回退链-全部通过 Vercel AI SDK.
  • 从UI中选择模型;每个浏览器都会记住该选择。
  • 流式响应、结构化结果卡、内部实体链接和引导式脚手架运行时,会显示一个用于VCS令牌的OAuth弹出窗口。

安装插件

发布到 npmjs.org 作为公共包--没有令牌或注册表配置 需要安装。

yarn --cwd packages/app add @oopsmyops/backstage-plugin-assistant
yarn --cwd packages/backend add @oopsmyops/backstage-plugin-assistant-backend
// packages/backend/src/index.ts
backend.add(import('@oopsmyops/backstage-plugin-assistant-backend'));

// packages/app/src/App.tsx — new frontend system
import assistantPlugin from '@oopsmyops/backstage-plugin-assistant';
// add `assistantPlugin` to createApp({ features: [...] })

配置模型

assistant:
  llm:
    fallback: [groq-llama]          # tried, in order, if the selected model fails
    models:
      - id: claude-bedrock
        label: Claude Sonnet (Bedrock)
        provider: bedrock
        model: anthropic.claude-sonnet-4-6
        region: us-east-1
        apiKey: ${AWS_BEARER_TOKEN_BEDROCK}   # optional; omit to use the AWS credential chain
        default: true
      - id: gpt-azure
        label: GPT-5.1 (Azure AI Foundry)
        provider: azure
        model: gpt-5.1                         # Azure deployment name
        resourceName: my-foundry-resource
        apiKey: ${AZURE_OPENAI_API_KEY}
      - id: groq-llama
        label: Llama 3.3 70B (Groq)
        provider: openai-compatible
        model: llama-3.3-70b-versatile
        baseUrl: https://api.groq.com/openai/v1
        apiKey: ${GROQ_API_KEY}

📖 完整文档: 前端插件README · 后端插件README


🔌 独立MCP服务器

一个单文件MCP服务器,提供11个后台工具(目录搜索、实体 详细信息、API规范、脚手架工模板+任务、TechDocs)提供给任何MCP客户。 无需安装Backstage——它通过Backstage的REST API连接。

# Download the latest binary and run it
curl -LO https://github.com/oopsmyops/backstage-mcp/releases/latest/download/backstage-mcp.mjs
BACKSTAGE_BASE_URL=https://your-backstage.example.com \
BACKSTAGE_TOKEN=your-token \
node backstage-mcp.mjs

改为从源代码构建: npm install && npm run build → dist/backstage-mcp.mjs. 需要代币吗?使用静态服务帐户令牌(推荐)或来宾令牌。

连接MCP客户端 (克劳德桌面、光标、VS代码、Windsurf):

{
  "mcpServers": {
    "backstage-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/backstage-mcp.mjs"],
      "env": {
        "BACKSTAGE_BASE_URL": "https://your-backstage.example.com",
        "BACKSTAGE_TOKEN": "your-token"
      }
    }
  }
}

对于远程/共享使用,请使用 MCP_TRANSPORT=http 并将客户指向 http://localhost:3000/mcp (健康: /health).

环境变量

变量 必填 默认 描述
BACKSTAGE_BASE_URL yes -- Backstage实例的基本URL
BACKSTAGE_TOKEN yes -- 用于身份验证的承载令牌
MCP_TRANSPORT 没有 stdio stdio 或 http
PORT 没有 3000 HTTP端口(当 MCP_TRANSPORT=http)
HOST 没有 127.0.0.1 HTTP主机(当 MCP_TRANSPORT=http)
CACHE_TTL_SECONDS 没有 60 实体缓存TTL(秒)(0=禁用)
REQUEST_TIMEOUT_MS 没有 10000 后台API请求超时

贡献

看 贡献.md.

许可证

麻省理工学院