Web/PDF to Markdown, transcription, paper search and citation checks. Pay per call in USDC via x402.
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.
Check whether a cited paper really exists (catch hallucinated or mistyped references) and whether it has been retracted. Give a doi, or a title with optional year and first_author. Returns exists, verdict (verified | found | doi_exists_metadata_mismatch | uncertain | not_found), confidence (high/medium/low) with a note on what matched, is_retracted (OpenAlex is_retracted + Crossref/Retraction Watch notices) and the best match. Data: OpenAlex (CC0, openalex.org) with Crossref REST (crossref.org) for retraction notices and as fallback. Upstream errors are not charged. Costs $0.002 USDC per check via x402.
DOI of the cited work (preferred if known)
Publication year as cited (optional)
Title of the cited work (used when no DOI is given; also cross-checked against a DOI)
First author's name or surname as cited (optional)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Check whether a cited paper really exists (catch hallucinated or mistyped references) and whether it has been retracted. Give a doi, or a title with optional year and first_author. Returns exists, verdict (verified | found | doi_exists_metadata_mismatch | uncertain | not_found), confidence (high/medium/low) with a note on what matched, is_retracted (OpenAlex is_retracted + Crossref/Retraction Watch notices) and the best match. Data: OpenAlex (CC0, openalex.org) with Crossref REST (crossref.org) for retraction notices and as fallback. Upstream errors are not charged. Costs $0.002 USDC per check via x402.
| Argument | Type | Description |
|---|---|---|
| doi | string | DOI of the cited work (preferred if known) |
| year | integer | Publication year as cited (optional) |
| title | string | Title of the cited work (used when no DOI is given; also cross-checked against a DOI) |
| first_author | string | First author's name or surname as cited (optional) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"doi": {
"type": "string",
"maxLength": 300,
"description": "DOI of the cited work (preferred if known)"
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1600,
"description": "Publication year as cited (optional)"
},
"title": {
"type": "string",
"maxLength": 500,
"minLength": 8,
"description": "Title of the cited work (used when no DOI is given; also cross-checked against a DOI)"
},
"first_author": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "First author's name or surname as cited (optional)"
}
}
}Look up one scholarly work by DOI (10.xxxx/..., doi.org URL), arXiv id (arXiv:1706.03762) or OpenAlex work id (W...). Returns title, authors, year, venue, DOI, citation count, references count, open-access PDF link, abstract, OpenAlex id and a retraction flag (OpenAlex is_retracted plus Crossref/Retraction Watch notices). Data: OpenAlex (CC0, openalex.org) with Crossref REST (crossref.org) for retraction notices and as fallback. Not-found and upstream errors are not charged. Costs $0.002 USDC per lookup via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | DOI, doi.org URL, arXiv:id or OpenAlex work id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 300,
"minLength": 3,
"description": "DOI, doi.org URL, arXiv:id or OpenAlex work id"
}
}
}Free health check. Returns service status, version, tool prices, network and the plain-HTTP x402 endpoints.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Paid connectivity test: returns ok and a server timestamp. Use it to check that your x402 payment flow works end to end. Costs $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Fetch a public PDF (max 10 MB) and convert it to Markdown with Cloudflare Workers AI toMarkdown. Returns title (if detected), url, markdown, word_count. Same URL safety rules as read_url. Failed conversions are not charged. Costs $0.006 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL of a PDF file |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public http(s) URL of a PDF file"
}
}
}Fetch a public web page and return its main content as clean Markdown (readability extraction): title, url, final_url, markdown, word_count. HTML, plain text, Markdown, JSON and XML. Static fetch only (no JavaScript rendering). Respects robots.txt, blocks private/loopback/metadata hosts, max 3 MB / 15 s, no logins or paywall bypass. For PDFs use read_pdf. Failed reads are not charged. Costs $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL to read |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public http(s) URL to read"
}
}
}Same as read_url plus a heuristic prompt-injection check: flags hidden/invisible text, instruction-like phrases ("ignore previous instructions", role reassignment, secret exfiltration, chat-template tokens), suspicious HTML comments and zero-width/Unicode-tag characters. Returns injection_check {flagged, risk none|low|medium|high, signals}. Heuristic, not a guarantee. Failed reads are not charged. Costs $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL to read |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public http(s) URL to read"
}
}
}Search scholarly papers (OpenAlex index of 250M+ works). Returns up to 25 results with title, authors, year, venue, DOI, citation count, open-access PDF link, abstract (reconstructed from OpenAlex's inverted index; may be null when the publisher withholds it) and OpenAlex id. Optional from_year / to_year / open_access_only filters. Data: OpenAlex (CC0, openalex.org) with Crossref REST (crossref.org) for retraction notices and as fallback. Upstream errors are not charged. Costs $0.005 USDC per search via x402.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of results, 1-25 (default 10) |
| query* | string | Search terms (title, abstract and full-text relevance search) |
| to_year | integer | Latest publication year (inclusive) |
| from_year | integer | Earliest publication year (inclusive) |
| open_access_only | boolean | Only open-access works (default false) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Number of results, 1-25 (default 10)"
},
"query": {
"type": "string",
"maxLength": 300,
"minLength": 2,
"description": "Search terms (title, abstract and full-text relevance search)"
},
"to_year": {
"type": "integer",
"maximum": 2100,
"minimum": 1600,
"description": "Latest publication year (inclusive)"
},
"from_year": {
"type": "integer",
"maximum": 2100,
"minimum": 1600,
"description": "Earliest publication year (inclusive)"
},
"open_access_only": {
"type": "boolean",
"description": "Only open-access works (default false)"
}
}
}Transcribe a public direct audio file URL (mp3, wav, m4a, ogg/opus, flac; max 25 MB and 10 minutes, checked from the file header before transcription) with Whisper (@cf/openai/whisper-large-v3-turbo) on Cloudflare Workers AI. Returns text, language, duration, segments with timestamps, optional SRT/VTT subtitles. YouTube/TikTok/Instagram and other page URLs are rejected. Failed transcriptions and files with no detected speech are not charged. Costs $0.01 USDC per file via x402.
| Argument | Type | Description |
|---|---|---|
| url* | string | Direct public URL of an audio file |
| language | string | Optional ISO language hint, e.g. en, ur, es (auto-detected if omitted) |
| subtitles | string | Also return SRT and/or WebVTT subtitles (default none) |
| include_words | boolean | Include word-level timestamps in segments (default false) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Direct public URL of an audio file"
},
"language": {
"type": "string",
"maxLength": 5,
"minLength": 2,
"description": "Optional ISO language hint, e.g. en, ur, es (auto-detected if omitted)"
},
"subtitles": {
"enum": [
"none",
"srt",
"vtt",
"both"
],
"type": "string",
"description": "Also return SRT and/or WebVTT subtitles (default none)"
},
"include_words": {
"type": "boolean",
"description": "Include word-level timestamps in segments (default false)"
}
}
}