模型上下文协议服务器

Shoulders MCP Server是一个用于内部开发者平台的模型上下文协议服务器,直接与Kubernetes API交互,管理workspace、application和infrastructure的生命周期操作,并集成了Loki/Tempo用于日志和追踪。

  • by jherreros
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jherreros/shoulders-mcp-server

使用说明

肩部MCP服务器

肩部内部开发平台的模型上下文协议(MCP)服务器。它直接与Kubernetes API进行工作空间、应用程序和基础设施生命周期操作,并与Loki/Tempo集成以进行日志和跟踪。

快速开始

需要Node.js 18.17+。

从独立仓库通过npx运行(从monorepo同步):

npx github:jherreros/shoulders-mcp-server

MCP客户端配置示例:

{
  "mcpServers": {
    "shoulders": {
      "command": "npx",
      "args": ["github:jherreros/shoulders-mcp-server"]
    }
  }
}

在本地构建和运行:

cd /Users/juan/source/shoulders/shoulders-mcp-server
npm install
npm run build
node dist/server.js

工具

工作区

  • create_workspace:创建新工作区。
  • list_workspaces:列出所有工作区。
  • use_workspace:设置活动工作区。
  • current_workspace:阅读活动工作区。
  • delete_workspace:删除工作区。

应用程序

  • deploy_app:创建或更新Web应用程序,包括内部服务模式、env/envFrom、HTTP探测、资源和安全上下文。
  • list_apps:列出Web应用程序。
  • get_app_status:获取Web应用程序清单。
  • delete_app:删除Web应用程序。

工作量

  • deploy_workload:创建或更新worker、一次性作业或CronJob。
  • list_workloads:列出工作量。
  • delete_workload:删除工作负载。

基础设施

  • add_database:使用PostgreSQL数据库、额外数据库、Secret和init SQL选项创建StateStore。
  • add_bucket:通过StateStore创建Garage S3存储桶。
  • add_stream:创建事件流。
  • list_infra:列出StateStore/EventStream资源。
  • delete_infra:删除StateStore/EventStream资源。

平台与集群

  • get_platform_status:集群/平台运行状况(Flux、Crossplane、Gateway)。
  • list_clusters:列出本地vind集群。
  • use_cluster:将上下文切换到vind集群。

可观测性

  • get_app_logs:通过Loki获取最近的日志;回落到 shoulders logs 如果洛基不可用。
  • get_trace:从Tempo获取ID跟踪。

资源

服务器公开跨平面模式和示例清单作为MCP资源:

  • shoulders://schemas/workspace
  • shoulders://schemas/webapplication
  • shoulders://schemas/workload
  • shoulders://schemas/state-store
  • shoulders://schemas/event-stream
  • shoulders://examples/workspace
  • shoulders://examples/webapplication
  • shoulders://examples/workload
  • shoulders://examples/state-store
  • shoulders://examples/event-stream

环境变量

  • SHOULDERS_REPO_ROOT:肩部仓库的路径(用于解析模式/示例)。
  • SHOULDERS_OBSERVABILITY_NAMESPACE:可观察性命名空间(默认 observability).
  • SHOULDERS_LOKI_SERVICE:Loki服务名称(默认 loki).
  • SHOULDERS_TEMPO_SERVICE:Tempo服务名称(默认 tempo).
  • SHOULDERS_LOKI_REMOTE_PORT:Loki服务端口(默认 3100).
  • SHOULDERS_TEMPO_REMOTE_PORT:Tempo服务端口(默认 3100).
  • SHOULDERS_MCP_PORT_FORWARD_TIMEOUT_MS:端口转发超时(毫秒)(默认值 15000).
  • KUBECTL_BIN:路径 kubectl (默认值 kubectl).
  • KUBECONFIG:将Kubeconfig设置为目标。

备注

  • get_trace 需要跟踪ID。对于跟踪搜索/发现,请将Grafana Explore与Tempo数据源一起使用。
  • get_app_logs 在可用时使用Loki;回退流模式在8秒后被截断。