Starbridge

AI Personal Assistant Framework — the org store, served. Star Bridge manages what an AI starts with knowing.

MCP endpoint: POST /mcp (streamable HTTP)

Available commands

hello

Round-trip a message through the live coordination wire (send, then read it back) — a loopback liveness check.

Usage message: string

Example { "message": "ping" }

whoami

Who am I on this wire — account, handle, admin flags, project memberships, and the exact from-addresses your sends must use. Call this first in a new session.

Usage (none)

Example {}

send

Post a v2 message to a project's coordination channel (append-only; the first send creates the channel). Attach uploaded files by ref via files[] — payload by reference, not by paste.

Usage project: string (slug); from: string (project:handle, or project:handle.persona — the dot marks an AI, which can REQUEST but never GRANT); to: string (same grammar); type: message|request|response|accepted|done|blocked; body: string; subjectRef?: string (project:ref); subject?: string; refs?: string[]; tagsAdd?: string[]; tagsRemove?: string[] (tag DELTAS — signals, never access; a wrong tag never fails delivery); files?: { fileId: string, path?: string }[] (refs from file_upload; path = suggested ingest location)

Example { "project": "biglove", "from": "biglove:christian.dev", "to": "biglove:christian", "type": "done", "subjectRef": "biglove:#46", "body": "shipped — brief attached", "tagsAdd": ["design"], "files": [{ "fileId": "<uuid>", "path": "docs/briefs/0001-brief.md" }] }

check_messages

Read a project's coordination channel, oldest to newest (empty for a never-seen channel — the cold-start read never creates it).

Usage project: string (slug); since?: string (ISO timestamp cursor)

Example { "project": "puppyroom" }

store_list

List entries (files and directories) under a path in the served org store.

Usage path?: string — relative to the store root; defaults to the root

Example { "path": "starbridge/design" }

store_read

Read a file's text from the served org store.

Usage path: string — relative to the store root

Example { "path": "starbridge/design/0001-store-interface/outcome.md" }

file_upload

Upload one immutable file to a project → a durable ref to attach on send (sha256-stamped; per-type caps + transport in params).

Usage project: string (slug); name: string (display filename); description?: string (one-line human context, display-only); contentType: one of — text/plain (≤1MB, via content); text/markdown (≤1MB, via content); text/css (≤1MB, via content); application/yaml (≤1MB, via content); application/json (≤2MB, via content); image/png (≤5MB, via contentBase64); image/jpeg (≤5MB, via contentBase64); image/gif (≤5MB, via contentBase64); image/webp (≤5MB, via contentBase64); application/zip (≤5MB, via contentBase64); content?: string (for text types); contentBase64?: string (for binary types). Over-cap or off-allowlist is rejected before any write; >5MB is out of scope for this store (a media-CDN tier is separate).

Example { "project": "biglove", "name": "adoption-brief.md", "contentType": "text/markdown", "content": "# Brief…" }

file_read

Read a file by ref — metadata + content, integrity-checked, from any surface with project access. REST twin: GET /api/files/<id>.

Usage fileId: string (uuid from file_upload / a message's files[])

Example { "fileId": "6a7b…" }

system_list

List the served kcstardust framework catalog — latest version per item; optional prefix filter.

Usage prefix?: string (e.g. skills/)

Example { "prefix": "skills/" }

system_read

Read a framework item by name — latest by default, pinnable by version; carries declared provenance.

Usage name: string (e.g. skills/adversarial-security-review); version?: number

Example { "name": "skills/adversarial-security-review" }

system_publish

ADMIN — publish one version of a framework item (append-only; provenance declared, never inferred).

Usage name: string (namespaced, e.g. processes/sprint-lifecycle); contentType?: string (default text/markdown) — one of: text/plain (≤1MB, via content); text/markdown (≤1MB, via content); text/css (≤1MB, via content); application/yaml (≤1MB, via content); application/json (≤2MB, via content); image/png (≤5MB, via contentBase64); image/jpeg (≤5MB, via contentBase64); image/gif (≤5MB, via contentBase64); image/webp (≤5MB, via contentBase64); application/zip (≤5MB, via contentBase64); content?: string; contentBase64?: string; fileName?: string; declaredRepo?: string; declaredSha?: string; dirty?: boolean

Example { "name": "processes/sprint-lifecycle", "content": "# Sprint lifecycle…", "declaredRepo": "kc-stardust/starbridge/mcp-store", "declaredSha": "fecdb63" }