smry Product

ai.smry.r由 r.smry.ai 發布v1.0.0更新於 Oct 24, 2026

Read public sources and manage a smry library, feeds, notes, highlights, files, and page monitors.

發布方自己的服務:classifier.dev

已驗證Streamable HTTP可網頁執行效率與工作流網頁搜尋與抓取知識與記憶

概覽

AI 產生的概覽

遠端 MCP 伺服器,可讀取公開文章、網頁與訂閱來源,並管理 smry 帳戶中的收藏庫、筆記、螢光標記和網頁監控。

可以做什麼
擷取並檢索公開文章或 YouTube 連結,文字依 token 預算截取並附段落錨點;一次開啟或檢索最多四個網頁,執行聚焦的網頁搜尋,並依主題、網站、RSS、播客、Reddit 或 YouTube 瀏覽與搜尋訂閱來源。搜尋、讀取並分頁瀏覽帳戶中儲存的項目、筆記和螢光標記,讀取收藏庫變更串流。儲存新內容或將公開連結擷取進收藏庫,再移動、加標籤、標為已讀、更新進度或刪除項目,可單筆或最多 100 筆批次操作。管理集合與訂閱來源篩選器、追蹤訂閱來源、建立新聞查詢、提供訂閱回饋並讀取已追蹤來源的變更。建立排程網頁變更監控並管理訂閱來源同步。
適用情境
當助理需要以低成本調查公開網頁或 YouTube 來源,或需要操作你自己的 smry 收藏庫、訂閱來源和監控時使用,例如整理已儲存項目、追蹤來源或長期觀察網頁變化。
執行需求
遠端 streamable HTTP 端點;未宣告套件、環境變數或請求標頭。多數收藏庫、訂閱來源和監控工具作用於 smry 帳戶,因此隱含需要已驗證連線至該帳戶。
安裝前請注意
許多工具會寫入帳戶:儲存與擷取內容、移動、加標籤、標為已讀、批次更新最多 100 筆、刪除項目、追蹤訂閱來源、建立集合與監控,以及修改訂閱來源。刪除上傳檔案會永久刪除其原始檔、擷取文字和同步的本機副本。訂閱來源修改預設為試執行,但也可立即生效。監控數量受方案限制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 smry Product,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.smry.r%2Fsmry-product/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "smry-product": {
      "type": "http",
      "url": "https://api.smry.ai/mcp"
    }
  }
}

README

該儲存庫沒有 README。

工具

28

get_article

Read an article with smry

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 when you have a specific question rather than needing the whole text.

輸入參數url必填cursormax_tokens

search_article

Find the passages of an article that answer a question

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 the tokens and the anchors stay citable.

輸入參數url必填query必填cursormax_tokensmax_passages

search_web

Search the public web

Discover current public sources with up to four focused searches. Search snippets are discovery aids; open the strongest pages before citing substantive claims.

輸入參數queries必填max_results

open_web_pages

Read public 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.

輸入參數pages必填

search_feeds

Find public 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=popular for popularity ordering. This only discovers sources; use follow_feeds to follow results in an existing or new collection.

輸入參數modesortlimitquerylanguage

list_library_objects

Search every saved library object

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 specifically need item lifecycle filters or reading history.

輸入參數limitquerytypescursor

get_library_object

Read a saved item, note, or highlight

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.

輸入參數ref必填content_max_characters

get_library_asset

Fetch an original library file

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.

輸入參數id必填include_data

list_library

Search library content and reading history

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 shared with app search and REST, including spelling recovery (approximate=true). Optional filters are combined with AND: omit every filter the user did not explicitly request. Filter by exact tag, kind, capture method, format, or lifecycle; set view=history for recently read items. Items are ordered by most recent status change first (history view: last read first); continue with nextCursor. Item IDs select later tools and are not smry.ai routes; cite only each exact returned source URL.

輸入參數tagviewlimitquerycursorformatstatusstarredexternal_idsaved_aftercontent_kindupdated_after另有 5 個

get_library_changes

Sync 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.

輸入參數limitcursor

get_saved_article

Read a library item

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.

輸入參數id必填cursormax_tokensinclude_content

search_saved_item

Search inside a library 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.

輸入參數id必填query必填cursormax_tokensmax_passages

save_content

Save text or a document

Save supplied source text without fetching a public URL. Use external_id for retry-safe creates; content_kind can correct automatic classification.

輸入參數urltagstitle必填authorformatstatuscontent必填starredmetadatafile_namemime_typeexternal_id另有 3 個

save_article

Scrape and save an 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.

輸入參數url必填tagsstatusstarred

update_library_item

Organize a library item

Move, tag, mark read, update progress, or correct the classification of one library item.

輸入參數id必填tagsstatusstarredmark_readcontent_kindread_progress

bulk_update_library_items

Organize multiple library items

Atomically move, tag, mark read, update progress, or correct classification for up to 100 library items.

輸入參數ids必填tagsstatusstarredmark_readcontent_kindread_progress

remove_library_item

Remove a 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.

輸入參數id必填

manage_collections

manage collections (list/create/update/delete)

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":"create","name":"Research"} update: Membership is a complete replacement, matching the production Collection editor. Required fields: id. Example: {"action":"update","id":12,"name":"Engineering"} delete: Deletes a custom Collection and moves its inputs to Unsorted. Required fields: id. Example: {"action":"delete","id":12}

輸入參數idnameaction必填source_ids

query_feeds

Query followed feeds: entries, source health, or aggregates

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 bounded fair sample across pages; omit it to retrieve every matching article. select:"sources" returns fetch_status and last_fetched_at separately from publisher activity (health, silent_days, entries_7d/28d). Quiet publishers can have working feeds. select:"aggregate" returns grouped counts with optional trends. Classification-filtered queries report classification_coverage: pending articles have not been assessed, not rejected. Times accept "7d"/"36h"/"now" or ISO dates. Example: {"since":"1d","per_source_limit":3,"limit":40,"format":"compact"} Example: {"select":"entries","where":{"unread":true,"collection":["Research"]},"limit":10} Example: {"select":"sources","having":{"silent_days":{"gte":30}},"limit":10} Example: {"select":"aggregate","group_by":"collection","where":{"discovered_after":"7d"}}

輸入參數limitsincewherecursorfieldsformathavingselectcomparegroup_byorder_byper_source_limit

manage_feed_filter

manage feed filter (preview/apply)

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","collection":{"id":12},"filter":{"prompt":"Software engineering articles","whenUncertain":"include"}} apply: Atomically applies the exact preview when the Collection revision still matches. Passing a preview created with filter:null clears the filter. Required fields: previewToken, expectedRevision. Example: {"action":"apply","previewToken":"<previewToken from preview>","expectedRevision":0}

輸入參數action必填filtercollectionpreviewTokenexpectedRevision

discover_feed_inputs

Find public feeds to follow

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://www.nasa.gov","mode":"site"}

輸入參數modequery必填

follow_feeds

Follow feeds by URL, with per-URL outcomes

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/"],"collection":"Research"}

輸入參數urls必填collection

create_news_query

Create a durable query/news input

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"}

輸入參數query必填localecollection

set_feed_feedback

Set or undo explicit feedback on an entry

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"}

輸入參數value必填entryId必填

get_feed_changes

What changed since a cursor — the polling primitive

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 retains the acknowledged position and the consumer's saved where predicate. Pass exactly one. Managed batches repeat until their next_cursor is acknowledged. Every response also carries a capped source-health attention block. To read what is already there rather than what changes next, use query_feeds. Example: {"cursor":"latest","limit":20} Example: {"consumer_id":7,"limit":20}

輸入參數limitwherecursorfieldsconsumer_idattention_limit

mutate_feeds

Selector-based writes with dry-run preview

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. sources.move needs set.collection; sources.rename needs set.title; collections.create/rename need set.name. Collections rename/delete need exactly one where.collection. Use manage_collections for direct collection CRUD. Check partial and each outcome after committing. Example: {"op":"collections.create","set":{"name":"Research"}} Example: {"op":"sources.move","where":{"source":{"include":[42]}},"set":{"collection":"Research"}} Example: {"op":"sources.move","commit_token":"<commit_token from preview>"}

輸入參數op必填setwheredry_runcommit_token

create_monitor

Monitor a web page for changes

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 are 150, 720, and 7,200, respectively. Page and sitemap runs reserve 1 credit; extract runs reserve 10. The shortest interval is 60 minutes and the default schedule is daily. The response reports remaining slots and scheduled credits. Example: {"name":"Example page changes","target":{"type":"page","url":"https://example.com"},"collection":"Research"}

輸入參數name必填tagstarget必填schedulecollectionchange_detection

manage_feed_consumers

manage feed consumers (create/list/ack/delete)

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 poll; that order closes the query/create race. Create one per independent processing loop, not per source. Retrying the same case-insensitive name and predicate returns the existing Consumer; the same name with another predicate is a 409. Required fields: name. Example: {"action":"create","name":"Engineering briefing","where":{"collection":["Research"]}} list: List each saved consumer, its opaque acknowledged_cursor, delivery and acknowledgement timestamps, and how many matching entries are waiting past that checkpoint. Required fields: none. Example: {"action":"list"} ack: After processing every event returned by getFeedChanges for this consumer, acknowledge that response's next_cursor. Crashes before ack cause safe redelivery; stale, foreign, and invented cursors are rejected. Required fields: id, cursor. Example: {"action":"ack","id":7,"cursor":"<next_cursor from get_feed_changes>"} delete: Remove only the saved predicate and checkpoint. Followed sources, entries, and human read state are untouched. Required fields: id. Example: {"action":"delete","id":7}

輸入參數idnamewhereaction必填cursor

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Classifier 整合