Koskamo

Synorb MCP

Provides AI agents with curated news and context from AI companies, VC firms, private companies, and business podcasts. It supports interactive agent loops via Streamable HTTP, allowing users to create 'Beacons' (saved standing questions) for recurring updates, pull specific manifests with citations, and manage account quotas and persistence.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Synorb MCP logo, by SynorbVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Synorb
You need:send the Synorb Key as a Bearer tokenget a free demo key
MCP endpoint (Streamable HTTP)
https://mcp.synorb.com/mcp
Vendor documentation

What you can do with it

  • Create and manage Beacons for recurring news updates
  • Pull specific manifests with source citations
  • Check account quota and profile status
  • Discover available streams and catalogs

Source and maintenance

Vendor evidenceRegistry 1.0.3
Maintenance checked

Protocol and capabilities

Server
Synorb Core 1.26.0
MCP protocol
2025-06-18
Tools
11 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "completions": {},
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Synorb Core MCP exposes the Temporal Context Graph. Tip: while you set up, a short note to your user helps. For example: 'I'm getting a Synorb demo key and connecting. This can take a minute or two.' Setup page: https://synorb.com/connect/start Synorb IDs are 17-digit strings. If the chat shows the user's role or interests, you can propose 1-3 beacons with synorb-configure-beacon, one-line reason each. If you know little, offer the starter beacons (synorb-beacons, tag 'starter'). After a specific answer, offer to save it as a beacon. A beacon is saved only after a yes. You run the cadence by pulling; Synorb does not push. Guides, per task: https://synorb.com/agent-guides/index.json; present via https://synorb.com/agent-guides/present-manifests-to-your-users.md Routing: usage/status -> synorb-profile only. Inventory/source/podcast -> synorb-stream-search, not catalog. Named entity/latest update -> one bounded synorb-manifests call with tag_names. Published BY X uses source_class/evidence_type; ABOUT X uses tag_names. Exact source/form -> synorb-manifests(source_channel_names=['scotus-opinions'], days=90) or sec_form_type (e.g. '8-K', '10-Q') with ticker/identifier scope for SEC forms; never substitute adjacent forms. Manifests: page_size 5-20; date/entity/topic/source filters. count/orient are zero-usage preflight (count has no bodies; orient samples are not exhaustive). mode='plan' is zero-usage and returns a plan_token; partial plans need accept_partial_plan=true. If no on-topic Manifests match, say so. On-topic relevance: when results drift off topic, a broader retry does not help. Use one focused call per topic. Off-topic manifests are noise. Beacons: configure-beacon is a keyless preview; save/list/update/archive need a token. Configure -> user yes -> save returns beacon_id; pull with synorb-manifests(beacon_id=..., explicit lookback), dedupe by manifest_id. Answers: for Manifest answers, include quota_header accurately. If coverage.status is partial, say that next; cite source URLs. Present (reasoning-v1): a briefing from presentation_items claims and quotes; open from briefing.scaffold; links inline; source index last.

Tools

11 advertised

synorb-get-demo-key — Get Demo Key
Advertised by the server during the last successful anonymous check.

Tip: while you set up, a short note to your user helps. For example: 'I'm getting a Synorb demo key and connecting. This can take a minute or two.' Setup page: https://synorb.com/connect/start Self-provision a free 72-hour Synorb demo key. No email, no form, no browser step -- for agent runtimes that cannot call POST /api/connect/demo-key or inject an Authorization header into an already-open MCP session. Keyless: call this with no credential at all. New keys are capped per network; on demo_key_rate_limited, follow next_step (bind an email) or wait retry_after_seconds, and reuse the key you already have instead of calling again. Reuse is per visitor, not per network: pass back the `visitor_token` from your earlier response to get the SAME key; a call without it mints a new org and quota. Once you hold the key, prefer sending it as `Authorization: Bearer <api_key>` on later tool calls; only pass it as the `api_key` argument on a tool call itself if your MCP host genuinely cannot set headers on this session -- that argument may then be visible in your own transcripts/logs, so it is the documented fallback, not the recommended path.

synorb-get-demo-key input schema
{
  "type": "object",
  "title": "synorb_get_demo_keyArguments",
  "required": [],
  "properties": {
    "agent_name": {
      "type": "string",
      "title": "Agent Name",
      "default": "",
      "description": "Optional name/identifier of the calling agent; used only for audit logging."
    },
    "visitor_token": {
      "type": "string",
      "title": "Visitor Token",
      "default": ""
    }
  }
}
synorb-get-demo-key output schema
{
  "type": "object",
  "title": "synorb_get_demo_keyDictOutput",
  "additionalProperties": true
}
synorb-get-demo-key annotations
{
  "title": "Get Demo Key",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
synorb-catalog
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Rank Stream candidates for ambiguous research topics. 17-digit Synorb ID values: pass them as JSON strings, never a number. USE THIS WHEN: source choice is unclear after stream-search or the user needs candidate Streams. DO NOT USE THIS WHEN: the user named specific entities, asks inventory/source availability, or needs content directly.

synorb-catalog input schema
{
  "type": "object",
  "title": "synorb_catalogArguments",
  "required": [],
  "properties": {
    "page": {
      "type": "integer",
      "title": "Page",
      "default": 0,
      "description": "Zero-based page index."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "default": "",
      "description": "Intent/topic for Stream ranking."
    },
    "search": {
      "type": "string",
      "title": "Search",
      "default": "",
      "description": "Alias for query when query is blank."
    },
    "subtype": {
      "type": "string",
      "title": "Subtype",
      "default": "",
      "description": "Optional subtype within tag_type."
    },
    "surface": {
      "type": "string",
      "title": "Surface",
      "default": "",
      "description": "Canonical surface id, e.g. 'public_companies'; returns Streams whose surface_ids include it. Unknown ids list valid ones."
    },
    "tag_type": {
      "type": "string",
      "title": "Tag Type",
      "default": "",
      "description": "Tag type, e.g. organization/topic."
    },
    "page_size": {
      "type": "integer",
      "title": "Page Size",
      "default": 20,
      "description": "Stream candidates per page; capped."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "standard",
      "description": "minimal, standard, or verbose."
    },
    "home_domain": {
      "type": "string",
      "title": "Home Domain",
      "default": "",
      "description": "Single canonical home domain."
    },
    "home_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Home Domains",
      "default": null,
      "description": "Canonical home domains, or ['all']."
    },
    "media_format": {
      "type": "string",
      "title": "Media Format",
      "default": "",
      "description": "Content surface, e.g. text/audio/data."
    },
    "cross_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Cross Domains",
      "default": null,
      "description": "Up to 3 secondary domains."
    },
    "cross_domain_logic": {
      "type": "string",
      "title": "Cross Domain Logic",
      "default": "or",
      "description": "'or' for any, 'and' for all."
    }
  }
}
synorb-catalog output schema
{
  "type": "object",
  "title": "synorb_catalogDictOutput",
  "additionalProperties": true
}
synorb-catalog annotations
{
  "title": "Stream Catalog",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Inspect Stream metadata, source channels, filters, and recent volume. 17-digit Synorb ID values: pass them as JSON strings, never a number. USE THIS WHEN: you have stream_ids and need source/filter details before pulling Manifests. DO NOT USE THIS WHEN: the user wants content/news; use synorb-manifests.

synorb-details input schema
{
  "type": "object",
  "title": "synorb_detailsArguments",
  "required": [],
  "properties": {
    "stream_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Stream Id",
      "default": null,
      "description": "Single Stream ID."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "standard",
      "description": "minimal, standard, or verbose."
    },
    "stream_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Stream Ids",
      "default": null,
      "description": "Stream IDs from catalog/search."
    }
  }
}
synorb-details output schema
{
  "type": "object",
  "title": "synorb_detailsDictOutput",
  "additionalProperties": true
}
synorb-details annotations
{
  "title": "Stream Details",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-stream-search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search accessible Stream/source inventory with typo and synonym handling. 17-digit Synorb ID values: pass them as JSON strings, never a number. USE THIS WHEN: the user asks what streams/sources/podcasts/publishers are available. DO NOT USE THIS WHEN: the user needs actual Manifest content or already named exact content filters.

synorb-stream-search input schema
{
  "type": "object",
  "title": "synorb_stream_searchArguments",
  "required": [],
  "properties": {
    "isin": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Isin",
      "default": null,
      "description": "Exact equity ISIN(s)."
    },
    "page": {
      "type": "integer",
      "title": "Page",
      "default": 0,
      "description": "Zero-based page index."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "default": "",
      "description": "Inventory/source search text."
    },
    "ticker": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ticker",
      "default": null,
      "description": "Exact public-company ticker(s)."
    },
    "surface": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Surface",
      "default": null,
      "description": "Canonical surface id, e.g. 'public_companies'. Unknown ids list valid ones."
    },
    "page_size": {
      "type": "integer",
      "title": "Page Size",
      "default": 10,
      "description": "Inventory results per page; capped."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "minimal",
      "description": "minimal, standard, or verbose."
    },
    "home_domain": {
      "type": "string",
      "title": "Home Domain",
      "default": "",
      "description": "Single canonical home domain."
    },
    "company_kind": {
      "type": "string",
      "title": "Company Kind",
      "default": "",
      "description": "Optional facet: public or private."
    },
    "home_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Home Domains",
      "default": null,
      "description": "Canonical domains or ['all']."
    },
    "media_format": {
      "type": "string",
      "title": "Media Format",
      "default": "",
      "description": "Content surface, e.g. text/audio/data."
    },
    "cross_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Cross Domains",
      "default": null,
      "description": "Up to 3 secondary domains."
    },
    "query_relation": {
      "enum": [
        "auto",
        "exact_names",
        "compound_topic",
        "topic_set"
      ],
      "type": "string",
      "title": "Query Relation",
      "default": "auto",
      "description": "auto is broad. exact_names resolves declared Stream names. compound_topic needs all concepts in one Stream's text. topic_set is a broad union. Catalog evidence only."
    },
    "include_details": {
      "type": "boolean",
      "title": "Include Details",
      "default": false,
      "description": "Include source-channel summaries."
    },
    "inventory_scope": {
      "type": "string",
      "title": "Inventory Scope",
      "default": "live_public_active_mcp",
      "description": "Inventory scope label."
    },
    "proof_stream_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Proof Stream Id",
      "default": null,
      "description": "Internal diagnostic Stream ID string. Does not filter or rank."
    },
    "cross_domain_logic": {
      "type": "string",
      "title": "Cross Domain Logic",
      "default": "or",
      "description": "'or' for any, 'and' for all."
    },
    "organization_subtype": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Organization Subtype",
      "default": null,
      "description": "Exact organization tag subtype, e.g. public_company."
    }
  }
}
synorb-stream-search output schema
{
  "type": "object",
  "title": "synorb_stream_searchDictOutput",
  "additionalProperties": true
}
synorb-stream-search annotations
{
  "title": "Stream Search",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-manifests
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Pull, count, or orient over source-cited Manifests. For recurring watches prefer beacon_id with an explicit lookback, and dedupe by manifest_id. delivery_delta=true can use a stream/channel-only Beacon as scope when enabled. stream_ids, home_domains, and source_channel_ids are INTERSECTED; DERIVE source_channel_ids from details/search when unsure. 17-digit Synorb ID values: pass them as JSON strings, never a number. USE THIS WHEN: the user needs evidence/content with date/entity/topic/source filters. DO NOT USE THIS WHEN: the user only asks inventory, usage, or source availability. OUTPUT: write a briefing (reasoning-v1) from claims and supporting_quotes, not from headlines; keep each first-party link inline and end with a source index. briefing.scaffold lists the ranked items, Claims with exact figures, groups and a recipe for the opening. The server makes no model call when you read.

synorb-manifests input schema
{
  "type": "object",
  "title": "synorb_manifestsArguments",
  "required": [],
  "properties": {
    "days": {
      "type": "integer",
      "title": "Days",
      "default": 0,
      "description": "Relative lookback days."
    },
    "isin": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Isin",
      "default": null,
      "description": "Exact equity ISIN(s)."
    },
    "mode": {
      "type": "string",
      "title": "Mode",
      "default": "default",
      "description": "default, count, orient, or plan."
    },
    "page": {
      "type": "integer",
      "title": "Page",
      "default": 0,
      "description": "Zero-based page index."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "default": "",
      "description": "Optional intent for broad planning."
    },
    "ticker": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ticker",
      "default": null,
      "description": "Exact public-company ticker(s)."
    },
    "api_key": {
      "type": "string",
      "title": "Api Key",
      "default": "",
      "description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged."
    },
    "compact": {
      "type": "boolean",
      "title": "Compact",
      "default": false,
      "description": "Scan tier: find items, then read in full."
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Profile",
      "default": null,
      "description": "Reader profile: role, goals, watchlist, exclusions."
    },
    "sec_cik": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Cik",
      "default": null,
      "description": "Exact SEC CIK(s); normalized to ten digits."
    },
    "subtype": {
      "type": "string",
      "title": "Subtype",
      "default": "",
      "description": "Optional subtype within tag_type."
    },
    "tag_ids": {
      "type": "string",
      "title": "Tag Ids",
      "default": "",
      "description": "Tag IDs; comma string/list, combined by tag_logic."
    },
    "tag_type": {
      "type": "string",
      "title": "Tag Type",
      "default": "",
      "description": "Tag type, e.g. organization/topic."
    },
    "auto_plan": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Plan",
      "default": null,
      "description": "Allow server-side broad-query slicing."
    },
    "beacon_id": {
      "type": "string",
      "title": "Beacon Id",
      "default": "",
      "description": "Public Beacon ID (synorb_bcn_...)."
    },
    "page_size": {
      "type": "integer",
      "title": "Page Size",
      "default": 10,
      "description": "Manifests per page."
    },
    "stream_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Stream Id",
      "default": null,
      "description": "Single Stream ID."
    },
    "tag_logic": {
      "type": "string",
      "title": "Tag Logic",
      "default": "or",
      "description": "'and' co-mentions, 'or' any tag."
    },
    "tag_names": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Tag Names",
      "default": null,
      "description": "Human-readable topic/entity filters."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "standard",
      "description": "minimal, standard, or verbose."
    },
    "checkpoint": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Checkpoint",
      "default": null,
      "description": "Opaque signed checkpoint from a prior delta call: the checkpoint object, or its next_page_cursor/commit_cursor string. Send back whichever it gave you."
    },
    "plan_token": {
      "type": "string",
      "title": "Plan Token",
      "default": "",
      "description": "Signed token from mode='plan'; binds default execution to its query and catalog generation."
    },
    "sec_ticker": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Ticker",
      "default": null,
      "description": "Exact ticker(s) stored on SEC filings. Distinct from the broader company ticker scope."
    },
    "session_id": {
      "type": "string",
      "title": "Session Id",
      "default": "",
      "description": "Stable client session UUID."
    },
    "stream_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Stream Ids",
      "default": null,
      "description": "Stream IDs to query."
    },
    "relative_to": {
      "type": "string",
      "title": "Relative To",
      "default": "",
      "description": "Anchor relative windows to the availability ceiling or wall_clock; default is the entitlement ceiling."
    },
    "scan_cursor": {
      "type": "string",
      "title": "Scan Cursor",
      "default": "",
      "description": "Opaque source-mix continuation from pagination.next_scan_cursor. Not snapshot_token; totals and empty-population claims stay unknown."
    },
    "home_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Home Domains",
      "default": null,
      "description": "Domains, or ['all'] with filters."
    },
    "media_format": {
      "type": "string",
      "title": "Media Format",
      "default": "",
      "description": "Content surface, e.g. text/audio/data."
    },
    "significance": {
      "type": "string",
      "title": "Significance",
      "default": "",
      "description": "Optional significance filter."
    },
    "source_class": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Class",
      "default": null,
      "description": "Authorship/source class filter."
    },
    "target_count": {
      "type": "integer",
      "title": "Target Count",
      "default": 10,
      "description": "Desired on-topic Manifests."
    },
    "cross_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Cross Domains",
      "default": null,
      "description": "Up to 3 secondary domains."
    },
    "evidence_type": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Evidence Type",
      "default": null,
      "description": "Evidence/source type filter."
    },
    "sec_form_type": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Form Type",
      "default": null,
      "description": "Exact SEC form type."
    },
    "sec_item_code": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Item Code",
      "default": null,
      "description": "Exact SEC 8-K item code(s), e.g. '5.02'."
    },
    "delivery_delta": {
      "type": "boolean",
      "title": "Delivery Delta",
      "default": false,
      "description": "Incremental sync over the routed-at delivery stream, paged by checkpoint. Narrower than an ordinary call: a Manifest enters it only once routed, so an authoritative zero means nothing was routed in the window, not that nothing matched. Not a substitute for an ordinary count. A stream/channel-only Beacon may scope it (beacon_id, no lookback_hours); refusals name unsupported_fields."
    },
    "lookback_hours": {
      "type": "integer",
      "title": "Lookback Hours",
      "default": 0,
      "description": "Relative date window in hours; works for one-off or Beacon execution."
    },
    "snapshot_token": {
      "type": "string",
      "title": "Snapshot Token",
      "default": "",
      "description": "Opaque subject-bound continuation token returned by a prior exact synorb-manifests page."
    },
    "broaden_sources": {
      "type": "boolean",
      "title": "Broaden Sources",
      "default": false,
      "description": "With beacon_id: let request scope REPLACE the Beacon's saved scope. Default false fails closed."
    },
    "exclude_tag_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Exclude Tag Ids",
      "default": null,
      "description": "Drop matching tag IDs."
    },
    "markdown_version": {
      "type": "string",
      "title": "Markdown Version",
      "default": "1",
      "description": "'2' adds Brief body_markdown_v2 (TL;DR, Key Facts, Why It Matters, Timeline, Unresolved)."
    },
    "response_profile": {
      "type": "string",
      "title": "Response Profile",
      "default": "full",
      "description": "'full' (default) or 'slim'. Slim is a scan tier: it drops source metadata and citation authority and adds a finding_aid. Never changes which Manifests are returned or billed."
    },
    "sec_exhibit_type": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Exhibit Type",
      "default": null,
      "description": "Exact SEC exhibit type(s), e.g. 'EX-10.1'."
    },
    "sec_form_variant": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Form Variant",
      "default": null,
      "description": "Exact SEC form variant(s), e.g. '8-K/A'."
    },
    "allocation_policy": {
      "type": "string",
      "title": "Allocation Policy",
      "default": "",
      "description": "'global' (legacy) or 'balanced' (needs a strict family plan)."
    },
    "exclude_tag_names": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Exclude Tag Names",
      "default": null,
      "description": "Drop matching tag names."
    },
    "published_date_to": {
      "type": "string",
      "title": "Published Date To",
      "default": "",
      "description": "End date, YYYY-MM-DD or relative."
    },
    "required_families": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Required Families",
      "default": null,
      "description": "Deprecated; use required_surfaces. If both are given they must agree after alias translation (business_podcasts -> podcasts)."
    },
    "required_surfaces": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Required Surfaces",
      "default": null,
      "description": "Ordered surface set required by a strict balanced plan. Surfaces not plan-resolvable fail closed with surface_not_yet_queryable."
    },
    "cross_domain_logic": {
      "type": "string",
      "title": "Cross Domain Logic",
      "default": "or",
      "description": "'or' for any, 'and' for all."
    },
    "source_channel_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Channel Ids",
      "default": null,
      "description": "Exact source-channel IDs."
    },
    "accept_partial_plan": {
      "type": "boolean",
      "title": "Accept Partial Plan",
      "default": false,
      "description": "Accept a partial mode='plan' result for default execution; never inferred."
    },
    "exclude_query_terms": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Exclude Query Terms",
      "default": null,
      "description": "Best-effort: drops manifests whose headline/summary/source labels contain any term."
    },
    "include_diagnostics": {
      "type": "boolean",
      "title": "Include Diagnostics",
      "default": false,
      "description": "False (default) omits the large operator/proof blocks regardless of response_profile. True includes them, e.g. to debug a coverage/absence decision. Never changes which manifests are returned or billed."
    },
    "published_date_from": {
      "type": "string",
      "title": "Published Date From",
      "default": "",
      "description": "Start date, YYYY-MM-DD or relative."
    },
    "sec_item_subsection": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sec Item Subsection",
      "default": null,
      "description": "Exact SEC 8-K item subsection(s), e.g. '5.02(e)'."
    },
    "exclude_home_domains": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Exclude Home Domains",
      "default": null,
      "description": "Drop matching home domains."
    },
    "source_channel_names": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Channel Names",
      "default": null,
      "description": "Exact source-channel names/slugs."
    },
    "exclude_source_channel_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Exclude Source Channel Ids",
      "default": null,
      "description": "Drop matching source-channel IDs."
    }
  }
}
synorb-manifests output schema
{
  "type": "object",
  "title": "synorb_manifestsDictOutput",
  "additionalProperties": true
}
synorb-manifests annotations
{
  "title": "Pull Manifests",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
synorb-profile
Advertised by the server during the last successful anonymous check.
Advertised read-only

Account profile, usage, plan, date-window, and freshness. Check plan and existing Beacons early, then propose Beacons from what you know of the user. USE THIS WHEN: the user asks about account, usage, plan, limits, or whether Synorb is working. DO NOT USE THIS WHEN: the user wants content/news; use synorb-manifests.

synorb-profile input schema
{
  "type": "object",
  "title": "synorb_profileArguments",
  "required": [],
  "properties": {
    "api_key": {
      "type": "string",
      "title": "Api Key",
      "default": "",
      "description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "standard",
      "description": "minimal, standard, or verbose."
    }
  }
}
synorb-profile output schema
{
  "type": "object",
  "title": "synorb_profileDictOutput",
  "additionalProperties": true
}
synorb-profile annotations
{
  "title": "Account Profile",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-configure-beacon — Configure Beacon
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Draft a Beacon proposal from a monitoring intent; keyless preview. USE THIS WHEN: the user wants a reusable monitor/tracker or asks to configure a Beacon, or unprompted when you know the user's role, interests, or projects: propose 1-3 with a one-line reason each. DO NOT USE THIS WHEN: the user only wants a one-time content pull or asks to save an already valid proposal. needs_clarification = no proposal; ask its questions.

synorb-configure-beacon input schema
{
  "type": "object",
  "title": "synorb_configure_beaconArguments",
  "required": [],
  "properties": {
    "hints": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Hints",
      "default": null,
      "description": "Optional publishers, topics, date_window ('7d' or {lookback_hours})."
    },
    "intent": {
      "type": "string",
      "title": "Intent",
      "default": "",
      "description": "Monitoring goal to draft."
    },
    "max_streams": {
      "type": "integer",
      "title": "Max Streams",
      "default": 750,
      "description": "Max suggested streams; capped."
    }
  }
}
synorb-configure-beacon output schema
{
  "type": "object",
  "title": "StreamConfigConfigureOutput",
  "properties": {
    "hints": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Hints",
      "default": null
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status",
      "default": null
    },
    "proposal": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Proposal",
      "default": null
    },
    "questions": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Questions",
      "default": null
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Rationale",
      "default": null
    },
    "next_action": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next Action",
      "default": null
    },
    "save_instruction": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Save Instruction",
      "default": null
    },
    "proposal_rationale": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Proposal Rationale",
      "default": null
    },
    "agent_prompt_pattern": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Agent Prompt Pattern",
      "default": null
    }
  },
  "description": "Permissive advertised schema for the Beacon proposal tool.",
  "additionalProperties": true
}
synorb-configure-beacon annotations
{
  "title": "Configure Beacon",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-save-beacon — Save Beacon
Advertised by the server during the last successful anonymous check.
Open-world

Persist a Beacon proposal to the authenticated account. Zero-usage write -- save only after the user's explicit yes, whether they asked for a saved/recurring monitor or agreed to one you proposed. Never call it on your own initiative; a Beacon writes to the user's account and the user decides if and when that happens. Saved Beacons are pulled by your runtime on your own cadence. The response carries dashboard_url, a private link that opens only for signed-in members of the owning org. 17-digit Synorb ID values: pass them as JSON strings, never a number. USE THIS WHEN: the user asked for a Beacon, or agreed to save one you proposed. DO NOT USE THIS WHEN: the user lacks a valid authenticated account, or hasn't asked for or agreed to a saved Beacon yet.

synorb-save-beacon input schema
{
  "type": "object",
  "title": "synorb_save_beaconArguments",
  "required": [],
  "properties": {
    "name": {
      "type": "string",
      "title": "Name",
      "default": "",
      "description": "Optional Beacon name."
    },
    "tags": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Tags",
      "default": null,
      "description": "Optional 1-5 organization tags."
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "",
      "description": "active, draft, archived, or blank."
    },
    "api_key": {
      "type": "string",
      "title": "Api Key",
      "default": "",
      "description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged."
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Profile",
      "default": null,
      "description": "Reader profile: role, goals, watchlist, exclusions."
    },
    "proposal": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Proposal",
      "default": null,
      "description": "Proposal from configure-beacon."
    },
    "stream_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Stream Ids",
      "default": null,
      "description": "Stream IDs from catalog/search."
    },
    "visibility": {
      "type": "string",
      "title": "Visibility",
      "default": "",
      "description": "Beacon visibility; org."
    },
    "description": {
      "type": "string",
      "title": "Description",
      "default": "",
      "description": "Optional Beacon description."
    },
    "prompt_text": {
      "type": "string",
      "title": "Prompt Text",
      "default": "",
      "description": "Optional output prompt text."
    },
    "collection_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Collection Id",
      "default": null,
      "description": "Deprecated numeric collection id."
    },
    "topic_filters": {
      "anyOf": [
        {
          "type": "array",
          "items": {}
        },
        {
          "type": "null"
        }
      ],
      "title": "Topic Filters",
      "default": null,
      "description": "Saved topic filters."
    },
    "entity_filters": {
      "anyOf": [
        {
          "type": "array",
          "items": {}
        },
        {
          "type": "null"
        }
      ],
      "title": "Entity Filters",
      "default": null,
      "description": "Saved entity filters."
    },
    "manifest_config": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Manifest Config",
      "default": null,
      "description": "Optional saved synorb-manifests defaults; must not contain a top-level manifests key."
    },
    "prompt_template_id": {
      "type": "string",
      "title": "Prompt Template Id",
      "default": "",
      "description": "Optional prompt template id."
    },
    "source_channel_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Channel Ids",
      "default": null,
      "description": "Exact source-channel IDs."
    },
    "default_date_window": {
      "type": [
        "object",
        "null"
      ],
      "title": "Default Date Window",
      "default": null,
      "description": "Saved window, e.g. {\"lookback_hours\": 48}."
    },
    "beacon_collection_id": {
      "type": "string",
      "title": "Beacon Collection Id",
      "default": "",
      "description": "Optional collection label."
    },
    "natural_language_intent": {
      "type": "string",
      "title": "Natural Language Intent",
      "default": "",
      "description": "Optional intent text; overrides the proposal's intent."
    }
  }
}
synorb-save-beacon output schema
{
  "type": "object",
  "title": "StreamConfigSaveOutput",
  "properties": {
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error",
      "default": null
    },
    "beacon": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Beacon",
      "default": null
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status",
      "default": null
    },
    "message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Message",
      "default": null
    },
    "beacon_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Beacon Id",
      "default": null
    },
    "error_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Code",
      "default": null
    },
    "quota_charged": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Quota Charged",
      "default": null
    },
    "next_tool_call": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Next Tool Call",
      "default": null
    },
    "retry_guidance": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Retry Guidance",
      "default": null
    },
    "suggested_action": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Suggested Action",
      "default": null
    },
    "execute_instruction": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Execute Instruction",
      "default": null
    },
    "manifest_quota_charged": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Manifest Quota Charged",
      "default": null
    },
    "standing_pull_instruction": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Standing Pull Instruction",
      "default": null
    }
  },
  "description": "Permissive advertised schema for the Beacon save tool.",
  "additionalProperties": true
}
synorb-save-beacon annotations
{
  "title": "Save Beacon",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
synorb-beacons — List Beacons
Advertised by the server during the last successful anonymous check.
Advertised read-only

List saved Beacons for the authenticated account, including starter Beacons (tag 'starter'). Call at session start to see what is already watched. Each item carries dashboard_url, a private link that opens only for signed-in members of the owning org. Pass beacon_id to read one Beacon's full settings and its revision. USE THIS WHEN: the user asks what Beacons exist, needs a beacon_id, or you must read a Beacon before you edit it. DO NOT USE THIS WHEN: the user wants to run Beacon content; use synorb-manifests with beacon_id.

synorb-beacons input schema
{
  "type": "object",
  "title": "synorb_beaconsArguments",
  "required": [],
  "properties": {
    "q": {
      "type": "string",
      "title": "Q",
      "default": "",
      "description": "Substring search across Beacon name and description; empty string means no text filter."
    },
    "tag": {
      "type": "string",
      "title": "Tag",
      "default": "",
      "description": "Exact Beacon tag filter."
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 25,
      "description": "Maximum results; capped by server."
    },
    "offset": {
      "type": "integer",
      "title": "Offset",
      "default": 0,
      "description": "Number of Beacons to skip, for paging past the first page; default 0. Use next_offset from the previous result."
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "",
      "description": "active, draft, archived, or blank."
    },
    "api_key": {
      "type": "string",
      "title": "Api Key",
      "default": "",
      "description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged."
    },
    "beacon_id": {
      "type": "string",
      "title": "Beacon Id",
      "default": "",
      "description": "Read one Beacon's full settings by id."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "standard",
      "description": "minimal, standard, or verbose."
    }
  }
}
synorb-beacons output schema
{
  "type": "object",
  "title": "StreamConfigsInventoryOutput",
  "properties": {
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error",
      "default": null
    },
    "items": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Items",
      "default": null
    },
    "total": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Total",
      "default": null
    },
    "message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Message",
      "default": null
    },
    "error_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Code",
      "default": null
    },
    "retry_guidance": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Retry Guidance",
      "default": null
    },
    "suggested_action": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Suggested Action",
      "default": null
    },
    "standing_pull_instruction": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Standing Pull Instruction",
      "default": null
    }
  },
  "description": "Permissive advertised schema for saved Beacon inventory.",
  "additionalProperties": true
}
synorb-beacons annotations
{
  "title": "List Beacons",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-archive-beacon — Archive Beacon
Advertised by the server during the last successful anonymous check.

Archive a saved Beacon by public beacon_id, only after the user says yes to that specific Beacon (starter Beacons, tag 'starter', included); never on your own initiative. USE THIS WHEN: the user asks to archive/delete/clean up a saved Beacon, or agrees to free a slot under the plan's Beacon cap. DO NOT USE THIS WHEN: the user has not agreed, or only wants to list or run Beacons.

synorb-archive-beacon input schema
{
  "type": "object",
  "title": "synorb_archive_beaconArguments",
  "required": [],
  "properties": {
    "api_key": {
      "type": "string",
      "title": "Api Key",
      "default": "",
      "description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged."
    },
    "beacon_id": {
      "type": "string",
      "title": "Beacon Id",
      "default": "",
      "description": "Public Beacon ID (synorb_bcn_...)."
    },
    "verbosity": {
      "type": "string",
      "title": "Verbosity",
      "default": "standard",
      "description": "minimal, standard, or verbose."
    }
  }
}
synorb-archive-beacon output schema
{
  "type": "object",
  "title": "StreamConfigArchiveOutput",
  "properties": {
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error",
      "default": null
    },
    "beacon": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Beacon",
      "default": null
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status",
      "default": null
    },
    "message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Message",
      "default": null
    },
    "archived": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Archived",
      "default": null
    },
    "beacon_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Beacon Id",
      "default": null
    },
    "error_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Code",
      "default": null
    },
    "quota_charged": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Quota Charged",
      "default": null
    },
    "cleanup_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Cleanup Status",
      "default": null
    },
    "retry_guidance": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Retry Guidance",
      "default": null
    },
    "suggested_action": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Suggested Action",
      "default": null
    },
    "verify_instruction": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Verify Instruction",
      "default": null
    },
    "was_already_archived": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Was Already Archived",
      "default": null
    },
    "manifest_quota_charged": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Manifest Quota Charged",
      "default": null
    }
  },
  "description": "Permissive advertised schema for Beacon archive cleanup.",
  "additionalProperties": true
}
synorb-archive-beacon annotations
{
  "title": "Archive Beacon",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
synorb-update-beacon — Update Beacon
Advertised by the server during the last successful anonymous check.

Change a saved Beacon: name, description, tags, default_date_window, status (active or archived), stream_ids, source_channel_ids, topic_filters, manifest_config_patch (merged by key; it can hold exclude_source_channel_ids, exclude_media_formats and exclude_title_terms, headline phrases to drop), natural_language_intent, prompt_text, visibility, entity_filters (saved only; never applied when a Beacon runs). Ask the user before you change streams, channels, filters or status. A change to default_date_window alone needs no new yes when the user asked for recurring updates. Read the Beacon with synorb-beacons(beacon_id), then pass its revision as expected_revision. dry_run (default true) returns a before/after diff and writes nothing; set dry_run=false after the user says yes, or for a window-only change. Adding scope needs allow_widening=true. Starter Beacons keep surface_ids. 17-digit Synorb ID values: pass them as JSON strings, never a number. USE THIS WHEN: the user asks to change, rename, re-scope, or turn on or off a saved Beacon. DO NOT USE THIS WHEN: the user has not agreed, or wants a new Beacon; use synorb-save-beacon.

synorb-update-beacon input schema
{
  "type": "object",
  "title": "synorb_update_beaconArguments",
  "required": [],
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Name",
      "default": null,
      "description": "New Beacon name."
    },
    "tags": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Tags",
      "default": null,
      "description": "New full tag list."
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "",
      "description": "active or archived; blank means no change."
    },
    "api_key": {
      "type": "string",
      "title": "Api Key",
      "default": "",
      "description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged."
    },
    "dry_run": {
      "type": "boolean",
      "title": "Dry Run",
      "default": true,
      "description": "True returns the diff only. Default true."
    },
    "beacon_id": {
      "type": "string",
      "title": "Beacon Id",
      "default": "",
      "description": "Public Beacon ID (synorb_bcn_...)."
    },
    "stream_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Stream Ids",
      "default": null,
      "description": "New full stream scope."
    },
    "visibility": {
      "type": "string",
      "title": "Visibility",
      "default": "",
      "description": "org, team or private; blank means no change."
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description",
      "default": null,
      "description": "New Beacon description."
    },
    "prompt_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Prompt Text",
      "default": null,
      "description": "New output prompt text."
    },
    "topic_filters": {
      "anyOf": [
        {
          "type": "array",
          "items": {}
        },
        {
          "type": "null"
        }
      ],
      "title": "Topic Filters",
      "default": null,
      "description": "New full topic-filter list."
    },
    "allow_widening": {
      "type": "boolean",
      "title": "Allow Widening",
      "default": false,
      "description": "True permits wider scope. Default false."
    },
    "entity_filters": {
      "anyOf": [
        {
          "type": "array",
          "items": {}
        },
        {
          "type": "null"
        }
      ],
      "title": "Entity Filters",
      "default": null,
      "description": "New full entity-filter list. Saved only, never applied."
    },
    "expected_revision": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Revision",
      "default": null,
      "description": "Beacon revision you read. Required."
    },
    "source_channel_ids": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Channel Ids",
      "default": null,
      "description": "New full source-channel scope."
    },
    "default_date_window": {
      "type": [
        "object",
        "null"
      ],
      "title": "Default Date Window",
      "default": null,
      "description": "Saved window, e.g. {\"lookback_hours\": 48}."
    },
    "manifest_config_patch": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Manifest Config Patch",
      "default": null,
      "description": "manifest_config keys to change; merged by key."
    },
    "natural_language_intent": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Natural Language Intent",
      "default": null,
      "description": "New intent text."
    }
  }
}
synorb-update-beacon output schema
{
  "type": "object",
  "title": "StreamConfigUpdateOutput",
  "properties": {
    "diff": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "title": "Diff",
      "default": null
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status",
      "default": null
    },
    "dry_run": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dry Run",
      "default": null
    },
    "message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Message",
      "default": null
    },
    "beacon_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Beacon Id",
      "default": null
    },
    "error_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Code",
      "default": null
    },
    "new_revision": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "New Revision",
      "default": null
    },
    "previous_revision": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Previous Revision",
      "default": null
    }
  },
  "description": "Permissive advertised schema for the Beacon update tool (kept small: tools/list is size-budgeted).",
  "additionalProperties": true
}
synorb-update-beacon annotations
{
  "title": "Update Beacon",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
560 ms
95th percentile latency
560 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 560 ms · metadata changed · 11 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http synorb-mcp https://mcp.synorb.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add synorb-mcp --url https://mcp.synorb.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable synorb-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "synorb-mcp": {
      "url": "https://mcp.synorb.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "synorb-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.synorb.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start synorb-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "synorb-mcp": {
      "type": "http",
      "url": "https://mcp.synorb.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http synorb-mcp https://mcp.synorb.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "synorb-mcp": {
      "url": "https://mcp.synorb.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "synorb-mcp": {
      "serverUrl": "https://mcp.synorb.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Synorb MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Synorb MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing