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.
https://mcp.synorb.com/mcpWhat 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
- 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
{
"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.
Tools
11 advertised
synorb-get-demo-key — Get Demo Key
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.
{
"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": ""
}
}
}{
"type": "object",
"title": "synorb_get_demo_keyDictOutput",
"additionalProperties": true
}{
"title": "Get Demo Key",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}synorb-catalog
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.
{
"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."
}
}
}{
"type": "object",
"title": "synorb_catalogDictOutput",
"additionalProperties": true
}{
"title": "Stream Catalog",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}synorb-details
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.
{
"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."
}
}
}{
"type": "object",
"title": "synorb_detailsDictOutput",
"additionalProperties": true
}{
"title": "Stream Details",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}synorb-stream-search
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.
{
"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."
}
}
}{
"type": "object",
"title": "synorb_stream_searchDictOutput",
"additionalProperties": true
}{
"title": "Stream Search",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}synorb-manifests
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.
{
"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."
}
}
}{
"type": "object",
"title": "synorb_manifestsDictOutput",
"additionalProperties": true
}{
"title": "Pull Manifests",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}synorb-profile
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.
{
"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."
}
}
}{
"type": "object",
"title": "synorb_profileDictOutput",
"additionalProperties": true
}{
"title": "Account Profile",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}synorb-configure-beacon — Configure Beacon
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.
{
"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."
}
}
}{
"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
}{
"title": "Configure Beacon",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}synorb-save-beacon — Save Beacon
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.
{
"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."
}
}
}{
"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
}{
"title": "Save Beacon",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}synorb-beacons — List Beacons
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.
{
"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."
}
}
}{
"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
}{
"title": "List Beacons",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}synorb-archive-beacon — Archive Beacon
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.
{
"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."
}
}
}{
"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
}{
"title": "Archive Beacon",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}synorb-update-beacon — Update Beacon
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.
{
"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."
}
}
}{
"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
}{
"title": "Update Beacon",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
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.
Claude Code
claude mcp add --transport http synorb-mcp https://mcp.synorb.com/mcpCodex
codex mcp add synorb-mcp --url https://mcp.synorb.com/mcpCursor
{
"mcpServers": {
"synorb-mcp": {
"url": "https://mcp.synorb.com/mcp"
}
}
}Cline
{
"mcpServers": {
"synorb-mcp": {
"type": "streamableHttp",
"url": "https://mcp.synorb.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"synorb-mcp": {
"type": "http",
"url": "https://mcp.synorb.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http synorb-mcp https://mcp.synorb.com/mcpClaude Desktop
{
"mcpServers": {
"synorb-mcp": {
"url": "https://mcp.synorb.com/mcp"
}
}
}Windsurf
{
"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.
Other ai and machine learning servers
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.