Synorb: News, SEC Filings & Central Bank Research
Cited context for AI agents: company news, SEC filings, central bank publications and research.
我該用這個嗎
品質與安全性
發現項目(13)
- HIGH
- MEDIUM在 synorb-get-demo-key 中
- LOW在 synorb-get-demo-key 中
- LOW在 synorb-catalog 中
- LOW在 synorb-details 中
- LOW在 synorb-stream-search 中
- LOW在 synorb-manifests 中
- LOW在 synorb-profile 中
- LOW在 synorb-configure-beacon 中
- LOW在 synorb-save-beacon 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.synorb.com/mcp"
}
}
}遠端端點
https://mcp.synorb.com/mcpstreamable-http它能做什麼
工具清單
工具(11)
🟡synorb-get-demo-key(agent_name, visitor_token)
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",
"properties": {
"agent_name": {
"default": "",
"description": "Optional name/identifier of the calling agent; used only for audit logging.",
"title": "Agent Name",
"type": "string"
},
"visitor_token": {
"default": "",
"title": "Visitor Token",
"type": "string"
}
},
"required": [],
"title": "synorb_get_demo_keyArguments"
}輸出結構描述
{
"type": "object",
"additionalProperties": true,
"title": "synorb_get_demo_keyDictOutput"
}🟢synorb-catalog(query, search, home_domain, home_domains, cross_domains, ...)
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",
"properties": {
"query": {
"default": "",
"description": "Intent/topic for Stream ranking.",
"title": "Query",
"type": "string"
},
"search": {
"default": "",
"description": "Alias for query when query is blank.",
"title": "Search",
"type": "string"
},
"home_domain": {
"default": "",
"description": "Single canonical home domain.",
"title": "Home Domain",
"type": "string"
},
"home_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Canonical home domains, or ['all'].",
"title": "Home Domains"
},
"cross_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Up to 3 secondary domains.",
"title": "Cross Domains"
},
"cross_domain_logic": {
"default": "or",
"description": "'or' for any, 'and' for all.",
"title": "Cross Domain Logic",
"type": "string"
},
"media_format": {
"default": "",
"description": "Content surface, e.g. text/audio/data.",
"title": "Media Format",
"type": "string"
},
"tag_type": {
"default": "",
"description": "Tag type, e.g. organization/topic.",
"title": "Tag Type",
"type": "string"
},
"subtype": {
"default": "",
"description": "Optional subtype within tag_type.",
"title": "Subtype",
"type": "string"
},
"surface": {
"default": "",
"description": "Canonical surface id, e.g. 'public_companies'; returns Streams whose surface_ids include it. Unknown ids list valid ones.",
"title": "Surface",
"type": "string"
},
"page": {
"default": 0,
"description": "Zero-based page index.",
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 20,
"description": "Stream candidates per page; capped.",
"title": "Page Size",
"type": "integer"
},
"verbosity": {
"default": "standard",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
}
},
"required": [],
"title": "synorb_catalogArguments"
}輸出結構描述
{
"type": "object",
"additionalProperties": true,
"title": "synorb_catalogDictOutput"
}🟢synorb-details(stream_ids, stream_id, verbosity)
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",
"properties": {
"stream_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Stream IDs from catalog/search.",
"title": "Stream Ids"
},
"stream_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Single Stream ID.",
"title": "Stream Id"
},
"verbosity": {
"default": "standard",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
}
},
"required": [],
"title": "synorb_detailsArguments"
}輸出結構描述
{
"type": "object",
"additionalProperties": true,
"title": "synorb_detailsDictOutput"
}🟢synorb-stream-search(query, home_domain, home_domains, cross_domains, cross_domain_logic, ...)
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",
"properties": {
"query": {
"default": "",
"description": "Inventory/source search text.",
"title": "Query",
"type": "string"
},
"home_domain": {
"default": "",
"description": "Single canonical home domain.",
"title": "Home Domain",
"type": "string"
},
"home_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Canonical domains or ['all'].",
"title": "Home Domains"
},
"cross_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Up to 3 secondary domains.",
"title": "Cross Domains"
},
"cross_domain_logic": {
"default": "or",
"description": "'or' for any, 'and' for all.",
"title": "Cross Domain Logic",
"type": "string"
},
"media_format": {
"default": "",
"description": "Content surface, e.g. text/audio/data.",
"title": "Media Format",
"type": "string"
},
"company_kind": {
"default": "",
"description": "Optional facet: public or private.",
"title": "Company Kind",
"type": "string"
},
"ticker": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact public-company ticker(s).",
"title": "Ticker"
},
"isin": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact equity ISIN(s).",
"title": "Isin"
},
"page": {
"default": 0,
"description": "Zero-based page index.",
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 10,
"description": "Inventory results per page; capped.",
"title": "Page Size",
"type": "integer"
},
"include_details": {
"default": false,
"description": "Include source-channel summaries.",
"title": "Include Details",
"type": "boolean"
},
"inventory_scope": {
"default": "live_public_active_mcp",
"description": "Inventory scope label.",
"title": "Inventory Scope",
"type": "string"
},
"verbosity": {
"default": "minimal",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
},
"organization_subtype": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact organization tag subtype, e.g. public_company.",
"title": "Organization Subtype"
},
"surface": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Canonical surface id, e.g. 'public_companies'. Unknown ids list valid ones.",
"title": "Surface"
},
"proof_stream_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Internal diagnostic Stream ID string. Does not filter or rank.",
"title": "Proof Stream Id"
},
"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.",
"enum": [
"auto",
"exact_names",
"compound_topic",
"topic_set"
],
"title": "Query Relation",
"type": "string"
}
},
"required": [],
"title": "synorb_stream_searchArguments"
}輸出結構描述
{
"type": "object",
"additionalProperties": true,
"title": "synorb_stream_searchDictOutput"
}🟢synorb-manifests(query, stream_id, stream_ids, home_domains, cross_domains, ...)
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",
"properties": {
"query": {
"default": "",
"description": "Optional intent for broad planning.",
"title": "Query",
"type": "string"
},
"stream_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Single Stream ID.",
"title": "Stream Id"
},
"stream_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Stream IDs to query.",
"title": "Stream Ids"
},
"home_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Domains, or ['all'] with filters.",
"title": "Home Domains"
},
"cross_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Up to 3 secondary domains.",
"title": "Cross Domains"
},
"cross_domain_logic": {
"default": "or",
"description": "'or' for any, 'and' for all.",
"title": "Cross Domain Logic",
"type": "string"
},
"published_date_from": {
"default": "",
"description": "Start date, YYYY-MM-DD or relative.",
"title": "Published Date From",
"type": "string"
},
"published_date_to": {
"default": "",
"description": "End date, YYYY-MM-DD or relative.",
"title": "Published Date To",
"type": "string"
},
"days": {
"default": 0,
"description": "Relative lookback days.",
"title": "Days",
"type": "integer"
},
"tag_ids": {
"default": "",
"description": "Tag IDs; comma string/list, combined by tag_logic.",
"title": "Tag Ids",
"type": "string"
},
"tag_names": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Human-readable topic/entity filters.",
"title": "Tag Names"
},
"tag_type": {
"default": "",
"description": "Tag type, e.g. organization/topic.",
"title": "Tag Type",
"type": "string"
},
"subtype": {
"default": "",
"description": "Optional subtype within tag_type.",
"title": "Subtype",
"type": "string"
},
"tag_logic": {
"default": "or",
"description": "'and' co-mentions, 'or' any tag.",
"title": "Tag Logic",
"type": "string"
},
"media_format": {
"default": "",
"description": "Content surface, e.g. text/audio/data.",
"title": "Media Format",
"type": "string"
},
"source_class": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Authorship/source class filter.",
"title": "Source Class"
},
"evidence_type": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Evidence/source type filter.",
"title": "Evidence Type"
},
"ticker": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact public-company ticker(s).",
"title": "Ticker"
},
"isin": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact equity ISIN(s).",
"title": "Isin"
},
"sec_form_type": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact SEC form type.",
"title": "Sec Form Type"
},
"sec_form_variant": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact SEC form variant(s), e.g. '8-K/A'.",
"title": "Sec Form Variant"
},
"sec_cik": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact SEC CIK(s); normalized to ten digits.",
"title": "Sec Cik"
},
"sec_ticker": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact ticker(s) stored on SEC filings. Distinct from the broader company ticker scope.",
"title": "Sec Ticker"
},
"sec_item_code": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact SEC 8-K item code(s), e.g. '5.02'.",
"title": "Sec Item Code"
},
"sec_item_subsection": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact SEC 8-K item subsection(s), e.g. '5.02(e)'.",
"title": "Sec Item Subsection"
},
"sec_exhibit_type": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact SEC exhibit type(s), e.g. 'EX-10.1'.",
"title": "Sec Exhibit Type"
},
"source_channel_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact source-channel IDs.",
"title": "Source Channel Ids"
},
"source_channel_names": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact source-channel names/slugs.",
"title": "Source Channel Names"
},
"significance": {
"default": "",
"description": "Optional significance filter.",
"title": "Significance",
"type": "string"
},
"page": {
"default": 0,
"description": "Zero-based page index.",
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 10,
"description": "Manifests per page.",
"title": "Page Size",
"type": "integer"
},
"target_count": {
"default": 10,
"description": "Desired on-topic Manifests.",
"title": "Target Count",
"type": "integer"
},
"snapshot_token": {
"default": "",
"description": "Opaque subject-bound continuation token returned by a prior exact synorb-manifests page.",
"title": "Snapshot Token",
"type": "string"
},
"scan_cursor": {
"default": "",
"description": "Opaque source-mix continuation from pagination.next_scan_cursor. Not snapshot_token; totals and empty-population claims stay unknown.",
"title": "Scan Cursor",
"type": "string"
},
"compact": {
"default": false,
"description": "Scan tier: find items, then read in full.",
"title": "Compact",
"type": "boolean"
},
"markdown_version": {
"default": "1",
"description": "'2' adds Brief body_markdown_v2 (TL;DR, Key Facts, Why It Matters, Timeline, Unresolved).",
"title": "Markdown Version",
"type": "string"
},
"auto_plan": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Allow server-side broad-query slicing.",
"title": "Auto Plan"
},
"exclude_tag_names": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop matching tag names.",
"title": "Exclude Tag Names"
},
"exclude_tag_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop matching tag IDs.",
"title": "Exclude Tag Ids"
},
"exclude_query_terms": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Best-effort: drops manifests whose headline/summary/source labels contain any term.",
"title": "Exclude Query Terms"
},
"exclude_source_channel_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop matching source-channel IDs.",
"title": "Exclude Source Channel Ids"
},
"exclude_home_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop matching home domains.",
"title": "Exclude Home Domains"
},
"session_id": {
"default": "",
"description": "Stable client session UUID.",
"title": "Session Id",
"type": "string"
},
"beacon_id": {
"default": "",
"description": "Public Beacon ID (synorb_bcn_...).",
"title": "Beacon Id",
"type": "string"
},
"lookback_hours": {
"default": 0,
"description": "Relative date window in hours; works for one-off or Beacon execution.",
"title": "Lookback Hours",
"type": "integer"
},
"broaden_sources": {
"default": false,
"description": "With beacon_id: let request scope REPLACE the Beacon's saved scope. Default false fails closed.",
"title": "Broaden Sources",
"type": "boolean"
},
"mode": {
"default": "default",
"description": "default, count, orient, or plan.",
"title": "Mode",
"type": "string"
},
"verbosity": {
"default": "standard",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
},
"plan_token": {
"default": "",
"description": "Signed token from mode='plan'; binds default execution to its query and catalog generation.",
"title": "Plan Token",
"type": "string"
},
"accept_partial_plan": {
"default": false,
"description": "Accept a partial mode='plan' result for default execution; never inferred.",
"title": "Accept Partial Plan",
"type": "boolean"
},
"relative_to": {
"default": "",
"description": "Anchor relative windows to the availability ceiling or wall_clock; default is the entitlement ceiling.",
"title": "Relative To",
"type": "string"
},
"checkpoint": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"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.",
"title": "Checkpoint"
},
"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.",
"title": "Delivery Delta",
"type": "boolean"
},
"allocation_policy": {
"default": "",
"description": "'global' (legacy) or 'balanced' (needs a strict family plan).",
"title": "Allocation Policy",
"type": "string"
},
"required_families": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Deprecated; use required_surfaces. If both are given they must agree after alias translation (business_podcasts -> podcasts).",
"title": "Required Families"
},
"required_surfaces": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Ordered surface set required by a strict balanced plan. Surfaces not plan-resolvable fail closed with surface_not_yet_queryable.",
"title": "Required Surfaces"
},
"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.",
"title": "Response Profile",
"type": "string"
},
"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.",
"title": "Include Diagnostics",
"type": "boolean"
},
"api_key": {
"default": "",
"description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged.",
"title": "Api Key",
"type": "string"
},
"profile": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Reader profile: role, goals, watchlist, exclusions.",
"title": "Profile"
}
},
"required": [],
"title": "synorb_manifestsArguments"
}輸出結構描述
{
"type": "object",
"additionalProperties": true,
"title": "synorb_manifestsDictOutput"
}🟢synorb-profile(verbosity, api_key)
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",
"properties": {
"verbosity": {
"default": "standard",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
},
"api_key": {
"default": "",
"description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged.",
"title": "Api Key",
"type": "string"
}
},
"required": [],
"title": "synorb_profileArguments"
}輸出結構描述
{
"type": "object",
"additionalProperties": true,
"title": "synorb_profileDictOutput"
}🟢synorb-configure-beacon(intent, hints, max_streams)
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",
"properties": {
"intent": {
"default": "",
"description": "Monitoring goal to draft.",
"title": "Intent",
"type": "string"
},
"hints": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional publishers, topics, date_window ('7d' or {lookback_hours}).",
"title": "Hints"
},
"max_streams": {
"default": 750,
"description": "Max suggested streams; capped.",
"title": "Max Streams",
"type": "integer"
}
},
"required": [],
"title": "synorb_configure_beaconArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"proposal": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Proposal"
},
"save_instruction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Save Instruction"
},
"agent_prompt_pattern": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Prompt Pattern"
},
"questions": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Questions"
},
"hints": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Hints"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rationale"
},
"next_action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Next Action"
},
"proposal_rationale": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Proposal Rationale"
}
},
"additionalProperties": true,
"description": "Permissive advertised schema for the Beacon proposal tool.",
"title": "StreamConfigConfigureOutput"
}🟡synorb-save-beacon(proposal, name, description, tags, collection_id, ...)
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",
"properties": {
"proposal": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Proposal from configure-beacon.",
"title": "Proposal"
},
"name": {
"default": "",
"description": "Optional Beacon name.",
"title": "Name",
"type": "string"
},
"description": {
"default": "",
"description": "Optional Beacon description.",
"title": "Description",
"type": "string"
},
"tags": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional 1-5 organization tags.",
"title": "Tags"
},
"collection_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Deprecated numeric collection id.",
"title": "Collection Id"
},
"beacon_collection_id": {
"default": "",
"description": "Optional collection label.",
"title": "Beacon Collection Id",
"type": "string"
},
"status": {
"default": "",
"description": "active, draft, archived, or blank.",
"title": "Status",
"type": "string"
},
"visibility": {
"default": "",
"description": "Beacon visibility; org.",
"title": "Visibility",
"type": "string"
},
"natural_language_intent": {
"default": "",
"description": "Optional intent text; overrides the proposal's intent.",
"title": "Natural Language Intent",
"type": "string"
},
"source_channel_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact source-channel IDs.",
"title": "Source Channel Ids"
},
"stream_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Stream IDs from catalog/search.",
"title": "Stream Ids"
},
"manifest_config": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional saved synorb-manifests defaults; must not contain a top-level manifests key.",
"title": "Manifest Config"
},
"topic_filters": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Saved topic filters.",
"title": "Topic Filters"
},
"entity_filters": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Saved entity filters.",
"title": "Entity Filters"
},
"default_date_window": {
"default": null,
"description": "Saved window, e.g. {\"lookback_hours\": 48}.",
"title": "Default Date Window",
"type": [
"object",
"null"
]
},
"prompt_template_id": {
"default": "",
"description": "Optional prompt template id.",
"title": "Prompt Template Id",
"type": "string"
},
"prompt_text": {
"default": "",
"description": "Optional output prompt text.",
"title": "Prompt Text",
"type": "string"
},
"profile": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Reader profile: role, goals, watchlist, exclusions.",
"title": "Profile"
},
"api_key": {
"default": "",
"description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged.",
"title": "Api Key",
"type": "string"
}
},
"required": [],
"title": "synorb_save_beaconArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"beacon_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Beacon Id"
},
"beacon": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Beacon"
},
"execute_instruction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Execute Instruction"
},
"standing_pull_instruction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Standing Pull Instruction"
},
"next_tool_call": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Next Tool Call"
},
"quota_charged": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Quota Charged"
},
"manifest_quota_charged": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Manifest Quota Charged"
},
"error_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error Code"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"suggested_action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Suggested Action"
},
"retry_guidance": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Retry Guidance"
}
},
"additionalProperties": true,
"description": "Permissive advertised schema for the Beacon save tool.",
"title": "StreamConfigSaveOutput"
}🟢synorb-beacons(status, tag, q, limit, offset, ...)
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",
"properties": {
"status": {
"default": "",
"description": "active, draft, archived, or blank.",
"title": "Status",
"type": "string"
},
"tag": {
"default": "",
"description": "Exact Beacon tag filter.",
"title": "Tag",
"type": "string"
},
"q": {
"default": "",
"description": "Substring search across Beacon name and description; empty string means no text filter.",
"title": "Q",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum results; capped by server.",
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of Beacons to skip, for paging past the first page; default 0. Use next_offset from the previous result.",
"title": "Offset",
"type": "integer"
},
"verbosity": {
"default": "standard",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
},
"beacon_id": {
"default": "",
"description": "Read one Beacon's full settings by id.",
"title": "Beacon Id",
"type": "string"
},
"api_key": {
"default": "",
"description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged.",
"title": "Api Key",
"type": "string"
}
},
"required": [],
"title": "synorb_beaconsArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"items": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Items"
},
"total": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Total"
},
"standing_pull_instruction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Standing Pull Instruction"
},
"error_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error Code"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"suggested_action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Suggested Action"
},
"retry_guidance": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Retry Guidance"
}
},
"additionalProperties": true,
"description": "Permissive advertised schema for saved Beacon inventory.",
"title": "StreamConfigsInventoryOutput"
}🟢synorb-archive-beacon(beacon_id, verbosity, api_key)
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",
"properties": {
"beacon_id": {
"default": "",
"description": "Public Beacon ID (synorb_bcn_...).",
"title": "Beacon Id",
"type": "string"
},
"verbosity": {
"default": "standard",
"description": "minimal, standard, or verbose.",
"title": "Verbosity",
"type": "string"
},
"api_key": {
"default": "",
"description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged.",
"title": "Api Key",
"type": "string"
}
},
"required": [],
"title": "synorb_archive_beaconArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"beacon_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Beacon Id"
},
"beacon": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Beacon"
},
"archived": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Archived"
},
"was_already_archived": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Was Already Archived"
},
"cleanup_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cleanup Status"
},
"verify_instruction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Verify Instruction"
},
"quota_charged": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Quota Charged"
},
"manifest_quota_charged": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Manifest Quota Charged"
},
"error_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error Code"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"suggested_action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Suggested Action"
},
"retry_guidance": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Retry Guidance"
}
},
"additionalProperties": true,
"description": "Permissive advertised schema for Beacon archive cleanup.",
"title": "StreamConfigArchiveOutput"
}🟡synorb-update-beacon(beacon_id, expected_revision, dry_run, allow_widening, name, ...)
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",
"properties": {
"beacon_id": {
"default": "",
"description": "Public Beacon ID (synorb_bcn_...).",
"title": "Beacon Id",
"type": "string"
},
"expected_revision": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Beacon revision you read. Required.",
"title": "Expected Revision"
},
"dry_run": {
"default": true,
"description": "True returns the diff only. Default true.",
"title": "Dry Run",
"type": "boolean"
},
"allow_widening": {
"default": false,
"description": "True permits wider scope. Default false.",
"title": "Allow Widening",
"type": "boolean"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "New Beacon name.",
"title": "Name"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "New Beacon description.",
"title": "Description"
},
"tags": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "New full tag list.",
"title": "Tags"
},
"default_date_window": {
"default": null,
"description": "Saved window, e.g. {\"lookback_hours\": 48}.",
"title": "Default Date Window",
"type": [
"object",
"null"
]
},
"status": {
"default": "",
"description": "active or archived; blank means no change.",
"title": "Status",
"type": "string"
},
"stream_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "New full stream scope.",
"title": "Stream Ids"
},
"source_channel_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "New full source-channel scope.",
"title": "Source Channel Ids"
},
"topic_filters": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "New full topic-filter list.",
"title": "Topic Filters"
},
"manifest_config_patch": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "manifest_config keys to change; merged by key.",
"title": "Manifest Config Patch"
},
"entity_filters": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "New full entity-filter list. Saved only, never applied.",
"title": "Entity Filters"
},
"natural_language_intent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "New intent text.",
"title": "Natural Language Intent"
},
"prompt_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "New output prompt text.",
"title": "Prompt Text"
},
"visibility": {
"default": "",
"description": "org, team or private; blank means no change.",
"title": "Visibility",
"type": "string"
},
"api_key": {
"default": "",
"description": "Synorb key; only if the Authorization header is not set. Tool arguments may be logged.",
"title": "Api Key",
"type": "string"
}
},
"required": [],
"title": "synorb_update_beaconArguments"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"beacon_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Beacon Id"
},
"dry_run": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Dry Run"
},
"diff": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Diff"
},
"previous_revision": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Previous Revision"
},
"new_revision": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "New Revision"
},
"error_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error Code"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
}
},
"additionalProperties": true,
"description": "Permissive advertised schema for the Beacon update tool (kept small: tools/list is size-budgeted).",
"title": "StreamConfigUpdateOutput"
}社群
證據