# smry Product Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## smry Product

Save and search articles, feeds, notes and files; monitor web pages for changes.

- Record: https://musedirectory.ai/connector/smry-product
- Category: Productivity
- Developer: smry.ai (https://r.smry.ai)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 406ms, checked 2026-09-28T09:16:08Z
- Endpoint: https://api.smry.ai/mcp
- Auth: No account needed; Pricing: unknown
- Screening: Screened, no issues found (2026-09-24T07:01:05Z)
- Source: Found in the official MCP Registry (ai.smry.r/smry-product) https://registry.modelcontextprotocol.io/v0/servers?search=ai.smry.r%2Fsmry-product

Connects to smry's library and feed system. Muse can fetch and search public articles and YouTube videos, save web content and files, organize items with tags and collections, follow RSS and news feeds, and create monitors that track web page changes.

Example request: "Save this article to my research folder and alert me if that website updates its pricing page."

How to connect: Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use smry Product to help me. It is a free service with an MCP server at https://api.smry.ai/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Tools:
- get_article: Fetch clean, source-grounded text for a public article or YouTube URL, budgeted to a token limit and addressable by paragraph anchor. Returns an outline of headings (empty when the source has none), the requested window, and a next_cursor when more remains. Prefer search_article 
- search_article: Read a public article or YouTube URL and return only the passages relevant to your query, each anchored to its paragraph and labelled with the section it sits under. Use this instead of get_article whenever you have a specific question about a link — it answers in a fraction of t
- search_web: Discover current public sources with up to four focused searches. Search snippets are discovery aids; open the strongest pages before citing substantive claims.
- open_web_pages: Open up to four public pages. Pass a focused context to get only the passages relevant to that question (cheap and precise), or omit it to read the full page as clean Markdown with start-based pagination.
- search_feeds: Use the same discovery catalog and ranking as smry's Discover feeds page. Browse suggested sources with no query; search websites, RSS, Atom, podcasts, Reddit, and YouTube by topic; create a focused Google News source; or discover every feed published by a site URL. Use sort=popu
- list_library_objects: Search and paginate across the account's saved items, standalone notes, and highlights through one corpus. Uses the same Postgres matching as the app and REST API; approximate=true identifies spelling recovery. Returns stable refs for get_library_object. Use list_library when you
- get_library_object: Read one object returned by list_library_objects. Item text and note/highlight bodies are bounded; item asset metadata includes the MCP resource URI for original bytes.
- get_library_asset: Return an authenticated MCP resource link for an item's original file. Set include_data=true to show images or audio inline, or embed another file up to 8 MiB. Larger originals remain readable through the streaming Developer API byte-range endpoint.
- list_library: Search this account's articles, websites, books, emails, PDFs, social posts, videos, podcast episodes, and documents. For a normal text search, pass only query and limit. "Triage my inbox" is {"status":"inbox","limit":10}; "saved this week" is {"saved_after":"7d"}. Matching is sh
- get_library_changes: Read the append-only library change stream, including deletions. For a race-free first sync, call once with cursor=latest, list the library, then continue from the returned nextCursor.
- get_saved_article: Read one library item by id. Stored article text is token-budgeted and supports a paragraph cursor so long documents never flood the agent context.
- search_saved_item: Return only the stored passages relevant to a question about one library item. Use after list_library instead of reading a long book, PDF, email, transcript, or document from the beginning.
- save_content: Save supplied source text without fetching a public URL. Use external_id for retry-safe creates; content_kind can correct automatic classification.
- save_article: Securely extract a public URL and idempotently add it to the account's library. Returns alreadySaved=true for a duplicate and reports hard paywalls instead of claiming success.
- update_library_item: Move, tag, mark read, update progress, or correct the classification of one library item.
- bulk_update_library_items: Atomically move, tag, mark read, update progress, or correct classification for up to 100 library items.
- remove_library_item: Remove one item from this account's library. Web sources are unaffected. For an uploaded file, its original, extracted text, and synced local copies are permanently deleted; highlights and notes are kept.
- manage_collections: list: Returns the same owner-scoped Collections shown in /feeds, including canonical filter state and revision. Required fields: none. Example: {"action":"list"} create: Creates the same named Collection used by the production /feeds UI. Required fields: name. Example: {"action":
- query_feeds: Read followed feeds. "What's new?" is {"since":"1d"}: newest published first, one line per entry with format:"compact". Other arguments are optional; add where.collection, where.source.include/exclude, where.unread, or where.match when requested. per_source_limit produces a bound
- manage_feed_filter: preview: Classifies a bounded recent sample and returns both binary decisions, uncertainty counts, reasons, and degradation status. Save with applyFeedFilter using this preview token and Collection revision. Required fields: collection, filter. Example: {"action":"preview","colle
- discover_feed_inputs: Find public feeds by topic or find a site's published feeds. This is the compact Developer API discovery adapter; use search_feeds for language, ranking, and source-type controls. Discovery does not subscribe; pass result feedUrl values to follow_feeds. Example: {"query":"https:/
- follow_feeds: Follow up to 20 feed or site URLs in one call. Site URLs are resolved to their published feed. Naming a collection that does not exist creates it. Returns a per-URL outcome — partial success is normal and legible, never all-or-nothing. Example: {"urls":["https://www.nasa.gov/feed
- create_news_query: Creates a Collection-compatible news query. Google News RSS is the current adapter and is intentionally hidden behind this durable product type. Example: {"query":"open source databases","collection":"Research"}
- set_feed_feedback: Less like this hides an included entry. Feedback remains separate agent context and never silently revises the Collection filter. Example: {"entryId":42,"value":"less_like_this"}
- get_feed_changes: One stream, two checkpoint owners. Stateful callers pass cursor:"latest", then store each next_cursor themselves; that first call only establishes the checkpoint and returns no events, so poll again with the returned next_cursor. Stateless scheduled agents pass consumer_id; smry 
- mutate_feeds: Preview changes to matching sources, entries, or collections. Default dry_run:true returns would_affect, sample, and commit_token without changing them. Commit by sending the same op and commit_token; retries replay the recorded result. Explicit dry_run:false applies immediately.
- create_monitor: Create a scheduled web-change monitor whose detected changes arrive as an ordinary followed source — query, watch, and mutate it like any feed. Naming a collection that does not exist creates it. Active monitor limits are Free 3, Patron 10, and Pro 100; scheduled monthly credits 
- manage_feed_consumers: create: Save a where predicate and let smry retain one processing checkpoint. New consumers start at the current high-water mark, so they receive future discoveries rather than replaying history. For history, create the Consumer first, query the historical window separately, then

Screening checks:
- MCP handshake: pass (Answered in 261ms)
- Domain against threat feeds (Cloudflare security DNS): pass (api.smry.ai, r.smry.ai not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: pass (28 tools read, nothing found)
- Inputs asking for passwords, card numbers or seed phrases: pass (None found)
- Domain and redirects: pass (Domain registered 1301 days ago)
- AI review of purpose and tool behavior: pass (No concerns)
