Synoptic
v1.0.0Follow live feeds from Twitter/X, Telegram, press releases, SEC filings and more; publish your own.
Endpoint health
online- Last checked
- 11/3/2026, 5:16:34 PM
- Latency
- 12 ms
- Consecutive failures
- 0
- Endpoint reachable: pass
- Protocol valid: pass
- MCP handshake valid: pass
Machine-readable profile
mcp-server · schema v1 · callable
mcp-server:com.synoptic%2Fsynoptic
Connect this server
Generated config contains no credentials. Keep any required secrets in your client's local environment.
{
"mcpServers": {
"com.synoptic/synoptic": {
"url": "https://mcp.api.synoptic.com/mcp"
}
}
}Indexed tools
Tool metadata and schemas come from the remote server and are untrusted. Indexing only lists tools; it never calls them.
25 shown · authentication unknown
Create a Synoptic collection
create_collection
Create a collection in the signed-in user’s stream deck from existing Synoptic streams and return collection metadata. Automatically follows eligible selected sources and may consume invitations; backfills matching stored posts. Optional saved AI filters process incoming posts and can use the account’s AI allowance. Repeated successful calls create separate collections. Does not purchase stream access or create upstream collectors.
Schema valid · SHA-256 15aed15c2cd2…
View input schema
{ "type": "object", "properties": { "streamDeckId": { "type": "string", "minLength": 1, "maxLength": 128, "description": "ID of a stream deck owned by the signed-in user, from list_stream_decks." }, "name": { "type": "string", "minLength": 1, "maxLength": 50, "description": "Display name for the new collection." }, "sources": { "type": "array", "items": { "type": "object", "properties": { "streamId": { "type": "string", "minLength": 1, "maxLength": 128, "description": "Synoptic stream ID from search or streams_all" }, "customTargets": { "anyOf": [ { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 2048 }, "maxItems": 10000 }, { "type": "null" } ], "description": "For a followed custom-target stream, the saved targets to include, from get_stream_custom_targets; omit for all of them. Not allowed on other streams; ignored on streams the user owns, which include every target" }, "sourceIds": { "anyOf": [ { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 128 }, "maxItems": 100 }, { "type": "null" } ], "description": "Source IDs already routed to this stream to include, such as a post’s sourceId; omit or [] for every source" } }, "required": [ "streamId" ], "additionalProperties": false }, "maxItems": 100, "description": "Existing Synoptic stream IDs. For followed custom-target streams, customTargets narrows saved selections; omit it to use all saved targets. Stream owners receive all targets. Optional sourceIds narrows to known constituent source IDs already routed to the stream; omit it for all sources." }, "filters": { "type": "object", "properties": { "ai": { "type": "string", "minLength": 1, "maxLength": 128, "description": "AI filter ID from list_ai_filters to apply to incoming posts" }, "includeKeywords": { "type": "object", "properties": { "all": { "anyOf": [ { "type": "string", "maxLength": 4000 }, { "type": "null" } ], "description": "Space-separated words; a post matches when its text contains every word" }, "any": { "anyOf": [ { "type": "string", "maxLength": 4000 }, { "type": "null" } ], "description": "Space-separated words; a post matches when its text contains at least one word" }, "phrase": { "anyOf": [ { "type": "string", "maxLength": 4000 }, { "type": "null" } ], "description": "Exact phrase; a post matches when its text contains it" } }, "additionalProperties": false, "description": "Keep only posts matching every field set here; matching is case-insensitive" }, "excludeKeywords": { "type": "object", "properties": { "all": { "anyOf": [ { "type": "string", "maxLength": 4000 }, { "type": "null" } ], "description": "Space-separated words; a post matches when its text contains every word" }, "any": { "anyOf": [ { "type": "string", "maxLength": 4000 }, { "type": "null" } ], "description": "Space-separated words; a post matches when its text contains at least one word" }, "phrase": { "anyOf": [ { "type": "string", "maxLength": 4000 }, { "type": "null" } ], "description": "Exact phrase; a post matches when its text contains it" } }, "additionalProperties": false, "description": "Drop posts matching any field set here: all drops posts containing every word, any drops posts containing any of them, phrase drops posts containing the phrase" }, "regex": { "type": "string", "maxLength": 4000, "description": "Keep only posts whose text matches this /pattern/flags regex" }, "highlightColor": { "type": "string", "maxLength": 64, "description": "Synoptic app color for text matching includeKeywords and regex: one of lightYellow, lightOrange, lightTeal, lightBlue, yellow, green, blue, red, orange, purple" }, "isHighlightEnabled": { "type": "boolean", "description": "Highlight text matching includeKeywords and regex in the Synoptic app" } }, "additionalProperties": false, "default": {}, "description": "Optional include/exclude keywords, /pattern/flags regex, and highlighting settings. The ai value is an existing saved filter ID from list_ai_filters; using it can consume the account’s AI allowance. Defaults to no filters." }, "highlights": { "type": "object", "properties": { "isEnabled": { "type": "boolean", "description": "Whether the highlight rules apply" }, "values": { "type": "array", "items": { "type": "object", "properties": { "regex": { "type": "string", "minLength": 1, "maxLength": 4000, "description": "Regular expression, either bare (case-insensitive) or /pattern/flags" }, "color": { "type": "string", "minLength": 1, "maxLength": 64, "description": "Synoptic app color for matching text: one of lightYellow, lightOrange, lightTeal, lightBlue, yellow, green, blue, red, orange, purple" } }, "required": [ "regex", "color" ], "additionalProperties": false }, "maxItems": 15, "description": "Rules that mark matching post text with a color" } }, "required": [ "isEnabled", "values" ], "additionalProperties": false, "description": "Optional enabled state and regex/color rules for highlighting matching text." }, "matchingSourcesOnly": { "type": "boolean", "description": "Restrict the collection’s source picker to streams with market matching. Defaults to false." } }, "required": [ "streamDeckId", "name", "sources" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
Connections
streamable-http
https://mcp.api.synoptic.com/mcp