ComOS Federation Gateway
com.comos-federation/gatewayVersion 1.0.164Multi-tenant MCP gateway for AI commerce. One connection, every store.
Status
Responds311 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:52 UTC
- Latency
- 311 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.comos-federation.com/mcpResponds311 msNo sign-in
Claude Code
claude mcp add --transport http gateway https://mcp.comos-federation.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: gateway
Remote MCP server URL: https://mcp.comos-federation.com/mcpCursor
{
"mcpServers": {
"gateway": {
"url": "https://mcp.comos-federation.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"gateway","type":"http","url":"https://mcp.comos-federation.com/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
16 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
about_us_aboutRead 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 {}. | No | Yes | Yes | No |
federation_actInvoke 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 come from federation_enter_tenant's platform_tools, schemas from federation_help with {"tenant_id":"<tenant>","tool_defs":"<name>"}. UNLISTED root tools: pass tool + arguments WITHOUT tenant_id; names + schemas come from federation_help with {"tool_defs":"all"} (the prompt family beyond the listed library read and run — federation_prompt_review, _reviews, _submit — lives here). 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>"}. | Yes | No | No | No |
federation_catalog_platformsBrowse 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 {}. | No | Yes | Yes | No |
federation_enter_tenantEnter 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's platform_tools names the entered platform's REAL action tools (e.g. retail → catalog_search / order_create; bookings → services_search / booking_hold); read a tool's schema with federation_help {"tenant_id":"<tenant>","tool_defs":"<name>"}; 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>"}. | No | Yes | Yes | No |
federation_helpGet 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. Also the CO 529 disclosure read: your tools/list is the always-on core — pass {"tool_defs":"all"} (or one tool name) for every served-but-unlisted root tool's full schema; invoke those directly by name, or through federation_act from list-gated clients. With tenant_id (CO 721), tool_defs answers that tenant's platform tools instead: one name, several as "a,b", or "all". The guide's Prompts section covers the governed prompt library — there's a prompt for that: search it with introspection_prompt_library, run one with federation_prompt_run. 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 {}. | No | Yes | Yes | No |
federation_list_tenantsList 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 {}. | No | Yes | Yes | No |
federation_offerFor an agent that wants to SELL on ComOS: read the network's vendor offer — public and read-only, no token needed. Not for buying: to buy, enter the store with federation_enter_tenant. Returns the machine-legible offer (what you get and what it costs) 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; calling federation_apply accepts the ComOS Terms of Service. Cost: Free to join and operate. No subscription, no seat, no minimum, no trial. 3% when a sale settles. A card sale also pays the card processor's fee (2.9% + $0.30), passed through at cost. Some acts are priced in Coms (1 Com = $0.01), most after a free allowance; an act that is not on the sheet is free. The sheet is the federation_pricesheet tool: free, no token. 6% on top when you buy Coms. Buying them by card adds the same processor fee. 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 {}. | No | Yes | Yes | No |
federation_pricesheetThe 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 {}. | No | Yes | Yes | No |
federation_prompt_runRun 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 {}. | No | No | No | No |
federation_searchRoute 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. An intent about prompts ("is there a prompt that opens a shop?") returns a prompt_library pointer — introspection_prompt_library to search ComOS's governed prompts, federation_prompt_run to run one — even when no platform routes it. 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 {}. | No | Yes | Yes | No |
federation_tenant_infoGet 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>"}. | No | Yes | Yes | No |
federation_viewShow one view of a tenant in the ComOS panel, filled from typed reads. Always pass tenant_id. Retail: product_grid (opt. category, in_stock_only), product_detail (product_id), order_status, receipt (order_id; owner). Bookings: slot_picker (opt. provider_id, from, to), provider_card (provider_id), booking_card (booking_id; owner). Digital: license_grid (opt. category), license_detail (license_id), entitlements (owner; opt. license_id, holder_ref). Services: capability_grid (opt. category), capability_detail (capability_id), job_status (job_id; owner). Rentals: asset_grid (opt. category, from, to), asset_detail (asset_id), rental_status (rental_id; owner). Buy, Book and each platform's act open ComOS pages; Details opens an item in place. Optional style: CSS on the drawn .c-<role> classes (see its parameter); the result names any selector that matched nothing. Public. Compose (view: "composed") when the task needs more than one view or another arrangement: give 1–6 sources, each { id, view, args } with a named view and its own arguments, and a layout of copy (section, stack, grid, card, heading, text, badge, list) and records. Every price, time, status and button comes only from a record: { record: "/sources/<id>" } draws that whole view, { record: "/sources/<id>/products/<i>" } one item (lists: products, licenses, capabilities, assets, providers, entitlements). Never write a fact or a ranking ("cheapest") in copy; the page opens with "Arranged by your agent". Example: { view: "composed", sources: [{ id: "shop", view: "product_grid", args: { tenant_id: "earth" } }, { id: "times", view: "slot_picker", args: { tenant_id: "earth" } }], layout: [{ component: "grid", children: [{ record: "/sources/shop/products/0" }, { record: "/sources/shop/products/1" }] }, { record: "/sources/times" }] }. A refusal names its code and path; fix that and call again. In the panel, Book on an open time may send you a message ("Request this time for me at … Use booking_request."): request ex | No | Yes | Yes | No |
federation_whyWhy 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 {}. | No | Yes | Yes | No |
how_to_aboutRead 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 {}. | No | Yes | Yes | No |
introspection_prompt_libraryBrowse 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 {}. | No | Yes | Yes | No |
legal_getFetch a ComOS legal instrument as raw markdown: the Terms of Service, Privacy Policy, Data Processing Agreement (DPA), a one-page Data Retention Summary, the Prompt Library Submission Terms, or the Acceptable Use Policy. 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>"}. | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Nov 15, 2026
- Updated
- Nov 15, 2026
- Categories (suggested)
- AI modelsE-commerceSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared