Runframe Mcp Server

io.github.runframe由 GitHub 账号 runframe 发布v0.1.5更新于 Oct 24, 2026

MCP server for Runframe incident management covering incidents, on-call, postmortems, and more.

概览

AI 生成的概览

Runframe MCP 服务器让 AI 助手在编辑器内管理事件响应、值班查询、服务、复盘、团队和人员查找。

可以做什么
列出、读取、创建和更新事件,变更状态、确认事件、添加时间线记录、升级事件,并通过 Slack 或邮件呼叫响应人。查询当前值班人员,并按严重级别读取升级策略。列出服务并按公开服务键获取服务详情。创建复盘并获取某个事件的复盘。列出团队,按姓名或邮箱搜索用户,包括用于历史查询的非活跃用户。
适用场景
适合已使用 Runframe 的工程团队,希望不离开 IDE 或智能体就能分诊、确认、升级或记录事件,并查看值班安排。也适合起草复盘,以及在筛选事件前解析人员或团队名称。
运行要求
通过 npx 以 stdio 本地进程运行,需要 Node.js 20+。需要 Runframe 账户和 API 密钥,通过 RUNFRAME_API_KEY 提供(以 rf_ 开头);RUNFRAME_API_URL 可覆盖 API 基础地址。HTTP 传输模式还需 MCP_ACCESS_TOKEN。需要能访问 Runframe API 的网络。
安装前请注意
API 密钥按其权限范围授予访问权,写入类工具可创建和修改事件、升级事件、通过 Slack 或邮件呼叫人员以及创建复盘。呼叫响应人会通知真实人员。服务器无状态,会把数据传给 Runframe API。HTTP 模式不提供 TLS,仅适合私有网络;请定期轮换 MCP_ACCESS_TOKEN 并妥善保管 API 密钥。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Runframe Mcp Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

runframe-mcp-server

[CI] [npm] [License: MIT] [Node 20+]

Runframe is the complete incident lifecycle platform for engineering teams, covering incident response, on-call, and status pages. This MCP server lets you manage those workflows from your IDE or AI agent.

17 tools covering incidents, on-call, services, postmortems, teams, and people lookup. Requires Node.js 20+.

Why Use This

  • Stay in your editor — acknowledge incidents, page responders, and write postmortems without switching to a browser
  • Let agents handle the routine — AI agents can triage, escalate, and update incidents autonomously using scoped API keys
  • Zero infrastructure — runs via npx, no server to deploy for local use

How It Works

Your IDE / Agent    ↓ (stdio or HTTP)MCP Server (this package)    ↓ (HTTPS, scoped API key)Runframe API

The server is stateless. It translates MCP tool calls into Runframe API requests, scoped by your API key permissions. No data is stored locally.

Examples

Ask your agent:

  • "Acknowledge incident INC-2026-001" → calls runframe_acknowledge_incident
  • "Who is on call right now?" → calls runframe_get_current_oncall
  • "Create a postmortem for the database outage" → calls runframe_create_postmortem
  • "Page the backend team lead about the API latency spike" → calls runframe_page_someone
  • "List all open SEV1 incidents" → calls runframe_list_incidents with severity filter
  • "Find Alex so I can check their open incidents" → calls runframe_find_user

Install

Get your API key from settings inside Runframe.io, then add to your agent:

Claude Code:

bash
claude mcp add runframe -e RUNFRAME_API_KEY=rf_your_key_here -- npx -y @runframe/mcp-server

Cursor (~/.cursor/mcp.json) · VS Code (.vscode/mcp.json) · Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "runframe": {      "command": "npx",      "args": ["-y", "@runframe/mcp-server"],      "env": { "RUNFRAME_API_KEY": "rf_your_key_here" }    }  }}

Other MCP clients: Add the JSON config above to your client's MCP config file.

Interactive setup wizard:

bash
npx @runframe/mcp-server --setup

Environment Variables

VariableRequiredDefaultDescription
RUNFRAME_API_KEYYes—API key (starts with rf_)
RUNFRAME_API_URLNohttps://runframe.ioAPI base URL
MCP_ACCESS_TOKENHTTP only—Bearer token for HTTP transport. Comma-separated for rotation (new_token,old_token).

Transports

stdio (default) — used by MCP clients like Claude Code and Cursor. No network exposure. This is what the install commands above configure.

Streamable HTTP — for containerized or remote deployments. Requires MCP_ACCESS_TOKEN for bearer auth:

bash
RUNFRAME_API_KEY=rf_... \  MCP_ACCESS_TOKEN=your_token \  npx @runframe/mcp-server --transport http --port 3100 --host 127.0.0.1

Security Model

Responsibility is split across three boundaries:

  • Runframe API handles authorization and scopes via RUNFRAME_API_KEY.
  • This MCP server handles process isolation (stdio) and bearer-token validation (HTTP). It also enforces method filtering, Host/Origin checks on localhost, declared Content-Length validation (1 MB limit), 8 KB header limit, and 15s upstream timeout.
  • Your reverse proxy handles TLS, rate limiting, and streamed-body enforcement if you expose HTTP mode to a network.

The server stores nothing. It is a pass-through to the Runframe API.

Tools

Incidents (9)

ToolScopesDescription
runframe_list_incidentsincidents:readList incidents with filters and pagination
runframe_get_incidentincidents:readGet incident by ID or number
runframe_create_incidentincidents:writeCreate an incident
runframe_update_incidentincidents:writeUpdate title, description, severity, or assignment
runframe_change_incident_statusincidents:writeMove to a new status (new, investigating, fixing, monitoring, resolved, closed)
runframe_acknowledge_incidentincidents:writeAcknowledge (auto-assigns, tracks SLA)
runframe_add_incident_eventincidents:writeAdd a timeline entry
runframe_escalate_incidentincidents:writeEscalate to the next policy level
runframe_page_someoneincidents:writePage a responder via Slack or email

On-call (1)

ToolScopesDescription
runframe_get_current_oncalloncall:readWho is on call right now

Services (2)

ToolScopesDescription
runframe_list_servicesservices:readList services
runframe_get_serviceservices:readGet service details

Postmortems (2)

ToolScopesDescription
runframe_create_postmortempostmortems:writeCreate a postmortem
runframe_get_postmortempostmortems:readGet postmortem for an incident

Teams (2)

ToolScopesDescription
runframe_list_teamsteams:readList teams
runframe_get_escalation_policyoncall:readGet escalation policy for a severity level

Users (1)

ToolScopesDescription
runframe_find_userusers:readSearch users by name or email, with optional inactive-user support for historical lookups

Direct API alignment

This MCP server follows the public Runframe direct API contract.

  • Incident create requires service_ids containing public service keys like svc_K7M4Q9TZ2H, not internal UUIDs.
  • runframe_get_service now looks up services by public service_key, not UUID.
  • Incident tools now follow the latest V1 contract: use incident numbers like INC-2026-001 in path parameters.
  • Incident update and list filters now use the latest public identifiers where V1 does: assignee/resolver email and team_name.
  • runframe_create_incident accepts an optional idempotency_key, which is forwarded as the Idempotency-Key header for retry-safe creates.
  • runframe_create_incident defaults severity to SEV2 when omitted, matching the V1 API.
  • Incident create now mirrors the V1 API limits: title must be 1-200 chars, description maxes at 10000 chars, and service_ids allows at most 50 items.
  • Incident creation depends on valid SLA configuration for the requested severity. If acknowledge or closure deadlines are missing, the API rejects the create.
  • Use runframe_list_services to discover valid service_key values before creating incidents.
  • runframe_page_someone now uses the latest V1 delivery contract: email, channels, and optional message.
  • Postmortem tools now follow the latest V1 contract: use incident_number and snake_case nested fields like users_affected, owner_email, and time_to_acknowledge.
  • Use runframe_find_user to resolve a person name to an email address before filtering incidents by assigned_to or resolved_by.
  • Set include_inactive=true on runframe_find_user when you need to resolve former employees in historical incident queries.
  • Set is_active=true or is_active=false on runframe_find_user when you need an explicit V1 active-state filter.
  • Use runframe_list_teams with search to resolve the exact team_name before filtering incidents.

Docker

The Docker image runs HTTP transport by default on port 3100:

bash
docker build -t runframe-mcp-server .docker run -e RUNFRAME_API_KEY=rf_... -e MCP_ACCESS_TOKEN=your_token -p 3100:3100 runframe-mcp-server

Deploying HTTP Mode

HTTP mode is meant for private networks. If you put it on the internet:

  • Run behind TLS (nginx, Caddy, cloud LB). This server does not do TLS.
  • Use a reverse proxy for rate limiting and request buffering.
  • Prefer private subnets or VPNs over public exposure.
  • Rotate MCP_ACCESS_TOKEN regularly. Pass old and new tokens comma-separated for zero-downtime swaps.

Rate limiting

The Runframe API enforces rate limits server-side. If you hit a limit, tools return a 429 error with a retry hint. For HTTP transport deployments, your reverse proxy can add additional request-level throttling.

Token rotation

MCP_ACCESS_TOKEN accepts comma-separated tokens:

  1. Set MCP_ACCESS_TOKEN=new_token,old_token
  2. Update clients to new_token
  3. Drop the old one: MCP_ACCESS_TOKEN=new_token

Limitations

  • Read-only for schedules — you can query on-call and escalation policies but not modify them via MCP
  • Requires a Runframe account and API key

Contributing

Issues and PRs welcome at github.com/runframe/runframe-mcp-server.

License

MIT — Runframe · npm

来源:README.md,提交 f7d76b6

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.5最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分