{"server":"com.synoptic/synoptic","count":50,"changes":[{"tool":"get_following_users","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"b0afcaa1b3cd9a056316ccffc47a180e","after_hash":"25885df35d42b351f121f37060397f21"},{"tool":"get_followers","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"a4e146170f342a5df0fda610004eaeb9","after_hash":"c6c965fb3ad208c2d76ccb4a59a203bd"},{"tool":"remove_x_handle","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"c4f5dadb4554833a38fbbba07c30749a","after_hash":"488e4a9c98d46bfe0ede1ee3ca0107bd"},{"tool":"set_username","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"abeba235a95bda18afbfb92eda81f95e","after_hash":"c8f6919727995c154f0b3551d98b5b22"},{"tool":"update_profile","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"a4f4f59f1f035035d7d134b822417c13","after_hash":"3a23420c47421dfbf02b359274388cf3"},{"tool":"get_highlighted_authors","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"9a06f308c441915ad688a0a23c0a357c","after_hash":"72f9b32dbe16827b2470568863ea2ff9"},{"tool":"get_user_by_id","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"73cb00bc798d0ce65b3a70017eb9511b","after_hash":"cb8ac4c617a83b4fc21b6afcb8766f35"},{"tool":"get_user","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"a8fc2d5ef0cccb5bba6b7a594603e227","after_hash":"23f10aaacd558dcceea8e2e98c4cb1ab"},{"tool":"get_me","kind":"changed","observed_at":"2026-10-19T10:21:44.645Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"c6b83f185f862eba2d142f83eb7aceca","after_hash":"84ac3d1d2660d4f465eb826330c09919"},{"tool":"get_stream_package_subscription","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Read the signed-in user’s paid subscription status for a stream package, including price and scheduled cancellation. Returns null when no subscription is found. Does not change billing.","description_after":"Read the signed-in user’s paid subscription status for a stream package, including price and scheduled cancellation. Returns null when no subscription is found. Use get_stream_subscription for a direct subscription to one stream. Subscribing, changing or cancelling happens in the Synoptic app.","description_similarity":0.6,"before_hash":"0eb5a88b92797e3d1cc9c1f7c93d23ec","after_hash":"3d3b6c098da7a397395d903deda097a1"},{"tool":"get_stream_subscription","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Read the signed-in user’s direct paid subscription status for a stream, including price and scheduled cancellation. A null subscription does not rule out access through a package or organization. Does not change billing.","description_after":"Read the signed-in user’s direct paid subscription status for a stream, including price and scheduled cancellation. A null subscription does not rule out access through a package or organization; use get_stream_package_subscription for packages. Subscribing, changing or cancelling happens in the Synoptic app.","description_similarity":0.718,"before_hash":"e73f774f96e56cc3754c6f030048a6e7","after_hash":"d66af86246ca0b7703c3bb8b3deeac03"},{"tool":"list_stream_invites","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"3450be9be272bf1fa26c430c73043740","after_hash":"afd05b6e99ad9b5e5bd3ad7997456f92"},{"tool":"get_stream_package","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"9e04fe6cfdc14c45d98778517f7a976c","after_hash":"391313cd6c14f4770c35449cbf3c1628"},{"tool":"list_my_stream_packages","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"List stream packages CREATED or SUBSCRIBED by the signed-in user, including available prices. Does not create a subscription or charge the user.","description_after":"List stream packages CREATED or SUBSCRIBED by the signed-in user, including available prices. Use list_stream_packages to browse all packages and get_stream_package_subscription for billing status. Does not create a subscription or charge the user.","description_similarity":0.667,"before_hash":"2f7b2c0a12f5b31c5ef157768bb0d2aa","after_hash":"71f9065f4dd822b4298fcd54de31e649"},{"tool":"list_stream_packages","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Browse stream packages, including available prices. Select ALL or FEATURED for public discovery. Use list_my_stream_packages for your created or subscribed packages. Does not create a subscription or charge the user.","description_after":"Browse the catalog of stream packages (bundles of streams sold as one subscription) with available prices, most-subscribed first. Requires a linked account, unlike streams_all and search. Use list_my_stream_packages for your created or subscribed packages. Does not create a subscription or charge the user.","description_similarity":0.512,"before_hash":"a13ac011dd1b2cc553fb64cabdd9493f","after_hash":"6d67623151430e71692cfcbfac33ceb7"},{"tool":"reorder_terminal_tabs","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"07f268dae8b951c52461733deb783e09","after_hash":"03f0df12eab4751bea14258e04154751"},{"tool":"delete_terminal_tab","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Delete a terminal tab owned by the signed-in user and its saved layout. The platform prevents deleting the last tab.","description_after":"Delete a terminal tab owned by the signed-in user and its saved layout. The platform prevents deleting the last tab. Use update_terminal_tab to change a layout instead.","description_similarity":0.783,"before_hash":"a8c05b5cec9325a406f4a16d8ee99964","after_hash":"6d11dc019219679d066bb6f62e3db255"},{"tool":"update_terminal_tab","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"9e604c04e627a28153d79984603b5cdc","after_hash":"f6ed83c39287e3a4f869531451c8aa7e"},{"tool":"create_terminal_tab","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"6c19c563cee6f7e08c468302f48c49a6","after_hash":"ebe42d971b8d290b19b521bc70aaf753"},{"tool":"list_terminal_tabs","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"b71a9833dda57cefcc91a2074c3c1553","after_hash":"89f0e18379110dc09a7a7914deb382b4"},{"tool":"delete_ai_filter","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"4e5754f75b94615aeeb27cf8dafd5597","after_hash":"2be0dd81272d1912511846eb8d4e0520"},{"tool":"update_ai_filter","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Replace the name and prompt of an AI filter owned by the signed-in user. Future posts in collections using this filter use the updated prompt. This operation does not evaluate a test prompt.","description_after":"Replace the name and prompt of an AI filter owned by the signed-in user. Future posts in collections using this filter use the updated prompt. This operation does not evaluate a test prompt. Use create_ai_filter for a new filter and delete_ai_filter to remove one.","description_similarity":0.794,"before_hash":"f41f03b7b1361b8dbddec3e7fc13176f","after_hash":"f7fa8f256fef1e9d24d7c7a976246391"},{"tool":"create_ai_filter","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Save a named AI filter prompt for the signed-in user without evaluating it. Attach its returned ID to a collection to use it.","description_after":"Save a named AI filter prompt for the signed-in user without evaluating it. Attach the returned id through filters.ai in create_collection, or in update_collection, which replaces the whole configuration. No tool evaluates a prompt on demand. Use update_ai_filter to change an existing filter.","description_similarity":0.526,"before_hash":"447444a04eb8b6c5d04ed540c71ea5b7","after_hash":"dd1b8c4c6ecdd1b20690894ee7af537f"},{"tool":"get_ai_filter","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"05b834b255b426058f7a260cc0ce6351","after_hash":"6501a109b4d3633441ccb06ad663e64a"},{"tool":"list_ai_filters","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"625cef81a807228c64763a55277b62f3","after_hash":"57d51ce9d7cf1ffaf1204f9ec239b606"},{"tool":"get_collection_posts","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"172b38e463cc5d952255f1ef1ccf8e8b","after_hash":"5143abc01f4ac996e15af93bc533e053"},{"tool":"set_collection_column_width","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Set a custom collection’s display column width in pixels for the signed-in user.","description_after":"Set how wide a custom collection’s column appears in the signed-in user’s stream deck in the Synoptic app. Display only: sources, filters and posts are unchanged. Use reorder_collections to change column order and update_collection to change content.","description_similarity":0.306,"before_hash":"64685b650c0b1a78b2bd3f0f87cdce7d","after_hash":"79b81ed0358765a6e91c3614a78c25b0"},{"tool":"reorder_collections","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"eb47a680262d3d9d4ac5901f11c3c2a3","after_hash":"a06a00478ad76f5739cb0fb741c14282"},{"tool":"delete_collection","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Delete a custom collection owned by the signed-in user, including its saved versions and source configuration. Original stream posts and follows remain.","description_after":"Delete a custom collection owned by the signed-in user, including its saved versions and source configuration. Original stream posts and follows remain. Use delete_stream_deck to remove the whole deck, or update_collection to change sources or filters.","description_similarity":0.688,"before_hash":"3573e40e88d31977bddb527038d33850","after_hash":"d4c9df147478d065fa6f56410eae7261"},{"tool":"update_collection","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Replace a custom collection’s name, source list, filters, and highlights. Read get_collection first and preserve desired settings. Automatically follows eligible sources, may consume invitations, and rebuilds the stored collection feed. An attached AI filter processes incoming posts and can use the account’s AI allowance.","description_after":"Replace a custom collection’s name, source list, filters, and highlights. Read get_collection first and preserve desired settings: omitted filters, highlights and AI filter are cleared, matchingSourcesOnly becomes false, and columnWidth resets to null. In the server-managed Related news collection, sources only tune its existing streams and matchingSourcesOnly stays true. Automatically follows eligible sources, may consume invitations, and rebuilds the stored collection feed. An attached AI filter processes incoming posts and can use the account’s AI allowance.","description_similarity":0.639,"before_hash":"7a1c25fd9112daf44141bd3f6bfec844","after_hash":"36eb58f4cac0e898ff92b82551298edb"},{"tool":"create_collection","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"9637e8dfa17aa6919d5afe06cb17ef27","after_hash":"d27932488e26c5b4230b885c8864aa6f"},{"tool":"get_collection","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Read a custom collection owned by the signed-in user, including its keyword filters, AI filter ID, source streams, and selected custom targets.","description_after":"Read a custom collection owned by the signed-in user, including its keyword filters, AI filter ID, source streams, and selected custom targets. Returns the full configuration that update_collection replaces; get_collection_posts returns the posts.","description_similarity":0.733,"before_hash":"c788408177b323b70ad6492dc01fc3fe","after_hash":"c3a3461453a1e07a55629da9e3692886"},{"tool":"list_collections","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"a2043189c51dcc53202d0e18e65d87e3","after_hash":"291b3d9a34f97c5eafd5d871efd41f08"},{"tool":"reorder_stream_decks","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema","outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"db6b69fa87a6bfb405784a315c64b928","after_hash":"ca6c13356137b2fa13830a4ad0d2d5d5"},{"tool":"delete_stream_deck","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Delete a stream deck owned by the signed-in user and every custom collection in that deck. The last remaining deck cannot be deleted. This does not delete the original stream posts.","description_after":"Delete a stream deck owned by the signed-in user and every custom collection in that deck. The last remaining deck cannot be deleted. This does not delete the original stream posts. Use delete_collection to remove one collection and keep the deck.","description_similarity":0.833,"before_hash":"c22b102931934bd79ac3a9a801326737","after_hash":"dbf2336ce08f93c4df5e23c52c923072"},{"tool":"update_stream_deck","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Rename an existing stream deck owned by the signed-in user.","description_after":"Rename an existing stream deck owned by the signed-in user; nothing else changes. Use reorder_stream_decks to move it or delete_stream_deck to remove it.","description_similarity":0.478,"before_hash":"df28cca7013c257f51eead49d4a64c5a","after_hash":"3447c30ba9695b087c3f94b0c9f40a83"},{"tool":"create_stream_deck","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema","outputSchema"],"description_before":"Create an empty stream deck for the signed-in user. Each account supports up to 25 decks.","description_after":"Create an empty stream deck, a dashboard of collection columns, for the signed-in user and return its ID. Add columns with create_collection. Each account supports up to 25 decks. Use update_stream_deck to rename an existing deck.","description_similarity":0.531,"before_hash":"74eef02d2ed33fdb7b309f86891e2329","after_hash":"2b115f6cd6d41c874f4e5e73a707d7f7"},{"tool":"list_stream_decks","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["outputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"c6c56ab1fbac23c735abd82c6e8f20fd","after_hash":"f0e3422fc092ef7f8cdf6d12cb724001"},{"tool":"delete_stream","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"e6468a85d2d74be50e310389e3a41556","after_hash":"5705cc6f24ccec18b7c825d893811c11"},{"tool":"publish_stream","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema"],"description_before":"Publish an owned draft stream through the platform publication workflow. May notify users; the returned state is authoritative.","description_after":"Publish an owned draft stream, setting its state to ACTIVE. May notify users; the returned state is authoritative. Publishing can’t be undone through MCP. Use create_stream_post to add posts.","description_similarity":0.438,"before_hash":"4079165f8bcc293e22a361279c80b4ac","after_hash":"464236b580c20833b63a752f3fbc243a"},{"tool":"update_stream","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"fd70e7650f2f3487bed9658261d26372","after_hash":"25ed572fdb5940f68bcc29283ea1cefd"},{"tool":"create_stream","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"c2dc64acd445f1cc74e4895ba0bb9183","after_hash":"429856b66036c018995f76b370667158"},{"tool":"create_stream_post","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["title","description","inputSchema","annotations"],"description_before":"Publish text to a stream owned by the signed-in user. An optional customTarget routes it to that target. Publication may notify followers; timestamps are assigned by the platform.","description_after":"Add a text post to a stream owned by the signed-in user. A new post may notify followers; timestamps are assigned by the platform. Use publish_stream to take a draft stream live. Posts can’t be edited or deleted through MCP.","description_similarity":0.429,"before_hash":"04d985e49284eedbcabd5c3742376b47","after_hash":"061d29c218ca7976373d33af3e60f092"},{"tool":"get_post","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["inputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"8b921863097ebcf914eb43b81e3af493","after_hash":"1f6820661ec8782daaba1429f5c1211e"},{"tool":"search_stream_posts","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema"],"description_before":"Search full post text within one accessible stream. Supports ISO date bounds. Continue with nextOffset; this differs from opaque history tokens.","description_after":"Search full post text within one accessible stream, newest first. Supports ISO date bounds; custom-target restrictions apply. Continue with nextOffset; this differs from opaque history tokens. Use get_stream_posts to page by date without a text query; the search tool finds streams, not posts.","description_similarity":0.512,"before_hash":"45e4dda0a1c8e08275ac7b443210ded2","after_hash":"b19554e452c5bcb23ca57e2b0cff1b91"},{"tool":"unfollow_stream","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema"],"description_before":"Unfollow a stream for the signed-in account. Does not cancel a paid subscription or restore consumed invitations.","description_after":"Unfollow a stream for the signed-in account. Does not cancel a paid subscription or restore consumed invitations. Use unfollow_user for authors.","description_similarity":0.85,"before_hash":"0a5ec5adc1cb01976a2157af4117df35","after_hash":"9ab1d8998e7c3a9ea724d0d09ddeb097"},{"tool":"streams_created","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema"],"description_before":"List streams owned by the signed-in account, including drafts, with optional filters and pagination.","description_after":"List streams the signed-in account owns, including unpublished DRAFT streams, with optional filters and pagination. Use it to find IDs for create_stream_post, update_stream, publish_stream or delete_stream. Use streams_following for streams you follow, and search or streams_all for the public catalog.","description_similarity":0.316,"before_hash":"79f3316367c628cf68ba71593e5d4e06","after_hash":"78c0d47f2ba3643c72503fdb2d6e336c"},{"tool":"streams_following","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description","inputSchema"],"description_before":"List streams followed by the signed-in account, with optional metadata filters and pagination.","description_after":"List streams the signed-in account follows, with optional metadata filters and pagination. Use streams_created for streams you own, streams_all or search for the public catalog, and get_following_users for followed authors.","description_similarity":0.448,"before_hash":"f4fbe818f308d77219d7982048f6426d","after_hash":"3720480379f16791a2affc08a19a66a8"},{"tool":"request_terminal_access","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description"],"description_before":"Request terminal access for the signed-in Synoptic account.","description_after":"Join the waitlist for early access to the Synoptic trading terminal (beta) for the signed-in account. Sets terminalAccessRequested, which get_me reports; repeating the call changes nothing. Does not grant access, open a support ticket or place trades. Use request_feature for other product requests.","description_similarity":0.225,"before_hash":"b850e881981bba0a0607117ff790b53f","after_hash":"d75d7a7875dcd3789e1a138b6ff4aabf"},{"tool":"mark_all_notifications_read","kind":"changed","observed_at":"2026-10-18T03:32:58.688Z","fields":["description"],"description_before":"Mark every unread in-app notification in the signed-in account as read.","description_after":"Mark every unread in-app notification in the signed-in account as read. Use mark_notification_read for one notification.","description_similarity":0.786,"before_hash":"690c406ff6f854b88bc04646d8f6c4bd","after_hash":"ed0877e9b0423e99cb91597af1adbafd"}],"next_before":"872604","next_actions":[{"action":"list_changes","description":"Older changes","href":"/v1/servers/com.synoptic%2Fsynoptic/changes?before=872604&limit=50"}]}