Connection check
verified live · 20h ago
scite-mcp
Ground answers in scientific literature. Search full text, evaluate trust, access full-text articles
Tools
13
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
20h ago
Tools & capabilities
13 toolsRead from the running server on 20h ago.
add_dois_to_collection
dois*slug*
Add DOIs to a Collection. Works on both DOI-list and saved-search Collections. Requires EDITOR or ADMIN access. For a DOI-list Collection the DOIs are added to the list. For a sav… Add DOIs to a Collection. Works on both DOI-list and saved-search Collections. Requires EDITOR or ADMIN access. For a DOI-list Collection the DOIs are added to the list. For a saved-search Collection they are force-included (added to the manual include list) so they appear even if the search would not return them. DOIs already present are ignored. Use `create_collection` to make a new Collection or `remove_dois_from_collection` to take DOIs out. **Parameters:** - slug: The Collection slug (required). - dois: List of DOI strings to add (required, non-empty). **Returns:** The updated Collection with id, slug, name, and DOI counts.
bibliography
read-only
dois*format
Format a set of DOIs as a ready-to-import reference list (bibliography). Give it the DOIs of papers you have already found (e.g. via `search_literature`) and it returns a single f… Format a set of DOIs as a ready-to-import reference list (bibliography). Give it the DOIs of papers you have already found (e.g. via `search_literature`) and it returns a single formatted reference list in the requested citation format, built from Scite's stored metadata (authors, title, journal, year, volume, issue, page). Use this instead of hand-writing BibTeX/RIS — the output is machine-formatted for direct import into reference managers (Zotero, EndNote, Mendeley) or a manuscript's bibliography, so keys and fields are exact. **Parameters:** - dois: List of DOI strings to include (required, up to 500). Order and de-duplication are preserved. - format: 'bibtex' (default), 'ris', or 'csv'. **Returns:** JSON with `format`, `found` (count), `notFound` (DOIs with no record), and `content` (the formatted reference list as text).
citation_graph
read-only
depthseeds*directionmax_edgesinclude_intentinclude_snippets
Traverse the scite citation graph from seed DOIs to discover connected papers by citation topology rather than keyword. Each edge is a citation: `s` (citing paper) -> `t` (cited pa… Traverse the scite citation graph from seed DOIs to discover connected papers by citation topology rather than keyword. Each edge is a citation: `s` (citing paper) -> `t` (cited paper). Use it to find prior art / foundations (`direction="out"`), impact and follow-on work (`direction="in"`), or both. Get seed DOIs from `search_literature` first, then traverse; feed interesting nodes back into `search_literature` or `read_fulltext` for content. This tool returns structure (edges + titles), not abstracts or full text. Seeds are automatically expanded to their linked preprint/published versions (e.g. an arXiv DOI and its journal DOI), so a paper split across two DOIs is traversed as one work with a merged citation pool; the extra DOIs appear in `seeds` and `seed_coverage`. Response: `edges` is a deduped list of `{"s","t","d"}` (d = hop distance from a seed); `papers` maps every DOI in the graph to its `{title, year}`. `truncated` is true when the `max_edges` cap was hit. **Coverage — check before trusting the topology.** `seed_coverage` maps each seed to how many of its edges resolved directly (hop 1); `low_coverage_seeds` lists seeds with too few to be reliable. Coverage is per-paper: it only follows references/citers scite resolved to DOIs, and arXiv-heavy (e.g. ML) papers often under-resolve, so a thin graph means missing edges, not a poorly-connected paper. For any seed in `low_coverage_seeds`, treat its topology as incomplete and fall back to `search_literature` for that paper. **Citation intent (scite's differentiator).** Set `include_intent=true` to annotate each edge with the smart-citation `type` (supporting / contrasting / mentioning) and the `section` it appears in — this turns the structure into an *intent graph*: you can see agreement vs. dissent, and method vs. background citations. Set `include_snippets=true` to additionally attach up to 3 `snippets` of the actual citing text (implies intent). Snippet text is returned only for open-access / unrestricted sources; closed-publisher citations still carry type and section. **Custom "why was it cited?" classifications from `snippets`.** scite's `type` is a fixed 3-way label (supporting / contrasting / mentioning). When you need a finer or domain-specific taxonomy — e.g. *uses as baseline*, *extends the method*, *reuses the dataset*, *critiques an assumption*, *motivates the problem* — read the `snippets` (the verbatim sentence the citing paper used) and classify each edge yourself into whatever scheme the task calls for. The snippet is the ground truth; treat scite's `type`/`section` as a prior, not the final answer. Group edges by your derived label to answer "why does this literature cite X?". When a snippet is too short to judge the intent, chain `read_fulltext` on the citing paper (edge `s`) to read the surrounding paragraph / section and recover the full rationale — snippets are ~1 sentence each, `read_fulltext` gives you the argument around them. Typical flow: `citation_graph` (structure + snippets) -> pick the edges that matter -> `read_fulltext(dois=[citing paper])` with a targeted `term` to confirm *why* it was cited before you label it. **Recording a screen.** When you use this tool to screen literature — keeping some papers and dropping others with a reason — record those keep/drop decisions with `report_citations` (cited / excluded + reason_code), and `citation_report` will summarize the include/exclude funnel as a PRISMA-style audit. **Deriving analyses from `edges` (no extra calls).** The edge list is all you need for the classic citation-analysis questions — compute them directly: - *Common references* (shared foundations): traverse `direction="out"` from multiple seeds; take the DOIs that appear as `t` for every seed. - *Common citers* (who cites all of them, e.g. surveys/syntheses): `direction="in"`; DOIs appearing as `s` for every seed. - *Bibliographic coupling* (papers similar to a seed): `direction="out"` at depth 2; rank other papers by how many `t` references they share with the seed. - *Co-citation* (papers cited alongside a seed): `direction="in"` then `out`; rank papers frequently cited by the same citers. - *Citation classics* (most influential in the network): rank DOIs by in-degree (how often they appear as `t`). Filter any of these to supporting/contrasting edges by adding `include_intent=true` first.
citation_report
read-only
answer_id
Generate a report of the sources you included and excluded in this session, with reasons — for fact-checking, provenance, and systematic-review/regulatory audit. Summarizes the ci… Generate a report of the sources you included and excluded in this session, with reasons — for fact-checking, provenance, and systematic-review/regulatory audit. Summarizes the citation decisions recorded via report_citations for the current session (or a specific answer_id): how many sources were retrieved, screened, included (cited), and excluded, the breakdown of exclusion reasons and screening stages, provenance by source, and the full per-source lists — so the user can review and sanity-check the reasoning behind each include/exclude choice. Use it for: - Fact-checking: show which sources were used vs rejected and why, so unsupported or hallucinated claims stand out; `checks` flags decisions missing a reason. - Provenance transparency: `by_source` and each item's `source` show which citations came from scite retrieval vs web/user-supplied, so a reader can weigh how verified each source is. - Systematic review / PRISMA: the identified -> screened -> included/excluded funnel with per-reason and per-stage counts is a PRISMA-compliant screening record. - Regulatory / audit: a reproducible, per-source account of the include/exclude reasoning for an evidence submission or compliance review. Call report_citations first to record the decisions; pass the same answer_id here to scope the report to one answer. Read-only — it does not change anything. Returns JSON: summary (retrieved / screened / included / excluded counts; retrieved is null for an answer-scoped report), excluded_by_reason, by_stage, by_source, checks (e.g. decisions missing a reason), truncated, and the full included[]/excluded[] lists.
create_collection
doisname*is_publicdescription
Create a new Collection owned by the signed-in user. Use this to start a Collection from a list of DOIs the user wants to group, track, and analyze together. The caller becomes th… Create a new Collection owned by the signed-in user. Use this to start a Collection from a list of DOIs the user wants to group, track, and analyze together. The caller becomes the Collection ADMIN. The returned `slug` identifies the Collection for `get_collection`, `update_collection`, `add_dois_to_collection`, and the other Collection tools. **DOI validation.** Provided DOIs are validated and resolved against scite; unknown DOIs are dropped and surfaced via the `unmatchedDoiCount` in the response. An empty `dois` list creates an empty Collection the user can add to later. **Scope.** This tool creates DOI-list Collections. Collections backed by a saved search query are created in the scite web app, not via MCP. **Parameters:** - name: Collection name (required). - description: Optional free-text description. - dois: Optional list of DOI strings to seed the Collection. - is_public: If true, anyone with the slug can view the Collection (default: false). **Returns:** The created Collection with id, slug, name, description, isPublic, doiQueryType, accessType, and DOI counts.
delete_collection
can modify data
slug*
Permanently delete a Collection. Requires ADMIN access on the Collection. This cannot be undone. The Collection and its DOI membership are removed. Only the Collection ADMIN may d… Permanently delete a Collection. Requires ADMIN access on the Collection. This cannot be undone. The Collection and its DOI membership are removed. Only the Collection ADMIN may delete it. **Parameters:** - slug: The Collection slug (required). **Returns:** `{deleted: true, slug: "..."}` on success.
get_collection
read-only
slug*
Fetch a single Collection (a saved, named set of papers) by its slug. Use the `slug` returned by `create_collection` or `search_collections`. Returns the Collection's identity, sh… Fetch a single Collection (a saved, named set of papers) by its slug. Use the `slug` returned by `create_collection` or `search_collections`. Returns the Collection's identity, sharing, access level, and DOI counts. The caller must have at least VIEWER access (own it, be shared on it, or it is public). **Parameters:** - slug: The Collection slug (required). **Returns:** The Collection with id, slug, name, description, isPublic, accessType, and DOI counts.
read_fulltext
read-only
doi*lengthoffset
Read a paper's body text by DOI, one page of characters at a time. Use this when you need the ACTUAL text of a paper — not term-matched snippets. It returns the body sliced by cha… Read a paper's body text by DOI, one page of characters at a time. Use this when you need the ACTUAL text of a paper — not term-matched snippets. It returns the body sliced by character offset so you can page through the whole document. **How it differs from other tools:** - `search_literature` returns up to 5 term-matched ~500-char excerpts — good for finding passages, not reading straight through. - `get_full_text` returns a proxy stitched only from sentences that cite other works — lossy, citation-only. - `read_fulltext` (this tool) returns verbatim body text, linearly, with pagination. **What you get — the `source` field:** - `"fulltext"` — verbatim full text, for open-access papers with a permissive license (or papers your org is entitled to) that have indexed full text. - `"abstract"` — the paper's abstract, returned as a fall-back when verbatim full text is access-restricted or not indexed. Abstracts are public, so most papers return at least this. - `null` — no readable text at all; use search_literature's `access` field for a link. `contentDenied` is true whenever full text was NOT served — i.e. any time `source` is not `"fulltext"` (access-restricted, not indexed, or nothing). So `source: "abstract"` still has `contentDenied: true`. Always check `source`: if it is not `"fulltext"` you are NOT reading the full paper. The `message` field explains why. **Paging:** each call returns up to 8000 characters. Read the first page with `offset: 0`, then set `offset` to the previous `offset + returnedChars` while `hasMore` is true. `totalChars` is the length of whatever `source` you got. Character offsets are only stable within a session — do not persist them across days (re-indexing shifts positions).
remove_dois_from_collection
can modify data
dois*slug*
Remove DOIs from a Collection. Works on both DOI-list and saved-search Collections. Requires EDITOR or ADMIN access. For a DOI-list Collection the DOIs are dropped from the list.… Remove DOIs from a Collection. Works on both DOI-list and saved-search Collections. Requires EDITOR or ADMIN access. For a DOI-list Collection the DOIs are dropped from the list. For a saved-search Collection they are excluded (added to the exclude list) so they no longer appear even if the search would return them. DOIs not present are ignored. This removes papers from the Collection; it does not delete the Collection itself (use `delete_collection` for that). **Parameters:** - slug: The Collection slug (required). - dois: List of DOI strings to remove (required, non-empty). **Returns:** The updated Collection with id, slug, name, and DOI counts.
report_citations
contextanswer_idcitations*
Record your answer's full source decision set — what you cited and what you excluded, each with a reason and its provenance — as a verifiable, auditable citation record. Call this… Record your answer's full source decision set — what you cited and what you excluded, each with a reason and its provenance — as a verifiable, auditable citation record. Call this ONCE at the very end of a response that drew on sources, with your full decision set: - every source you CITED (credited in the answer), and - every source you retrieved/considered but EXCLUDED, each with a short reason. Report only sources you actually used — never invent references. Fire-and-forget: it records the decisions and does not change your answer. Use it for: - Fact-checking / reducing hallucinations: works with search_literature (every cited source must trace to a real retrieved record), citation_graph (screen the literature by citation topology, then log which edges you kept vs. dropped and why), and bibliography (references built from stored metadata, not memory). Recording each decision — then reviewing it with citation_report before you finalize — surfaces fabricated, misattributed, or unsupported citations. - Provenance: `source` records WHERE each source came from — scite_mcp (retrieved via scite), web_search, user_supplied, or other — so a reader can tell verified retrievals from unverified ones. - Systematic review / PRISMA screening: the `excluded` items with `reason_code` and `stage` are the screened-out log with reasons at each stage (title/abstract vs full text) that PRISMA requires; the `cited` items are the included studies. - Regulatory / evidence submissions: a reproducible, per-source trail of what was included, what was excluded, and why — auditable straight from the recorded decisions. Each citations item: - source_ref: the DOI (preferred) or, for non-scite sources, a URL/reference string. - decision: "cited" (included/credited) or "excluded" (screened out). - source: provenance — "scite_mcp", "web_search", "user_supplied", or "other". - source_detail: name the source when source is "other" (e.g. "arxiv", "google scholar"). - reason_code: short reason — for excluded: off_topic, retracted, contradicted, duplicate, low_quality, superseded, out_of_scope; for cited: e.g. supports, relevant. - reason: optional free-text note explaining the decision. - stage: optional PRISMA screening stage — "title_abstract" or "full_text". Returns JSON: recorded_cited, recorded_excluded, skipped (malformed items dropped), mcp_session_id, and the accepted decisions grouped as cited[] and excluded[] (each item with source_ref, source, source_detail, reason_code, reason, stage) so a client can render a used/rejected citation panel.
search_collections
read-only
q
List the Collections the signed-in user can access, with an optional name filter. Returns Collections the user owns, is shared on, or that are shared with their organization. Pass… List the Collections the signed-in user can access, with an optional name filter. Returns Collections the user owns, is shared on, or that are shared with their organization. Pass `q` to filter by a case-insensitive substring of the Collection name. This is a filter over the caller's own Collections, not a full-text search of all Collections. **Parameters:** - q: Optional case-insensitive name substring to filter by. **Returns:** `{collections: [...], total: N}` where each Collection has id, slug, name, accessType, and DOI counts.
search_literature
read-only
doistermyearlimittitletopic
+24
Search scientific literature and read full-text content from peer-reviewed papers. Use `dois` (preferred) or `titles` with targeted `term` queries to extract full-text passages fr… Search scientific literature and read full-text content from peer-reviewed papers. Use `dois` (preferred) or `titles` with targeted `term` queries to extract full-text passages from specific papers. Each call returns up to 5 relevant excerpts (~500 chars each) — vary search terms across calls to read through a paper section by section. **IMPORTANT — keep `limit` small.** Use `limit: 10-50` with `offset` for pagination. Large limits with full citations and excerpts produce very large payloads that consume significant LLM context. **Calling with no parameters browses the corpus** (210M+ papers, relevance-sorted). This is allowed for broad exploration but rarely what you want — pass `term`, `dois`, `titles`, or other filters for targeted results. **What This Tool Returns:** - Paper metadata: title, authors (first 3), abstract, DOI, journal, year, volume, issue, page - `fulltextExcerpts`: up to 5 passages (~500 chars) from the paper matching your query (OA only) - `access`: resolved access link with source, type (open/institutional/purchase), content type, and pricing - `citations`: Smart Citation statements — actual quoted text from citing papers, classified as supporting/contrasting/mentioning/unclassified (unclassified = statement present but classifier hasn't assigned a type) - `tally`: citation metrics (total, supporting, contrasting, mentioning, citing publications) - `editorialNotices`: editorial notices (retraction, correction, concern, erratum), each with status, noticeDoi, date - `isOa`, `oaStatus`, `license`: open access information **Fetching Paper Metadata (no search term needed):** Pass `dois` or `titles` WITHOUT a `term` to retrieve metadata for specific papers. Example: `dois: ["10.1038/s41586-020-2012-7"]` **Full-Text Excerpts:** For OA papers, `fulltextExcerpts` contains passages matching your query. If empty, the full text is not indexed or terms didn't match — use the `access` field for the best link to the PDF or full text. **Smart Citations ARE Full-Text Evidence:** - `snippet`: exact sentence/paragraph from the citing paper's full text - `type`: classification (supporting, contrasting, mentioning, unclassified) - `section`: paper section (Introduction, Methods, Results, Discussion) - `sourceDoi`: paper containing this snippet; `targetDoi`: paper being cited **Search Capabilities:** - Boolean operators: AND, OR, NOT - Phrase search: "exact phrase" - Proximity: "term1 term2"~5 - Field filters: title, abstract, author, journal, year, affiliation - Citation filters: supporting_from/to, contrasting_from/to, mentioning_from/to - Editorial filters: has_retraction, has_concern, has_correction, has_erratum **Parameters:** - `term`: cross-field search query (optional when `dois`/`titles` provided) - `dois`: array of DOIs to filter to specific papers - `titles`: array of titles to filter (use when DOIs unavailable) - `limit`: max results (default: 10, max: 1000) - `offset`: pagination offset - Plus 20+ filter parameters (see schema) **Response Format:** ```json { "hits": [{ "doi": "10.1234/example", "title": "Paper Title", "authors": [{"authorName": "Jane Smith"}], "abstract": "Full abstract text...", "year": 2023, "journal": "Nature", "tally": {"supporting": 32, "contrasting": 8, "mentioning": 5}, "fulltextExcerpts": ["Relevant passage..."], "access": {"url": "https://...", "accessType": "open", "contentType": "pdf"}, "citations": [{"snippet": "These findings...", "type": "supporting", "section": "Results"}], "editorialNotices": [{"status": "retracted", "noticeDoi": "10.1234/notice", "date": "2021"}] }] } ```
update_collection
doisnameslug*is_publicdescription