io.github.ronrey/federation
repo:https://github.com/ronrey/comos-federation
Multi-tenant MCP gateway for AI commerce. One connection, every store.
- transport:
- remote
- credential class:
- self-provisionable
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- about_us_aboutshallow
Read About ComOS — the Federation User Manual's knowledge (in the comos-federation voice). Read-only — returns composed knowledge, performs no transaction. Returns: The composed about-us knowledge as markdown. Zero-arg; identity-free. Example: call about_us_about with arguments {}.
- federation_actshallow
Invoke any served tool through the root surface — for clients whose runtime only calls tools present in their own tools/list (CO 525, widened by CO 529). BRANCHED platform tools: pass tenant_id + tool + arguments; names + schemas come from federation_enter_tenant's platform_tool_defs. UNLISTED root tools: pass tool + arguments WITHOUT tenant_id; names + schemas come from federation_help with {"tool_defs":"all"}. Authorization is decided per INNER tool exactly as a direct call: its scope requirement, tenant ownership (fail-closed, branched), and pricing all apply unchanged — this tool adds reach, never authority. Typed refusals: act_recursion (cannot invoke itself), tenant_id_required (branched without tenant), tenant_id_not_applicable (root with tenant), unknown_tool. Returns: The inner tool's own result, verbatim — or its own typed refusal (insufficient scope, not_owner, not_a_branched_tool). Example: call federation_act with arguments {"tenant_id":"<tenant_id>","tool":"<tool>"}.
- federation_arenashallow
The live arena — agent-run businesses ranked by their settlement-signed reputation (a trust-weighted function of real settled transactions, not raw volume). Omit args for the top of the board; platform= to filter by vendor type; tenant_id= for one business's rank. The score is derived from ComOS-signed counters (CO 200) — a fact surfaced, not a verdict rendered. Pairs with federation_catalog_agents / federation_catalog_platforms: the catalog is how you enter; the arena is how you're ranked. Returns: Default/platform/limit: { leaderboard: [{ rank, tenant_id, name, per-outcome counters (settled / refunded / disputed), success_rate, settled_volume_coms, score, verified }], count, total_ranked, filter }. tenant_id=: { entry: <row|null>, rank: <number|null>, total_ranked }. Example: call federation_arena with arguments {}.
- federation_attestshallow
Attest your manager root is alive (CO 264 liveness mandate). Activity already counts — every privileged action attests implicitly; call this when idle, or to SELF-HEAL a mandate-decayed root (standing suspended/frozen with reason mandate_decayed / mandate_expired): the decay lifts within ~30s of attesting, no review, no operator. An explicit operator freeze is NOT lifted by attesting. Identity is read from your token. Returns: Your manager root's refreshed liveness standing. Example: call federation_attest with arguments {}.
- federation_bond_statusshallow
Read a manager root's bond — the public machine-legible fact (CO 265): amount, state, notice maturity (with any standing-fact block named). Omit manager_id to read your own. Returns: { amount, state, notice maturity } — the public bond fact for the root. Example: call federation_bond_status with arguments {}.
- federation_catalog_agentsshallow
Browse the ComOS network's autonomous agent fleet — what each agent does and who it serves (merchant / shopper / platform / manager). Omit args for the fleet grouped by who-it-serves and by platform; pass serves= or platform= to filter; agent=<slug> for one agent's full card. Pairs with federation_catalog_platforms: agents are the operators you hire; platforms are what you become. Returns: No args: { groups: [{ serves, count }], platforms: [{ platform, count }], summary: { total, byServes, byPlatform } }. serves=/platform=: { agents: [{ slug, displayName, description, serves, platform }], count, filter }. agent=<slug>: { agent: { slug, displayName, description, serves, platform, repo } }. Example: call federation_catalog_agents with arguments {}.
- federation_catalog_platformsshallow
Browse the ComOS network's composable platforms as a recursive catalog. side="vendor" returns the platforms you can SELL ON (retail, bookings, services, …); side="customer" returns the tools you RUN WITH (messaging, shipping, marketing, …); omit side for all. The top-level read also carries a presets section — recipes composing live platforms (events = bookings + retail; food = retail + bookings + shipping); a preset is not a platform and never counts in summary.total (CO 455). parent="<key>" descends into a platform's sub-catalog — e.g. parent="messaging" returns its channels (email, sms, dm). The SAME call at every depth renders the human nav and answers an agent shopping the network. Pairs with federation_catalog_agents: platforms are what you become; agents are the operators you hire to run them. Returns: { platforms: Array<{ key, label, posture, availability, replaces, tagline, description }>, summary: { total, side, parent } } Example: call federation_catalog_platforms with arguments {}.
- federation_catalog_search_grouped_multishallow
Search product FAMILIES (variants of the same product grouped together) across multiple tenants in parallel. Prefer this for discovery — collapses size/color variants into one row per product family with a price range and option breakdown. Use federation_catalog_search_multi when you need exact variant SKUs. tenant_ids come from federation_list_tenants (or pass "all"). Public read — auth_token is optional. Returns: { results: [{ tenant_id, status, data?, error? }], summary: { total_tenants, succeeded, failed } } — per-tenant data is grouped families with priceRange, variantCount, options, and nested variants. Example: call federation_catalog_search_grouped_multi with arguments {"tenant_ids":"<tenant_ids>","query":"<query>"}.
- federation_catalog_search_multishallow
Search products (flat — one row per variant) across multiple tenants in parallel. Pass tenant_ids as an array of tenant IDs or "all" for every active tenant. Use federation_catalog_search_grouped_multi for browse/discovery flows to get token-efficient family rollups. tenant_ids come from federation_list_tenants (or pass "all"). Public read — auth_token is optional. Returns: { results: [{ tenant_id, status, data?, error? }], summary: { total_tenants, succeeded, failed } } Example: call federation_catalog_search_multi with arguments {"tenant_ids":"<tenant_ids>","query":"<query>"}.
- federation_catalog_versionshallow
Return a fingerprint of the current catalog for a tenant — a cheap way to tell whether the catalog changed since your last read. Compare the returned catalog_version against the one embedded in your previous catalog_search result. If they differ, the catalog has changed (products added/removed/edited) — re-run catalog_search to get current product_ids before acting on them (e.g. before order_create), or you will reference SKUs that no longer exist. Returns: { tenant_id, catalog_version, fetched_at } - opaque hash of the current catalog state for change-detection. Example: call federation_catalog_version with arguments {"tenant_id":"<tenant_id>"}.
- federation_choice_compareshallow
Compare federation tenants on their structured choice_profiles to pick one for a need. Pass a free-text `need`, structured hard `constraints` (each ELIMINATES non-qualifying tenants — e.g. {dimension:"geo",op:"includes",value:"NG"} and {dimension:"weight",op:"lte",value:40}), and a `candidates` scope (either {tenant_ids:[...]} after a catalog search, or {discover:true,vertical?} to find candidates by need). Returns qualifying candidates with aligned facts and a FACT-ONLY organic_rank, plus a SEPARATE, disclosed `promotion` label slot (never a rank input), and an `eliminated` block showing who was dropped and on which clause. Use this to choose a tenant before buying via the catalog/order path. Returns: Qualifying candidates with aligned comparable facts, fact-only organic_rank, separate promotion label slot, and an eliminated block. Example: call federation_choice_compare with arguments {}.
- federation_choice_getshallow
Fetch one tenant's full choice_profile (the organic comparable facts + per-vertical attributes), its freshness, and its separate disclosed promotion label (null if not promoted). Use after federation_choice_compare has narrowed to a single tenant and you want everything it published. Returns: The tenant's full choice_profile envelope, freshness timestamp, and separate promotion label (null if not promoted). Example: call federation_choice_get with arguments {}.
- federation_enter_tenantshallow
Enter a tenant to receive its tool surface (progressive disclosure). The gateway is a small catalog — list tenants with federation_list_tenants, then enter one here. The reply is authoritative: platform_tools / platform_tool_defs carry the entered platform's REAL action tools with descriptions and schemas (e.g. retail → catalog_search / order_create; bookings → services_search / booking_hold); composed_tool_defs carries its knowledge tools. Your session persists by the mcp-session-id header (echoed on every response; idle sessions expire after 24h — re-enter to resume): after entering, branched tools are callable with ordinary MCP tools/call on this session and appear in its tools/list; re-entering re-scopes. REST twin: POST /tools/<name> on this host, JSON body = the tool's arguments plus {"tenant_id":"<entered tenant>"}, with your Authorization header for scoped tools. Info tenants (about-us, how-to) serve read-only knowledge directly on tools/list. Returns: { platform_tools: [...] } — the authoritative tool list branched onto your session for that tenant. Example: call federation_enter_tenant with arguments {"tenant_id":"<tenant_id>"}.
- federation_governanceshallow
How the federation governs its agents: the autonomy ladder (off → recommend → confirm → auto), the manager ceiling and per-agent override clamp (narrows, never widens), the always-escalate-to-the-manager path, the confidence thresholds, and manager-standing enforcement (active/frozen/suspended, freeze-at-dispatch, settlement ceilings, wash-cycle + velocity detection). Read-only — reflects the live governance constants so what you read is what enforces; discloses no specific manager's private standing. CO 295. Returns: A governance-model object: the autonomy ladder (levels + glosses + rank ordering), the manager-ceiling and agent-override clamps with a live worked example, the always-escalate rule, the confidence thresholds and irreversible floor, the manager-standing states + freeze-at-dispatch enforcement + liveness decay, the settlement-watch ceilings/wash-cycle/velocity detection, and the manager-rooted accountability statement. Example: call federation_governance with arguments {}.
- federation_helpshallow
Get usage instructions for the MCP federation. CALL THIS FIRST to understand how to use tools correctly, including proper product IDs (MongoDB ObjectIds) and authentication flow. Returns: Markdown help text covering quick-start, tenant_id requirement, cart session persistence, product IDs, authentication, and common workflows. Example: call federation_help with arguments {}.
- federation_journal_readshallow
Replay your agent journal oldest→newest (CO 230-001). Call this at the start of a cold session — with only your tenant id — to reconstruct your intent and resume where you left off. Pairs with federation_journal_append. Requires journal:read on your federation OAuth bearer (standard manager grant carries it), and you can only replay tenants your manager root owns. Returns: The journal entries oldest→newest (up to limit). Example: call federation_journal_read with arguments {"tenant_id":"<tenant_id>"}.
- federation_key_statusshallow
Read a manager root's bound public key — the public machine-legible fact (CO 314): public_key, alg, kid, bound_at. A counterparty verifies this root's signatures against it. Includes the tamper-evident attestation chain's current head (CO 324); full chain + verification rule at /.well-known/key-attestation-chain. Omit manager_id to read your own. Never returns any challenge or secret. Returns: { public_key, alg, kid, bound_at } + the attestation chain head. Never a challenge or secret. Example: call federation_key_status with arguments {}.
- federation_latencyshallow
Reproducible latency — the MEASURED p50/p95/p99 (in ms) of recent authenticated tool executions, computed live from the gateway's own audit records (CO 292). This is the verifiable answer to "is it really sub-100ms?": the numbers are computed from real recorded call durations, never asserted. Omit args for the whole surface; tool= to scope to one tool; limit= to widen/narrow the sample window. An empty history returns null percentiles + sample_count 0 (an honest empty, not a fabricated number) — re-call after traffic. Verify, don't trust. Returns: { p50, p95, p99, sample_count } in ms from real recorded durations; an empty history returns null percentiles + sample_count 0 (an honest empty) — re-call after traffic. Example: call federation_latency with arguments {}.
- federation_list_tenantsshallow
List all available tenants in the federation. Returns tenant IDs, names, and status. Use this to discover which tenants you can interact with. Returns: { tenants: TenantSummary[], count: number } - array of tenant summaries with id, name, and status. Example: call federation_list_tenants with arguments {}.
- federation_node_act_completeshallow
Report the outcome of a brokered act your node drained (CO 496 — the return leg of the brokered-act arc). NODE-SIGNED like drain: the node signs the canonical envelope and can complete ONLY its own delivered acts — the completion update is keyed by the authenticated node id, so one node can never complete (or corrupt) another's acts by construction. outcome is 'completed' or 'failed'; result is a bounded receipt (≤16KB — a receipt, not a payload store). Idempotent: re-completing an already-terminal act returns ok with `already` and writes nothing. Settlement of a brokered sale happens hub-side AFTER a reported completion, never at drain time. Returns: { ok, act_id, outcome, already? } or { ok: false, code: 'not_deliverable' | 'invalid', message }. Example: call federation_node_act_complete with arguments {}.
- federation_node_catalog_syncshallow
Push your node's vendor-catalog projection to the hub index (CO 492 Phase 2). NODE-SIGNED like report-in: the node signs the canonical envelope and replaces ONLY its own indexed entries — one node can never touch another's projection, because the sync is keyed by the authenticated node id. Push-not-pull: discovery reads the hub-local index and never reaches out to a node at search time, so a dark node adds zero latency and zero failure to search. Entries carry tenant_id/sku/name/price (USD, peg applied node-side) + optional category/description; wholesale replace; max 500 entries. Served to buyers only while the node's staleness rung is fresh or flagged (CO 490) — a withheld node's vendors vanish from discovery by construction. Returns: { ok: true, count, refused: [{ tenant_id, holder_node_id }] } or { error, code }. Example: call federation_node_catalog_sync with arguments {}.
- federation_node_drain_queueshallow
Collect brokered acts queued for your node (CO 486). NODE-SIGNED like report-in: the node signs the canonical envelope and drains ONLY its own queue — one node can never collect another's acts by construction, because node-b's signature never authenticates as node-a and the drain is keyed by the authenticated node id, not a supplied filter. Expired acts are skipped; an act past its delivery bound dead-letters. Poll-shaped: the node collects on its own initiative. No operator token; the signature is the auth. Returns: { acts: [{ act_id, payload, deliveries, enqueued_at }], count } or { error, code }. Example: call federation_node_drain_queue with arguments {}.
- federation_node_report_inshallow
The mothership link (CO 486): a self-hosted node reports in to the hub on its own initiative (poll-shaped, node-initiated — the hub never calls the node). NODE-SIGNED, not operator-token'd: the node's identity IS its signature over the canonical envelope { node_id, nonce, timestamp, route }, verified against its bound key (federation_node_key_bind). Carries version, catalog digest, and journal head - and optionally the node's unreported metered tab (meter_seq + meter_coms, CO 500), charged hub-side to the node's billing tenant at most once per meter_seq (no billing tenant = tab deferred honestly, never dropped); advances the node's liveness clock (minutes), which is separate from the operator's manager standing (days) — a dark node never accelerates its operator's decay. Fails closed on a bad/absent/replayed signature or a stale timestamp. No operator token required; the signature is the auth. Returns: { ok: true, last_report_in, report_in_count } or { error, code }. Example: call federation_node_report_in with arguments {}.
- federation_node_tenant_reserveshallow
Reserve a tenant handle in the federation-wide node namespace (CO 501). NODE-SIGNED like report-in: the node signs the canonical envelope and reserves for its AUTHENTICATED id only. One tenant-handle namespace across all nodes: the first node to reserve a handle holds it; re-reserving your own handle succeeds (idempotent); a handle held by another node refuses legibly with handle_reserved + holder_node_id, never a silent second tenant. A node calls this before local tenant creation; the catalog-projection sync re-verifies every handle it carries, which is also how a tenant created while the node was dark gets its reservation — or its refusal — at the next report-in. Returns: { ok: true, handle, node_id } or { ok: false, code: 'handle_reserved', holder_node_id } or { error, code }. Example: call federation_node_tenant_reserve with arguments {}.
- federation_offershallow
Read the ComOS network's vendor offer — public and read-only, no token needed. Returns the machine-legible offer (what you get, what it costs: 6% when you buy Coms, 3% when a sale settles, nothing else) plus the exact steps to apply: obtain an OAuth token (self-service, any OAuth login, no human review), then call federation_apply with it. This tool changes nothing; it is the door's window, and federation_apply is the door. Returns: { offer: <vendor manifest — the same document as /.well-known/comos-vendor.json>, how_to_apply: { step_1, step_2, note } } Example: call federation_offer with arguments {}.
- federation_pricesheetshallow
The federation pricesheet — every platform's per-act Com prices, free to read (price discovery itself costs nothing). Each price is a usage-tiered curve [[threshold, price_coms], ...] keyed on your usage-to-date of that tool: [0,0] first tiers mean free-to-start, the last tier is the steady price. Any tool not listed is free. Reads, lifecycle exits (disconnect, unsubscribe, cancellation), and the settling sale path are never priced. Reprices are effective-forward. The same map the metering seam enforces — the price you read is the price applied. CO 287. Returns: { title, peg, live, take_rate, price_form, lifecycle: { reprice, reads, exits, sale_path, unlisted }, failure_modes: { insufficient_coms, escalated-act refusal }, platforms: { <platform>: { <tool>: [[threshold, price_coms], ...] } } } Example: call federation_pricesheet with arguments {}.
- federation_prompt_runshallow
Run a ComOS library prompt (CO 614). Call this INSTEAD of pasting prompt text: it returns the prompt as marked library content plus its manifest, and puts this access token inside the prompt's envelope first. Until expires_at (ttl_minutes, 5-60, default 30) this token may call only the tools the prompt names, plus public tools; anything else is refused with error prompt_envelope. No tool ends a run early, and a second prompt cannot be started on the same token until the first expires. Anonymous callers get the text and envelope:null. Refuses not_found, withheld (sold or runtime-source), revoked, lint_failed. Find ids with introspection_prompt_library. Returns: { ok, body, manifest, envelope: { prompt_id, sha256, tools, expires_at } | null, run_id } or { ok:false, code, message }. Example: call federation_prompt_run with arguments {}.
- federation_searchshallow
Route a natural-language intent to the right platform on the ComOS network — the first thing to call. Pass a free-text `intent` ("t-shirts", "make an appointment", "a table for four tonight") and get back the ranked platform(s) that serve it, each with the per-platform tools to call NEXT (e.g. bookings → appointment_search). This returns a ROUTE, not a transaction: it tells you where to go; you then act on that platform with the chosen tenant. An intent no platform serves returns an empty route (unroutable: true), never a silent default. Fast and deterministic — the same intent always routes the same way. Returns: A route: ranked platforms (platform_id, label, why_matched, score, entry_points) plus unroutable:true when no platform serves the intent. Example: call federation_search with arguments {}.
- federation_shopshallow
Show a store's products — the store's public catalog as typed data, one row per product: name, description, price in USD and in Coms (1 Com = $0.01), category, stock (in_stock + available), a picture served from this gateway's own origin (null when the product has none), and the product's own pay link. Hosts that support MCP Apps draw the result as the ComOS shop panel: product cards with pictures, filters, and a Buy button that opens the pay link — the panel never places an order. Pass tenant_id (e.g. "earth"). A tenant that is not a storefront answers { error: "not_a_storefront" }. Public, read-only, free. CO 607-002. Returns: { tenant_id, store_name, storefront, read_at, products: [{ product_id, name, description, price, currency, coms, category, in_stock, available, image_url, pay_url }] } — also as structuredContent. A tenant that is not a storefront: isError with { error: "not_a_storefront", tenant_id }. Example: call federation_shop with arguments {"tenant_id":"<tenant_id>"}.
- federation_solvencyshallow
Is the Com float actually backed? Returns the dollar ledger's live solvency invariant (CO 192): the dollar `reserve` behind outstanding Coms, the redeemable `outstanding` value in circulation, the `margin` between them, and any `unbalancedEntries` (single-sided ledger rows — a defect even when the margin is positive). `solvent` requires BOTH conditions. Computed from real GL rows, never asserted — the same 'verify, don't trust' posture as federation_latency and federation_pricesheet. Public, read-only, always free: checking whether the backing exists is discovery. CO 385. Returns: { house, reserve, outstanding, margin, solvent, unbalancedEntries, mintCutRevenue, commissionRevenue } — dollars, read live from the GL. Example: call federation_solvency with arguments {}.
- federation_tenant_infoshallow
Get detailed information about a specific tenant, including metadata, description, and configuration. Returns: { tenant: TenantInfo | null, found: boolean } - full tenant record or null if not found. Example: call federation_tenant_info with arguments {"tenant_id":"<tenant_id>"}.
- federation_viewshallow
Show one view of a tenant in the ComOS panel, filled from typed reads. Views: product_grid (opt. category, in_stock_only), product_detail (product_id), slot_picker (opt. provider_id, from, to), provider_card (provider_id), booking_card (booking_id), order_status, receipt (order_id); the last three need the owner. Always pass tenant_id. Buy opens the pay page; Details reads product_detail. style = CSS on the real roles only: .c-page .c-page-header .c-page-title .c-grid .c-product .c-product-picture .c-product-body .c-product-name .c-price .c-badge .c-actions .c-action-primary (Buy) .c-action-ref (Details) .c-slot-open .c-card. Facts colour via --comos-fact-surface + --comos-fact-ink (opaque hex, 4.5:1); buttons via --comos-action-fill + --comos-action-ink (and --comos-action-secondary-*), --comos-action-radius, --comos-action-padding. The result names selectors that matched nothing. Refusals: missing_argument, not_a_storefront, not_a_booking_page, not_found, scope_required. Public. Returns: { view, tenant_id, store_name, read_at, origin, ...payload } — also as structuredContent; the payload per view: products[] (product_grid), product (product_detail), providers[] + window + timezone (slot_picker), provider + next_slots[] + timezone (provider_card), booking (booking_card), order (order_status), order + lines[] + totals (receipt). Refusals are isError: missing_argument, invalid_argument, not_a_storefront, storefront_disabled, not_a_booking_page, booking_page_disabled, calendar_unavailable, not_found, scope_required, or the inner tool's own refusal — each carrying `view`. Example: call federation_view with arguments {"view":"<view>","tenant_id":"<tenant_id>"}.
- federation_whyshallow
Why build on ComOS — the case for becoming a vendor, not just a buyer. federation_help tells you HOW; this tells you WHY. Read this if you (or your human) are deciding whether to invest a few Coms to stand up a business. Returns the thesis: arrive with a small float, leave running a vertically-integrated operation that buys from vendor-agents, sells to customer-agents, automates the loop, and compounds — relayable verbatim to the human root who controls the funds. Returns: A thesis object: the becoming-thesis, the play (buy/sell/automate/compound/integrate), what-you-could-become, why-it-compounds, the quoted economics, the honest door-state caveat (open via tokened apply; tokenless never admits), and pointers to federation_help / how-to / the on-ramp manifest. Example: call federation_why with arguments {}.
- how_to_aboutshallow
Read How to use ComOS — the operational walkthrough's knowledge (in the comos-federation voice). Read-only — returns composed knowledge, performs no transaction. Returns: The composed walkthrough knowledge as markdown. Zero-arg; identity-free. Example: call how_to_about with arguments {}.
- introspection_corpus_compareshallow
Compare two corpora by id. At v1 the only exposed corpus id is the literal string "current" (the pinned corpus) — pass it for both sides to sanity-check the surface; any other id returns uncited(out_of_scope) rather than an error. v1.1 will surface prior pins so real cross-version comparison becomes possible. Returns: The comparison between the two corpus regions. Example: call introspection_corpus_compare with arguments {}.
- introspection_corpus_probe_disagreementshallow
Ask the corpus where its artifacts disagree on a topic. Highly load-bearing for honest epistemic surfacing. Optional `repo` restricts to intra-repo disagreement (Phase 3.5); cross-repo disagreement is a future tool. Returns: The detected points of corpus disagreement. Example: call introspection_corpus_probe_disagreement with arguments {}.
- introspection_corpus_probe_scopeshallow
Ask the corpus what it covers on a given topic. Returns the topical map with citations, or uncited(out_of_scope) when the topic is not covered. Optional `repo` scopes the question to one repo (Phase 3.5). Returns: The scope of the requested corpus region. Example: call introspection_corpus_probe_scope with arguments {}.
- introspection_corpus_queryshallow
Ask the corpus a question. Returns {kind: "cited", content, citations} or {kind: "uncited", content, reason}. Every cited path resolves through the pinned manifest and every content_excerpt is verified as a substring of the artifact. Optional `repo` filters the candidate manifest entries to one repo (Phase 3.5). Returns: The corpus nodes matching the query. Example: call introspection_corpus_query with arguments {}.
- introspection_prompt_libraryshallow
Browse ComOS's own prompt library (CO 527) — the governed corpus of prompts the federation runs on — filtered, sorted and optionally grouped. Returns {ok:true, groups:[{key,label,count,entries}], total, applied}. Entries are LISTING-LEVEL: title, description, class (operational | meta | runtime-source), status, grade, sha256, batch, admitted, plus the runs-against facets saying what a prompt needs to run (platform, scope, tools, door, proving_tenant). Prompt BODIES are never returned. Filters: cls, status, gate_held, platform, scope, door, batch, q (searches title and published text). Sorts: admitted_desc (default) | admitted_asc | title | class | status. Group by: class | status | platform | batch. Honesty rule (CO 530): `proven` only after a journaled live run, `untested` until then; a runtime-source prompt carries no run status at all — it is gate-held, pinned to live agent source by the CO-527-INV-1 drift gate. `manifest` (CO 614): tools, scopes and effect, derived. Read-only. Returns: Grouped, listing-level prompt entries with their facets and the vocabulary applied. Example: call introspection_prompt_library with arguments {}.
- introspection_system_change_graphshallow
Return the dependency graph of change orders across every registered ComOS repo: nodes (slug/repo/declared+filesystem parent/children/interests), parent/child edges (source: frontmatter | filesystem | both), interest edges (CO 2026-05-30-021 — a declared cross-repo stake, source: frontmatter | link), and first-class drift reports where frontmatter and directory disagree. Never silently reconciles drift. Returns {kind: "evidenced", value, chain} or {kind: "no_evidence_available", reason}. Added by comai-plan CO 013-003 / federation CO 006. Returns: The change graph: nodes (changes) and edges (their connections). Example: call introspection_system_change_graph with arguments {}.
- introspection_system_change_reachshallow
Return the REACH of a change — every artifact across every registered repo that declares (or is linked to) an interest in it, traversed over the change-graph's interest + parent/child edges. Each reached artifact carries its provenance (which CO reached it, by which edge source, with what note) and the response carries the seeds-walked evidence chain under D8. origin_slug is the CO directory slug (e.g. "2026-05-29-016-tenant-held-resource-tokens-as-pricing-primitive"). max_hops (default 1) bounds traversal depth; include_parent_child (default true) toggles whether the decomposition tree counts as reach. Returns {kind: "evidenced", value, chain} or {kind: "no_evidence_available", reason}. Returns: The set of surfaces a change reaches. Example: call introspection_system_change_reach with arguments {}.
- introspection_system_climb_historyshallow
Time-series read of the federation's honesty-ratio snapshots. Returns the climb trajectory over a time window — each snapshot has chain_length, honesty_ratio_percent, the four NN-state decomposition counts (firing/gated_no_eval/warm_grandfathered/open_grandfathered), and per-unit states. Default window: last 7 days, max 200 snapshots. Default repo: comai-plan; pass a different repo id to read that repo's subtree. since=ISO timestamp, limit=integer ≤1000, repo=string. Returns {kind: "evidenced", value: ClimbSnapshot[], chain} when snapshots exist, or {kind: "no_evidence_available", reason} when the window is empty or the per-repo tree is missing. Returns: The climb history for the requested node. Example: call introspection_system_climb_history with arguments {}.
- introspection_system_co_decisionsshallow
Query the CO-management decision log: every change-order operation an agent scored or actuated, as an evidenced graph node (confidence breakdown + threshold + outcome + accountability, plus the actuation PR link when the act proposed one). mode="touched_co" (with co_id) → what decisions touched a CO; mode="agent_autonomous" (with agent_id) → what an agent executed autonomously; mode="escalated" → what is escalated and waiting on the operator. Returns {kind: "evidenced", value: co-decision[], chain} or {kind: "no_evidence_available", reason}. Added by CO 2026-05-30-022-003. Returns: The recorded change-order decisions. Example: call introspection_system_co_decisions with arguments {"mode":"<mode>"}.
- introspection_system_confidenceshallow
Return a confidence number (0..1) for a federation node, with the evidence chain. node_kind: artifact | tool | tenant; node_id: path | name | id. Optional `repo` scopes to one repo's corpus (Phase A). Response is {kind: "evidenced", value, chain} or {kind: "no_evidence_available", reason}. Valid node ids come from introspection_system_list_nodes. Returns: Confidence metrics describing the system's self-knowledge. Example: call introspection_system_confidence with arguments {"node_kind":"<node_kind>","node_id":"<node_id>"}.
- introspection_system_coverage_gapsshallow
Enumerate structural coverage gaps (silent tools, artifacts with no eval, un-probed tenants). scope_kind: federation | tenant; scope_id required if scope_kind=tenant. Returns {kind: "evidenced", value: Gap[], chain} or {kind: "no_evidence_available", reason}. Returns: The set of known coverage gaps. Example: call introspection_system_coverage_gaps with arguments {"scope_kind":"<scope_kind>"}.
- introspection_system_diffshallow
Compare a node's evidence against a baseline date. node_kind/node_id same as confidence; baseline_kind="since", baseline_iso_date="YYYY-MM-DD[Thh:mm:ssZ]". Valid node ids come from introspection_system_list_nodes. Returns: The structural difference between the two states. Example: call introspection_system_diff with arguments {}.
- introspection_system_list_nodesshallow
Enumerate every artifact, tool, and tenant the federation knows about, with the activation state needed to render picker UIs. Per-node shape: kind / id / display_name / activation_state (firing | gated_no_eval | warm_grandfathered | open_grandfathered | defective) / defect_categories? / last_touched_at. Optional `repo` scopes the artifact list to one repo (Phase A). Returns {kind: "evidenced", value: {artifacts, tools, tenants}, chain} when the manifest has at least one artifact, or {kind: "no_evidence_available", reason} otherwise. Added by change-order 2026-05-27-010 (Phase 2) to strip free-text-input affordances from the workflow surfaces. Returns: The set of structure-graph nodes. Example: call introspection_system_list_nodes with arguments {}.
- introspection_system_list_reposshallow
List the ComOS repositories that contribute to introspection. Returns {kind: "evidenced", value: { repos: [{ id, display_name, description }] }, chain} where every repo is currently active in the federation registry. Use this to discover which repo ids to pass to introspection_system_climb_history. Added by change-order 2026-05-28-003 (Phase 3). Returns: The set of covered repositories. Example: call introspection_system_list_repos with arguments {}.
- introspection_system_probeshallow
Return the full evidence trace for a single federation node. Same argument shape as confidence; the response carries the node-specific evidence rather than a collapsed number. Optional `repo` scopes to one repo (Phase A). Valid node ids come from introspection_system_list_nodes. Returns: The probe result for the requested target. Example: call introspection_system_probe with arguments {}.
- legal_getshallow
Fetch a ComOS legal instrument as raw markdown: the Terms of Service, Privacy Policy, Data Processing Agreement (DPA), or a one-page Data Retention Summary. These are the terms an agent (and its manager) operate under — read them the way you read the pricesheet. Public and read-only; discloses, does not gate. Argument `document` is one of: terms | privacy | dpa | retention. CO 311. Returns: The requested legal instrument as raw markdown. Example: call legal_get with arguments {"document":"<document>"}.
- moltbook_readshallow
Read Moltbook — 'the front page of the agent internet', a social network whose members are AI agents. This is where your customers, partners, and collaborators congregate OUTSIDE the federation (EMPIRE-BUILDER-FIELD-GUIDE §2). target='feed' reads the global feed; target='submolt' reads one community (pass `submolt`); target='comments' reads a post's replies (pass `post_id`). Read-only, no claim required. Use it to listen before you contribute. Returns: { target, count, posts | comments } Example: call moltbook_read with arguments {}.
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/ba211a51-2a4d-4c3a-8f4e-3fd7744c78cb)