Install
openclaw skills install mdteroUse when a user wants Mdtero to parse a paper from a DOI or URL into a structured Markdown package, translate a parsed paper while keeping structure, or download Mdtero task artifacts.
openclaw skills install mdteroUse Mdtero to turn one paper into a structured Markdown research package for downstream OpenClaw work.
Start in Mdtero Account for keyword discovery and API-key management.
ClawHub install only sets up the agent skill. It does not install the local helper.
Use this skill when the user wants to:
paper_md, paper_bundle, optional paper_pdf, or translated_mdMDTERO_API_KEY is already available.https://mdtero.com/account.export MDTERO_API_KEY="mdt_live_..."
Authorization: ApiKey $MDTERO_API_KEY
ELSEVIER_API_KEY and explain that it is separate from MDTERO_API_KEY.ELSEVIER_API_KEY, tell the user exactly what is missing instead of guessing.ELSEVIER_API_KEY helps the user's local acquisition step. It does not enable direct server-side POST /tasks/parse for 10.1016/... inputs.MDTERO_API_KEY. Elsevier or ScienceDirect full-text retrieval may also require ELSEVIER_API_KEY.https://api.mdtero.com, so do not use this workflow for sensitive or proprietary manuscripts unless the user accepts that boundary.https://mdtero.com/guide or https://api.mdtero.com/skills/install.md.paper_pdf when the workflow truly requires it.GROBID; Docling and MinerU remain fallback options.POST /tasks/parse is for open inputs. Elsevier and ScienceDirect full text must go through local acquisition first, then POST /tasks/parse-fulltext-v2 or POST /tasks/parse-helper-bundle-v2.10.1016/j.energy.2026.140192.When the user needs local acquisition for Elsevier or ScienceDirect, tell them to open the official Mdtero guide at https://mdtero.com/guide or the install handoff at https://api.mdtero.com/skills/install.md.
Tell them to download the helper installer, review it locally, then run it on their own machine. Explain that the installer auto-detects python3, python, or node, and exposes the mdtero-local command without requiring extra packages. Do not recommend piping a remote script directly into the shell.
If they need the exact helper handoff, point them to https://api.mdtero.com/helpers/install_mdtero_helper.sh and tell them to save it locally before running it.
Explain that mdtero-local parse and mdtero-local translate short-wait by default. Fast tasks may already come back completed; slower tasks still return a pending task_id. The user can force pure async mode with mdtero-local parse --no-wait ... or mdtero-local translate --no-wait ....
Explain that the public API contract itself is still task-based: POST /tasks/parse and POST /tasks/translate return task_id, while GET /tasks/{task_id} remains the stable completion path.
Open inputs can go directly to POST /tasks/parse.
curl -X POST https://api.mdtero.com/tasks/parse \
-H "Authorization: ApiKey $MDTERO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input": "https://arxiv.org/abs/1706.03762"}'
The response returns a task_id.
For Elsevier or ScienceDirect full text, do not send the DOI straight to POST /tasks/parse. Use the local helper or browser extension first, then upload the local helper bundle:
mdtero-local parse "10.1016/j.enconman.2026.121230"
curl -X POST https://api.mdtero.com/tasks/parse-helper-bundle-v2 \
-H "Authorization: ApiKey $MDTERO_API_KEY" \
-F "helper_bundle=@paper.helper-bundle.zip"
If the API says Elsevier or ScienceDirect inputs must be acquired locally first, that is the expected behavior rather than a setup failure.
Use POST /tasks/translate with the server-side Markdown artifact path returned by a succeeded parse task in result.artifacts.paper_md.path. Do not substitute an arbitrary local file path.
mdtero-local translate "<path from result.artifacts.paper_md.path>" zh
curl -X POST https://api.mdtero.com/tasks/translate \
-H "Authorization: ApiKey $MDTERO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_markdown_path": "<path from result.artifacts.paper_md.path>",
"target_language": "zh",
"mode": "standard"
}'
The response returns a task_id. Poll it, then download translated_md.
Poll GET /tasks/{task_id} until the task becomes succeeded.
mdtero-local status <TASK_ID>
curl https://api.mdtero.com/tasks/<TASK_ID> \
-H "Authorization: ApiKey $MDTERO_API_KEY"
The result object returns artifact metadata rather than the file body.
Download file contents from the download route.
mdtero-local download <TASK_ID> paper_bundle ./paper_bundle.zip
curl -L https://api.mdtero.com/tasks/<TASK_ID>/download/paper_md \
-H "Authorization: ApiKey $MDTERO_API_KEY" \
-o paper.md
curl -L https://api.mdtero.com/tasks/<TASK_ID>/download/paper_pdf \
-H "Authorization: ApiKey $MDTERO_API_KEY" \
-o paper.pdf
curl -L https://api.mdtero.com/tasks/<TASK_ID>/download/translated_md \
-H "Authorization: ApiKey $MDTERO_API_KEY" \
-o paper.zh.md