Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for Runframe incident management covering incidents, on-call, postmortems, and more.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
RUNFRAME_API_KEY, RUNFRAME_API_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"runframe": {
"command": "npx",
"args": [
"-y",
"@runframe/mcp-server"
],
"env": {
"RUNFRAME_API_KEY": "ใส่ค่าของคุณ",
"RUNFRAME_API_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add runframe --env RUNFRAME_API_KEY='ใส่ค่าของคุณ' --env RUNFRAME_API_URL='ใส่ค่าของคุณ' -- npx -y @runframe/mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"runframe": {
"command": "npx",
"args": [
"-y",
"@runframe/mcp-server"
],
"env": {
"RUNFRAME_API_KEY": "ใส่ค่าของคุณ",
"RUNFRAME_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"runframe": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@runframe/mcp-server"
],
"env": {
"RUNFRAME_API_KEY": "ใส่ค่าของคุณ",
"RUNFRAME_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
RUNFRAME_API_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub runframe ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: RUNFRAME_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.5) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, LickityClick
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
[Runframe](https://runframe.io) 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+.
npx, no server to deploy for local useYour 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.
Ask your agent:
runframe_acknowledge_incidentrunframe_get_current_oncallrunframe_create_postmortemrunframe_page_someonerunframe_list_incidents with severity filterrunframe_find_userGet your API key from settings inside Runframe.io, then add to your agent:
Claude Code:
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):
{
"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:
npx @runframe/mcp-server --setup
| Variable | Required | Default | Description |
|---|---|---|---|
RUNFRAME_API_KEY | Yes | — | API key (starts with rf_) |
RUNFRAME_API_URL | No | https://runframe.io | API base URL |
MCP_ACCESS_TOKEN | HTTP only | — | Bearer token for HTTP transport. Comma-separated for rotation (new_token,old_token). |
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:
RUNFRAME_API_KEY=rf_... \
MCP_ACCESS_TOKEN=your_token \ npx @runframe/mcp-server --transport http --port 3100 --host 127.0.0.1
Responsibility is split across three boundaries:
RUNFRAME_API_KEY.The server stores nothing. It is a pass-through to the Runframe API.
| Tool | Scopes | Description |
|---|---|---|
runframe_list_incidents | incidents:read | List incidents with filters and pagination |
runframe_get_incident | incidents:read | Get incident by ID or number |
runframe_create_incident | incidents:write | Create an incident |
runframe_update_incident | incidents:write | Update title, description, severity, or assignment |
runframe_change_incident_status | incidents:write | Move to a new status (new, investigating, fixing, monitoring, resolved, closed) |
runframe_acknowledge_incident | incidents:write | Acknowledge (auto-assigns, tracks SLA) |
runframe_add_incident_event | incidents:write | Add a timeline entry |
runframe_escalate_incident | incidents:write | Escalate to the next policy level |
runframe_page_someone | incidents:write | Page a responder via Slack or email |
| Tool | Scopes | Description |
|---|---|---|
runframe_get_current_oncall | oncall:read | Who is on call right now |
| Tool | Scopes | Description |
|---|---|---|
runframe_list_services | services:read | List services |
runframe_get_service | services:read | Get service details |
| Tool | Scopes | Description |
|---|---|---|
runframe_create_postmortem | postmortems:write | Create a postmortem |
runframe_get_postmortem | postmortems:read | Get postmortem for an incident |
| Tool | Scopes | Description |
|---|---|---|
runframe_list_teams | teams:read | List teams |
runframe_get_escalation_policy | oncall:read | Get escalation policy for a severity level |
| Tool | Scopes | Description |
|---|---|---|
runframe_find_user | users:read | Search users by name or email, with optional inactive-user support for historical lookups |
This MCP server follows the public Runframe direct API contract.
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.INC-2026-001 in path parameters.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.title must be 1-200 chars, description maxes at 10000 chars, and service_ids allows at most 50 items.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.incident_number and snake_case nested fields like users_affected, owner_email, and time_to_acknowledge.runframe_find_user to resolve a person name to an email address before filtering incidents by assigned_to or resolved_by.include_inactive=true on runframe_find_user when you need to resolve former employees in historical incident queries.is_active=true or is_active=false on runframe_find_user when you need an explicit V1 active-state filter.runframe_list_teams with search to resolve the exact team_name before filtering incidents.The Docker image runs HTTP transport by default on port 3100:
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
HTTP mode is meant for private networks. If you put it on the internet:
MCP_ACCESS_TOKEN regularly. Pass old and new tokens comma-separated for zero-downtime swaps.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.
MCP_ACCESS_TOKEN accepts comma-separated tokens:
MCP_ACCESS_TOKEN=new_token,old_tokennew_tokenMCP_ACCESS_TOKEN=new_tokenIssues and PRs welcome at github.com/runframe/runframe-mcp-server.