io.github.MCPServings/paper-mcp
REMOTE · LATEX-TOOLS.ONLINE · SCANNED AUG 3
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 41 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 3588 tokens (~87/item across 41 items; 41 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · latex-tools.online
claude mcp add --transport http mcpservings-paper-mcp https://latex-tools.online/mcp
[mcp_servers.mcpservings-paper-mcp] url = "https://latex-tools.online/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcpservings-paper-mcp": {
"type": "remote",
"url": "https://latex-tools.online/mcp",
"enabled": true
}
}
} openclaw mcp add mcpservings-paper-mcp --url https://latex-tools.online/mcp --transport streamable-http
mcp_servers:
mcpservings-paper-mcp:
url: "https://latex-tools.online/mcp" {
"mcpServers": {
"mcpservings-paper-mcp": {
"type": "http",
"url": "https://latex-tools.online/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 58
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://latex-tools.online/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=latex-tools.online | CN=YE2,O=Let's Encrypt,C=US | 19 Jul 2026 | 17 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 5ae83a3d670d1d824d7bd85b253a390d430 |
| SANs: *.latex-tools.online, latex-tools.online | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of latex-tools.online. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| online. | present | 30961 | 13 | Verified |
| latex-tools.online. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://latex-tools.online/mcp | Verified | 200 | |
| http (plaintext) | http://latex-tools.online/mcp | HTTPS enforced | 301 | https://latex-tools.online/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
autocomplete_papers ~32
Semantic Scholar: autocomplete paper titles for a partial query (fast type-ahead).
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | — |
No output schema declared.
No examples provided.
extract_pdf ~169
Extract a PDF to clean Markdown/LaTeX text via MinerU (great for papers behind no open-access full text — give the user's PDF and get readable text back). Provide pdf_url (downloaded server-side, SSRF-guarded) OR pdf_base64. formula/table toggle math/table reconstruction. Returns {task_id, status, cached, content, chars}: a recently-seen (cached) or small PDF comes back with `content` in one call; a fresh PDF (MinerU is GPU-heavy, minutes) returns status='running' + a task_id — then call extract_pdf_result(task_id) to fetch the text.
| Name | Type | Req | Description |
|---|---|---|---|
| formula | boolean | — | — |
| pdf_base64 | string | — | — |
| pdf_url | string | — | — |
| table | boolean | — | — |
No output schema declared.
No examples provided.
extract_pdf_result ~75
Fetch the result of an extract_pdf job by task_id. Returns {task_id, status, content, chars}: `content` is the extracted text once status='done'; while still 'running' content is null — call again shortly. Results expire server-side, so fetch reasonably soon.
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | — |
No output schema declared.
No examples provided.
get_author ~26
Semantic Scholar: a single author's profile by id.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id | string | yes | — |
No output schema declared.
No examples provided.
get_author_papers ~47
Semantic Scholar: all papers by a given author id, newest first.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id | string | yes | — |
| max_results | integer | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_authors_batch ~28
Semantic Scholar: fetch many authors at once by id.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | — |
No output schema declared.
No examples provided.
get_dataset_diffs ~59
Semantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases. Needs the key.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset_name | string | yes | — |
| end_release | string | — | — |
| start_release | string | yes | — |
No output schema declared.
No examples provided.
get_dataset_download_links ~51
Semantic Scholar Datasets: get download links (presigned URLs) for one dataset in a release. Needs the API key.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset_name | string | yes | — |
| release_id | string | — | — |
No output schema declared.
No examples provided.
get_dataset_release ~51
Semantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…). release_id defaults to 'latest'.
| Name | Type | Req | Description |
|---|---|---|---|
| release_id | string | — | — |
No output schema declared.
No examples provided.
get_openalex_citations ~53
OpenAlex: papers that CITE this work (forward citation graph), most-cited first.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| start | integer | — | — |
| work_id | string | yes | — |
No output schema declared.
No examples provided.
get_openalex_references ~39
OpenAlex: the works this one REFERENCES (its bibliography).
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| work_id | string | yes | — |
No output schema declared.
No examples provided.
get_openalex_trends ~81
OpenAlex: publication-trend analytics for a query — counts grouped by year (default), or by 'institutions.id', 'authorships.author.id', 'open_access.is_oa', 'type', 'language'. Returns aggregate counts only (cheap, no rows).
| Name | Type | Req | Description |
|---|---|---|---|
| group_by | string | — | — |
| query | string | yes | — |
No output schema declared.
No examples provided.
get_openalex_work ~53
OpenAlex: fetch one work's full record (316M-work, all-field corpus). id accepts OpenAlex Wxxxx, a DOI, or an arXiv id.
| Name | Type | Req | Description |
|---|---|---|---|
| work_id | string | yes | — |
No output schema declared.
No examples provided.
get_paper ~37
Fetch one paper by id, with full abstract and PDF link.
| Name | Type | Req | Description |
|---|---|---|---|
| paper_id | string | yes | — |
| source | string | — | — |
No output schema declared.
No examples provided.
get_paper_authors ~52
Semantic Scholar: the authors of a paper (with h-index, paper/citation counts).
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| paper_id | string | yes | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_paper_citations ~66
Semantic Scholar: papers that CITE this one (forward citation graph). id accepts S2 id / DOI: / ARXIV: / CorpusId:.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| paper_id | string | yes | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_paper_references ~63
Semantic Scholar: papers this one REFERENCES (its bibliography). id accepts S2 id / DOI: / ARXIV: / CorpusId:.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| paper_id | string | yes | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
get_papers_batch ~49
Semantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | — |
No output schema declared.
No examples provided.
lint_latex ~61
Lint a LaTeX snippet: report errors and return an auto-fixed version. Input `code` (the LaTeX source). Returns {errors, fixed_code, summary_en, summary_zh, elapsed_ms}.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | — |
No output schema declared.
No examples provided.
list_categories ~25
List common subject category codes for filtering/recent.
| Name | Type | Req | Description |
|---|---|---|---|
| source | string | — | — |
No output schema declared.
No examples provided.
list_dataset_releases ~28
Semantic Scholar Datasets: list all available release ids (dated snapshots of the full corpus).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_ocr_models ~22
List the OCR models available for recognize_formula / recognize_table.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_openalex_topics ~50
OpenAlex: search the topic taxonomy (~4500 topics) to find the right subject term for filtering or recent-work queries.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| query | string | yes | — |
No output schema declared.
No examples provided.
list_paper_sources ~16
List available paper corpora.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_recent ~49
List the latest papers in a subject category, newest first.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | — |
| max_results | integer | — | — |
| source | string | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
match_paper_title ~36
Semantic Scholar: find the single paper whose title best matches the given text (exact-match lookup).
| Name | Type | Req | Description |
|---|---|---|---|
| title | string | yes | — |
No output schema declared.
No examples provided.
read_paper ~96
Read a paper's full text. format='markdown' (default, body with formulas as $LaTeX$), 'html' (raw LaTeXML HTML), or 'latex' (the original LaTeX manuscript from the e-print source). arXiv only; id like 2401.01234.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | — |
| paper_id | string | yes | — |
| source | string | — | — |
No output schema declared.
No examples provided.
recognize_formula ~87
Recognize a math formula from an image and return LaTeX. Provide image_url (downloaded server-side) OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, elapsed_ms}.
| Name | Type | Req | Description |
|---|---|---|---|
| image_base64 | string | — | — |
| image_url | string | — | — |
| model | string | — | — |
No output schema declared.
No examples provided.
recognize_table ~83
Recognize a table from an image and return LaTeX tabular code. Provide image_url OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, elapsed_ms}.
| Name | Type | Req | Description |
|---|---|---|---|
| image_base64 | string | — | — |
| image_url | string | — | — |
| model | string | — | — |
No output schema declared.
No examples provided.
recommend_papers_for_paper ~90
Semantic Scholar: recommend papers similar to one paper. pool='recent' (last open corpus) or 'all-cs' (all of CS). If the 'recent' pool yields nothing (common for older papers), it automatically retries the 'all-cs' pool.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| paper_id | string | yes | — |
| pool | string | — | — |
No output schema declared.
No examples provided.
recommend_papers_from_examples ~49
Semantic Scholar: recommend papers from positive (and optional negative) example paper ids.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| negative_ids | — | — | — |
| positive_ids | array | yes | — |
No output schema declared.
No examples provided.
search_all ~139
Aggregated search across arXiv, Semantic Scholar and OpenAlex at once. Fans out concurrently, de-duplicates the same work across corpora (by DOI or title) and re-ranks with Reciprocal Rank Fusion, so papers found by several sources rank highest. Each hit lists which `sources` found it and an `ids` map ({source: id}) you can pass to get_paper / read_paper / the citation tools. Prefer this over search_papers for a broad lookup.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| per_source | integer | — | — |
| query | string | yes | — |
| sources | string | — | — |
No output schema declared.
No examples provided.
search_authors ~51
Semantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| query | string | yes | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
search_by_author ~48
Find papers by a specific author, newest first.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | yes | — |
| max_results | integer | — | — |
| source | string | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
search_medical ~184
Evidence-graded MEDICAL literature search (PubMed + Europe PMC). Unlike search_all (generic, ranks high-cited reviews/guidelines above trials), this filters by research type via PubMed Publication-Type tags and re-ranks by the evidence pyramid (meta-analysis / systematic review > RCT > cohort > ...), so the actual clinical trials surface first. Open-access full text is pulled from Europe PMC by PMID. `query` should be English keyword/boolean text (PubMed maps it); do natural-language/multilingual understanding upstream. Returns hits with pmid/doi/study_type/evidence_level/citations/abstract and, when open-access, fulltext.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_fulltext | boolean | — | — |
| max_results | integer | — | — |
| query | string | yes | — |
| study_types | string | — | — |
| year_from | integer | — | — |
No output schema declared.
No examples provided.
search_openalex_authors ~56
OpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| query | string | yes | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
search_openalex_institutions ~50
OpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| query | string | yes | — |
No output schema declared.
No examples provided.
search_openalex_works ~118
OpenAlex: advanced filtered work search. Filters: from_year, to_year, is_oa (open access only), min_citations, institution_id. sort_by: relevance|newest|cited.
| Name | Type | Req | Description |
|---|---|---|---|
| from_year | integer | — | — |
| institution_id | string | — | — |
| is_oa | boolean | — | — |
| max_results | integer | — | — |
| min_citations | integer | — | — |
| query | string | — | — |
| sort_by | string | — | — |
| to_year | integer | — | — |
No output schema declared.
No examples provided.
search_papers ~68
Search academic papers. Returns normalized hits with a short abstract preview; call get_paper for the full record.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| query | string | yes | — |
| sort_by | string | — | — |
| source | string | — | — |
| start | integer | — | — |
No output schema declared.
No examples provided.
search_papers_bulk ~144
Semantic Scholar: bulk paper search (up to 1000 hits, sortable e.g. 'citationCount:desc' or 'publicationDate:desc', with a continuation token). Filters: fields_of_study, year (e.g. '2020-2024'), venue, publication_types, open_access_pdf.
| Name | Type | Req | Description |
|---|---|---|---|
| fields_of_study | string | — | — |
| max_results | integer | — | — |
| open_access_pdf | boolean | — | — |
| publication_types | string | — | — |
| query | string | yes | — |
| sort | string | — | — |
| token | string | — | — |
| venue | string | — | — |
| year | string | — | — |
No output schema declared.
No examples provided.
search_snippets ~46
Semantic Scholar: search INSIDE paper full text and return matching text snippets (not just titles/abstracts).
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | — |
| query | string | yes | — |
No output schema declared.
No examples provided.