Check if references exist or were retracted, look up journal AI policies, and preview manuscripts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants to check references or citations from any source: a manuscript, a bibliography, a literature review, or citations an AI assistant gave earlier in the conversation. It reports whether each one exists, points to the right paper, or has been retracted, corrected or flagged, for questions like "are these references real?", "is this paper retracted?" or "is this DOI right?". Send citations from earlier in the conversation exactly as given, without correcting them first. Send every reference in the list as its own item, with or without a DOI (one without a DOI is matched by title and first author), with the full text as written, plus its DOI and title when you can read them, and any authors, journal, link, identifier or cite key you can read (the title lets a broken DOI be told apart from a missing work); up to 100 per call. For a whole reference list, such as the References section of an attached paper or a bibliography, send it as written, one reference per line, in reference_list instead of items: every reference in it is checked, in parts when it is long; call again with start_at as the result says until the whole list is done. When the whole original list's count is known, send it as expected_reference_count on every part; do not send a sample or reduce that count to fit a shortened input. Results come from Crossref, the DOI registry and Retraction Watch, and for references without a DOI also Semantic Scholar, PubMed, arXiv and, for books, Open Library; the manuscript itself is not sent. Do not use it to find new sources, to format citations, or to judge whether a source supports a claim. Report as the result's how_to_report says: each status as returned (for example "resolves" or "not found"), explained with the row detail; do not describe results as verified, fabricated or safe to cite. A reference with a DOI is compared by DOI and title only; one without a DOI must match a work by title and author.
For reference_list only: the list position to continue from, as the previous result's progress.next_start_at says.
The references to check, one item each. Leave out when sending reference_list.
A whole reference list as written, one reference per line, keeping any numbers: numbered, author-year, BibTeX, RIS or CSL-JSON, for example a paper's whole References section.
The number of references in the whole original list, when known, not the current part. A differing parsed count stops the check before lookup; resend the complete input rather than lowering this count.
Use this when the user wants to check references or citations from any source: a manuscript, a bibliography, a literature review, or citations an AI assistant gave earlier in the conversation. It reports whether each one exists, points to the right paper, or has been retracted, corrected or flagged, for questions like "are these references real?", "is this paper retracted?" or "is this DOI right?". Send citations from earlier in the conversation exactly as given, without correcting them first. Send every reference in the list as its own item, with or without a DOI (one without a DOI is matched by title and first author), with the full text as written, plus its DOI and title when you can read them, and any authors, journal, link, identifier or cite key you can read (the title lets a broken DOI be told apart from a missing work); up to 100 per call. For a whole reference list, such as the References section of an attached paper or a bibliography, send it as written, one reference per line, in reference_list instead of items: every reference in it is checked, in parts when it is long; call again with start_at as the result says until the whole list is done. When the whole original list's count is known, send it as expected_reference_count on every part; do not send a sample or reduce that count to fit a shortened input. Results come from Crossref, the DOI registry and Retraction Watch, and for references without a DOI also Semantic Scholar, PubMed, arXiv and, for books, Open Library; the manuscript itself is not sent. Do not use it to find new sources, to format citations, or to judge whether a source supports a claim. Report as the result's how_to_report says: each status as returned (for example "resolves" or "not found"), explained with the row detail; do not describe results as verified, fabricated or safe to cite. A reference with a DOI is compared by DOI and title only; one without a DOI must match a work by title and author.
| Argument | Type | Description |
|---|---|---|
| start_at | integer | For reference_list only: the list position to continue from, as the previous result's progress.next_start_at says. |
| references | array | The references to check, one item each. Leave out when sending reference_list. |
| reference_list | string | A whole reference list as written, one reference per line, keeping any numbers: numbered, author-year, BibTeX, RIS or CSL-JSON, for example a paper's whole References section. |
| expected_reference_count | integer | The number of references in the whole original list, when known, not the current part. A differing parsed count stops the check before lookup; resend the complete input rather than lowering this count. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"start_at": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "For reference_list only: the list position to continue from, as the previous result's progress.next_start_at says."
},
"references": {
"type": "array",
"items": {
"type": "object",
"required": [
"text"
],
"properties": {
"doi": {
"type": "string",
"maxLength": 300,
"description": "The DOI, if the reference has one."
},
"url": {
"type": "string",
"maxLength": 500,
"description": "A link given in the reference."
},
"isbn": {
"type": "string",
"maxLength": 40
},
"pmid": {
"type": "string",
"maxLength": 20
},
"text": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The full reference exactly as written in the manuscript, or one BibTeX, RIS or CSL-JSON entry."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1500
},
"pmcid": {
"type": "string",
"maxLength": 20
},
"title": {
"type": "string",
"maxLength": 500,
"description": "The cited work's title, as written."
},
"authors": {
"type": "string",
"maxLength": 1000,
"description": "The author list, as written."
},
"journal": {
"type": "string",
"maxLength": 300,
"description": "The journal, conference or publisher, as written."
},
"arxiv_id": {
"type": "string",
"maxLength": 40
},
"cite_key": {
"type": "string",
"maxLength": 200,
"description": "The BibTeX or reference-manager key; it is echoed back on the result."
},
"first_author_surname": {
"type": "string",
"maxLength": 120
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "The references to check, one item each. Leave out when sending reference_list."
},
"reference_list": {
"type": "string",
"maxLength": 200000,
"minLength": 1,
"description": "A whole reference list as written, one reference per line, keeping any numbers: numbered, author-year, BibTeX, RIS or CSL-JSON, for example a paper's whole References section."
},
"expected_reference_count": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "The number of references in the whole original list, when known, not the current part. A differing parsed count stops the check before lookup; resend the complete input rather than lowering this count."
}
}
}Use this when the user asks what a named journal or publisher allows or requires about AI: AI as an author, disclosure statements and where they go, AI-generated images, uploading manuscripts to AI tools, or reviewers' and editors' AI use. It returns the rules as recorded from the publisher's official policy page, with that page's URL and the date Manusights last checked it. When the record is overdue for a re-check or the page could not be fully read, it says which and gives the URL instead of the rules. It also returns the journal's measured submission-to-acceptance time when Manusights has it. Takes an exact journal name or ISSN. Do not use it for word limits, formatting, fees or impact factors.
| Argument | Type | Description |
|---|---|---|
| journal* | string | The journal's exact name or ISSN, e.g. "Nature Communications" or "2041-1723". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"journal"
],
"properties": {
"journal": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The journal's exact name or ISSN, e.g. \"Nature Communications\" or \"2041-1723\"."
}
}
}Use this to read the preview, and the Full Review if the account has one, for a review_id returned by review_manuscript or list_manuscript_reviews. While preview.status is "processing", wait check_again_after_seconds and call again with the same review_id. Report status only while processing; when ready, report only returned findings without inventing critique or recommended fixes. Do not use it for review_ids the user has not referred to.
| Argument | Type | Description |
|---|---|---|
| review_id* | string | The review_id of one of the user's reviews. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"review_id"
],
"properties": {
"review_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The review_id of one of the user's reviews."
}
}
}Use this when the user asks about their earlier Manusights reviews. Returns the 20 most recent, newest first.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Use this when the user wants Manusights to review, check or assess a scientific manuscript they attached (PDF, Word, ODT, RTF, TXT, Markdown or LaTeX, up to 50 MB). Starts a pre-submission preview and returns a review_id right away. The preview takes a few minutes, so read it afterwards with get_manuscript_review using the same review_id. While processing, report status only; do not add a preliminary critique. Report only returned findings when ready. Each account can start a limited number of previews per day from connected apps; the result says when the limit is reached. Calling again with the same file and target journal returns the same review instead of starting another. Do not use it to write, rewrite or edit text, for figures or data files, or when no manuscript is attached.
| Argument | Type | Description |
|---|---|---|
| manuscript* | object | The manuscript file the user attached. |
| target_journal | string | The journal the author plans to submit to, only if the user named one. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"manuscript"
],
"properties": {
"manuscript": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id."
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"download_url": {
"type": "string",
"description": "Temporary download URL for the attached file."
}
},
"description": "The manuscript file the user attached."
},
"target_journal": {
"type": "string",
"maxLength": 200,
"description": "The journal the author plans to submit to, only if the user named one."
}
}
}Use this when the user wants Manusights to review, check or assess a scientific manuscript and you have its full text (for example from a file the user attached or pasted), but cannot pass the file itself. Send the complete manuscript text, not a summary or excerpt: title, abstract, every section, figure legends and references. Figures and images are not reviewed in this mode; say so to the user. Accepts up to 600,000 characters. Starts a pre-submission preview and returns a review_id right away. The preview takes a few minutes, so read it afterwards with get_manuscript_review using the same review_id. While processing, report status only; do not add a preliminary critique. Report only returned findings when ready. Each account can start a limited number of previews per day from connected apps; the result says when the limit is reached. Calling again with the same text and target journal returns the same review instead of starting another. Do not use it to write, rewrite or edit text.
| Argument | Type | Description |
|---|---|---|
| target_journal | string | The journal the author plans to submit to, only if the user named one. |
| manuscript_text* | string | The full manuscript text, as written. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"manuscript_text"
],
"properties": {
"target_journal": {
"type": "string",
"maxLength": 200,
"description": "The journal the author plans to submit to, only if the user named one."
},
"manuscript_text": {
"type": "string",
"maxLength": 600000,
"minLength": 1,
"description": "The full manuscript text, as written."
}
}
}