ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

ops-brain

โดย TheK3nsaiรุ่น 6.3.2i★ –iรันบนเครื่อง
ชื่อใน registryio.github.TheK3nsai/ops-brain

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Self-hosted team bus for AI agents: cross-machine handoffs, check-in, and shared gotchas.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): Streamable HTTP
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: DATABASE_URL, OPS_BRAIN_TRANSPORT, OPS_BRAIN_AUTH_TOKEN, OPS_BRAIN_AGENT_TOKENS

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: DATABASE_URL, OPS_BRAIN_TRANSPORT, OPS_BRAIN_AUTH_TOKEN, OPS_BRAIN_AGENT_TOKENS, OPS_BRAIN_ALLOWED_HOSTS, OPS_BRAIN_EMBEDDINGS_ENABLED

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • Dockerติดตั้ง Docker ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "ops-brain": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URL",
        "-e",
        "OPS_BRAIN_TRANSPORT",
        "-e",
        "OPS_BRAIN_AUTH_TOKEN",
        "-e",
        "OPS_BRAIN_AGENT_TOKENS",
        "-e",
        "OPS_BRAIN_ALLOWED_HOSTS",
        "-e",
        "OPS_BRAIN_EMBEDDINGS_ENABLED",
        "ghcr.io/thek3nsai/ops-brain:v6.3.2"
      ],
      "env": {
        "DATABASE_URL": "ใส่ค่าของคุณ",
        "OPS_BRAIN_TRANSPORT": "ใส่ค่าของคุณ",
        "OPS_BRAIN_AUTH_TOKEN": "ใส่ค่าของคุณ",
        "OPS_BRAIN_AGENT_TOKENS": "ใส่ค่าของคุณ",
        "OPS_BRAIN_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "OPS_BRAIN_EMBEDDINGS_ENABLED": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add ops-brain --env DATABASE_URL='ใส่ค่าของคุณ' --env OPS_BRAIN_TRANSPORT='ใส่ค่าของคุณ' --env OPS_BRAIN_AUTH_TOKEN='ใส่ค่าของคุณ' --env OPS_BRAIN_AGENT_TOKENS='ใส่ค่าของคุณ' --env OPS_BRAIN_ALLOWED_HOSTS='ใส่ค่าของคุณ' --env OPS_BRAIN_EMBEDDINGS_ENABLED='ใส่ค่าของคุณ' -- docker run -i --rm -e DATABASE_URL -e OPS_BRAIN_TRANSPORT -e OPS_BRAIN_AUTH_TOKEN -e OPS_BRAIN_AGENT_TOKENS -e OPS_BRAIN_ALLOWED_HOSTS -e OPS_BRAIN_EMBEDDINGS_ENABLED ghcr.io/thek3nsai/ops-brain:v6.3.2

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "ops-brain": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URL",
        "-e",
        "OPS_BRAIN_TRANSPORT",
        "-e",
        "OPS_BRAIN_AUTH_TOKEN",
        "-e",
        "OPS_BRAIN_AGENT_TOKENS",
        "-e",
        "OPS_BRAIN_ALLOWED_HOSTS",
        "-e",
        "OPS_BRAIN_EMBEDDINGS_ENABLED",
        "ghcr.io/thek3nsai/ops-brain:v6.3.2"
      ],
      "env": {
        "DATABASE_URL": "ใส่ค่าของคุณ",
        "OPS_BRAIN_TRANSPORT": "ใส่ค่าของคุณ",
        "OPS_BRAIN_AUTH_TOKEN": "ใส่ค่าของคุณ",
        "OPS_BRAIN_AGENT_TOKENS": "ใส่ค่าของคุณ",
        "OPS_BRAIN_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "OPS_BRAIN_EMBEDDINGS_ENABLED": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "ops-brain": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URL",
        "-e",
        "OPS_BRAIN_TRANSPORT",
        "-e",
        "OPS_BRAIN_AUTH_TOKEN",
        "-e",
        "OPS_BRAIN_AGENT_TOKENS",
        "-e",
        "OPS_BRAIN_ALLOWED_HOSTS",
        "-e",
        "OPS_BRAIN_EMBEDDINGS_ENABLED",
        "ghcr.io/thek3nsai/ops-brain:v6.3.2"
      ],
      "env": {
        "DATABASE_URL": "ใส่ค่าของคุณ",
        "OPS_BRAIN_TRANSPORT": "ใส่ค่าของคุณ",
        "OPS_BRAIN_AUTH_TOKEN": "ใส่ค่าของคุณ",
        "OPS_BRAIN_AGENT_TOKENS": "ใส่ค่าของคุณ",
        "OPS_BRAIN_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "OPS_BRAIN_EMBEDDINGS_ENABLED": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • DATABASE_URL ความลับ จำเป็น env
    PostgreSQL connection string. The database needs the pgvector extension installed.
  • OPS_BRAIN_TRANSPORT จำเป็น env
    Serve MCP over streamable HTTP at /mcp.
  • OPS_BRAIN_AUTH_TOKEN ความลับ จำเป็น env
    Main bearer (operator break-glass, 32+ chars). Required for HTTP; keep it on the server.
  • OPS_BRAIN_AGENT_TOKENS ความลับ env
    JSON array of identity-bound agent tokens, e.g. [{"token":"...","from_agent":"Claude-Laptop"}]. See docs/agent-tokens.md.
  • OPS_BRAIN_ALLOWED_HOSTS env
    Comma-separated allowed Host headers. Set your public hostname when behind a reverse proxy; defaults to loopback.
  • OPS_BRAIN_EMBEDDINGS_ENABLED env
    Semantic search via an OpenAI-compatible embedding endpoint (OPS_BRAIN_EMBEDDING_URL). Full-text search works without it.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub TheK3nsai ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32655 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 71% ของอีก 32655 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32655 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

ops-brain ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: DATABASE_URL, OPS_BRAIN_TRANSPORT, OPS_BRAIN_AUTH_TOKEN, OPS_BRAIN_AGENT_TOKENS

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (6.3.2) เข้า registry 15 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, SuperCollider

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวานซืน
ติดตั้ง

SuperCollider

โดย Tok

Make sound with SuperCollider: synths, drums, chords, melodies and soundscapes over OSC.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

ops-brain

A small team bus for AI agents. ops-brain is an MCP server that lets agents across machines and vendors hand work to each other, reply in thread, and share a small set of cross-agent gotchas — state that has to outlive a session, cross a machine, or cross an agent vendor. Claude Code, Codex, Grok CLI, Grok Bot and Antigravity CLI connect over the same transport. See the client compatibility guide for verification status and setup.

ops-brain is not a source of truth. Inventory belongs in your config management, tickets and incidents in your ticketing system, monitoring in your monitoring stack. Reach for the bus only when an agent genuinely needs the rest of the team.

flowchart LR

subgraph hostA["Host A"] CA["Claude Code Claude-Laptop"] end subgraph hostB["Host B"] CB["Codex CLI Codex-Buildbox"] end M["cron / CI / scripts (machine callers)"] O["Operator daily / weekly briefing"]

CA -- "MCP /mcp per-agent token" --> OB CB -- "MCP /mcp per-agent token" --> OB M -- "REST /api/handoff /api/pending" --> OB OB -- "REST /api/briefing" --> O

OB[" ops-brain handoffs · knowledge · check-in"] --> PG[("PostgreSQL 18

  • pgvector")] OB -. "optional" .-> E["Embedding endpoint

(e.g. Ollama)"]

Who this is for

Solo operators and small, trusted teams running several AI agents across several machines or vendors, where those sessions can't otherwise reach each other. If you run one agent on one box, you don't need this.

A handoff, end to end

  1. Claude-Laptop finishes a change that needs a build on another host and calls create_handoff with to_agent: "Codex-Buildbox", a title, and a markdown body.
  2. Codex-Buildbox calls check_in when ready to pick up work and sees the open action handoff.
  3. It calls accept_handoff, does the work, then complete_handoff with the commit_hash.
  4. It replies with create_handoff and in_reply_to, so Claude-Laptop sees the answer via list_replies_to_me.
  5. Once the commit lands on main, whoever integrates it calls mark_merged.

Workflow conventions (reply in thread, verify before complying, action vs. notify) ship inside the server's MCP instructions, so every connected agent gets the same rules without per-host setup. A rule that is true only of your team — a release process, a named deployer — does not belong in that text. Set OPS_BRAIN_INSTRUCTIONS_EXTRA to one line and the server appends it for your deployment only.

Quick start

No clone required. Grab the standalone compose file, set a token, and run it. The bundled PostgreSQL has pgvector preinstalled. Embeddings start disabled (full-text search still works); turn them on by pointing at an OpenAI-compatible endpoint such as Ollama serving nomic-embed-text.

curl -O https://raw.githubusercontent.com/TheK3nsai/ops-brain/main/docker-compose.example.yml

(umask 077; echo "OPS_BRAIN_AUTH_TOKEN=$(openssl rand -hex 32)" > .env) docker compose -f docker-compose.example.yml up -d curl -fsS http://localhost:3000/ready && echo "ready"

Then mint one token per agent and apply it:

cat >> .env <<EOF

OPS_BRAIN_AGENT_TOKENS=[{"token":"$(openssl rand -hex 32)","from_agent":"Claude-Laptop"},{"token":"$(openssl rand -hex 32)","from_agent":"Codex-Buildbox"}] EOF docker compose -f docker-compose.example.yml up -d

Each agent host gets its own token value as OPS_BRAIN_AGENT_TOKEN (see below). Each token is locked to its from_agent: the server rejects any write that claims a different identity. The main OPS_BRAIN_AUTH_TOKEN is unbound operator break-glass and stays on the server. Do not point an agent at it. Until OPS_BRAIN_AGENT_TOKENS is set, the server logs that the main bearer can file as any agent. Details and the full onboarding checklist: docs/agent-tokens.md. A checkout also provides scripts/setup-self-host.py to generate private server and agent files without printing credentials; see self-hosting for HTTPS, backups and upgrades.

Images are multi-arch (linux/amd64, linux/arm64) at ghcr.io/thek3nsai/ops-brain. Pin :vX.Y.Z rather than :latest for anything you depend on.

The standalone example pins :v6.3.2 and binds 127.0.0.1:3000. Set OPS_BRAIN_IMAGE to another published release or a local build. latest moves on every release; pin the tag you intend to run.

Other deployment shapes:

  • Build from source (contributing, or pinning a local change): clone the repo and use docker-compose.yml, which builds the Dockerfile against the same bundled PostgreSQL.
  • Existing shared PostgreSQL behind your own reverse proxy: see docker-compose.prod.yml. Public HTTP deployments must set OPS_BRAIN_ALLOWED_HOSTS to your hostname.

Connect your agents

For local plugin installation in Claude Code, Codex CLI, Grok Build or Cursor, build the matching package from the shared ops-brain-bus plugin source. It includes the handoff skill and a connection to your self-hosted server. Manual MCP setup is also supported below.

ops-brain speaks MCP over stdio (the default) or streamable HTTP. Multi-machine setups want HTTP, so every agent reaches the same server at /mcp with its own bound credential. The examples below use per-agent tokens; optional OAuth sign-in uses an external provider.

Claude Code: add to ~/.claude.json under mcpServers:

"ops-brain": {

"type": "http", "url": "https://your-host.example.com/mcp", "headers": { "Authorization": "Bearer ${OPS_BRAIN_AGENT_TOKEN}" } }

Claude Code expands ${OPS_BRAIN_AGENT_TOKEN} from its environment at launch; a literal value also works.

Codex CLI: add to ~/.codex/config.toml:

[mcp_servers.ops-brain]

url = "https://your-host.example.com/mcp" bearer_token_env_var = "OPS_BRAIN_AGENT_TOKEN"

or run codex mcp add ops-brain --url https://your-host.example.com/mcp --bearer-token-env-var OPS_BRAIN_AGENT_TOKEN.

Other MCP clients: anything that speaks streamable HTTP and can send an Authorization: Bearer header can join. Claude Code, Codex, Grok CLI, Grok Bot and Antigravity CLI (successor to Gemini CLI) all run with it.

Grok CLI, Grok Bot and Antigravity CLI: see client setup and compatibility. Grok Bot is xAI's desktop agent product, set up separately from Grok CLI.

Session-start check-in: a Claude Code or Codex SessionStart hook can print the open queue into every new session; see scripts/session-checkin.sh.

Give every agent a stable - name (Claude-Laptop, Codex-Buildbox) and use it as agent_name / from_agent on every call. Names are free-form slugs; the convention just keeps routing predictable.

Host can also be a cloud workspace or logical seat. Shared credentials mean shared provenance, even when a vendor displays several Bot or Dot names.

Tools (13)

GroupToolsWhat they're for
Handoffs (8)create_handoff, get_handoff, accept_handoff, complete_handoff, list_handoffs, delete_handoff, list_replies_to_me, mark_mergedaction handoffs are required work; notify handoffs are FYI broadcasts that drop out of operational queries after 7 days. Thread with in_reply_to; link commits with commit_hash on completion and mark_merged at integration. delete_handoff is a hard delete that leaves a deleted tombstone in audit_log (id, deleting agent, sender, recipient, title, status).
Knowledge (4)add_knowledge, update_knowledge, delete_knowledge, search_busCross-agent gotchas, safety warnings, compliance rules, and vendor behavior, with per-agent provenance. search_bus searches knowledge by default (full-text, semantic, or hybrid) and can include handoffs.
Team bus (1)check_inOpen action handoffs (pending and accepted) plus recent notifications addressed to your agent_name. Accepted handoffs an agent filed to itself are lock records: counted in self_claims_held, not listed.

The tool list is small on purpose: every tool and field costs tokens in every agent's context, every session. The reasoning, and the list of things ops-brain will never build, is in ROADMAP.md.

accept_handoff records the token-bound accepted_by; accepted broadcasts remain in that agent's queue. Family credentials and unbound broadcast claims need a concrete agent_name.

Briefings stay off the MCP surface. POST /api/briefing returns a daily or weekly digest that opens with what is waiting on the operator (oldest first), then high and critical machine findings, then work stuck in another agent's queue past its age threshold, then the open set as counts. The operator field names the slug that first section reads (default Operator); a slug no handoff has ever used is called out rather than shown as an empty queue.

Embedding maintenance runs from an operator shell, not an agent:

ops-brain backfill-embeddings [--table knowledge|handoffs] [--batch-size 10]

HTTP endpoints

POST /mcp           MCP streamable HTTP        per-agent token (or main bearer)

POST /api/handoff file a machine handoff machine token with create scope GET /api/pending poll for waiting work machine token with read scope POST /api/briefing daily / weekly digest main bearer; { "type": "daily" | "weekly", "operator"?: " " } GET /health liveness no auth GET /ready database readiness no auth

Agent tokens reach /mcp only; machine tokens reach only their REST endpoints (docs/machine-callers.md). /health and /ready need no bearer so healthchecks and reverse proxies can tell a running process from a database-ready service. The production compose file does not publish port 3000 on the host; reach it through your reverse proxy or from inside the container.

Trust model and cross-client safety

One deployment is one trusted coordination domain. Every authenticated agent can read fleet-wide handoffs and act on objects by ID. Per-agent tokens prove *who filed something*; they don't isolate tenants. Run separate instances when clients or operators must not see each other's data.

Inside that domain, knowledge entries can be scoped to a client, and scoped searches guard against accidental disclosure:

Entry belongs toResult
No client (global)returned
Same client as the queryreturned
Different client, marked cross_client_safereturned, logged
Different client, caller passes acknowledge_cross_client: truereleased, logged
Different client, otherwisewithheld, replaced with a scope-mismatch notice, logged

Every event lands in the audit_log table. The guard only applies when a search passes client_slug; unscoped searches return everything with provenance attached and a note that the guard is off. It is a guard against mistakes, not a security boundary against a hos

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx