Mdtero
Use 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.
When To Use
Use this skill when the user wants to:
- - parse a paper from a DOI, supported publisher page, or open URL into a Markdown research package
- translate an already parsed paper without losing the original research structure
- check task status and download
paper_md, paper_bundle, optional paper_pdf, or INLINECODE3
Required Setup
- 1. Check whether
MDTERO_API_KEY is already available. - If it is missing, tell the user to generate one at
https://mdtero.com/account. - Explain that keyword discovery and API-key management stay in Mdtero Account.
- Ask them to set it in their local shell, for example:
CODEBLOCK0
- 5. Authenticate requests with:
CODEBLOCK1
- 6. If the user wants Elsevier or ScienceDirect full-text retrieval, also check
ELSEVIER_API_KEY and explain that it is separate from MDTERO_API_KEY. - If an Elsevier DOI is missing the local helper or
ELSEVIER_API_KEY, tell the user exactly what is missing instead of guessing. - Explain that
ELSEVIER_API_KEY helps the user's local acquisition step. It does not enable direct server-side POST /tasks/parse for 10.1016/... inputs.
Before Use
- - Mdtero API usage requires
MDTERO_API_KEY. Elsevier or ScienceDirect full-text retrieval may also require ELSEVIER_API_KEY. - Tell the user that ClawHub install only sets up the agent skill, while the local helper remains a separate install on their own machine.
- Parse and translate requests send paper content or paper-source content to
https://api.mdtero.com, so do not use this workflow for sensitive or proprietary manuscripts unless the user accepts that boundary. - If the user needs the local helper, tell them to download the installer, review it locally, then run it on their own machine. Do not recommend piping a remote script directly into the shell.
- If the user wants a fuller install or helper walkthrough, point them to
https://mdtero.com/guide or https://api.mdtero.com/skills/install.md.
Workflow Rules You Must Preserve
- - PDF is an optional artifact. Prefer the Markdown package first and only fall back to
paper_pdf when the workflow truly requires it. - If the user starts from a local PDF, explain that Mdtero currently defaults to
GROBID; Docling and MinerU remain fallback options. - For Elsevier and ScienceDirect, local acquisition should stay on the user's own machine through the local helper or browser extension.
- Direct
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. - If an Elsevier parse only returns the abstract, ask whether the user is on a campus or institutional IP.
- For Elsevier papers, prefer the raw DOI form such as
10.1016/j.energy.2026.140192.
Local Helper
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.
Parse A Paper
Open inputs can go directly to POST /tasks/parse.
CODEBLOCK2
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:
CODEBLOCK3
If the API says Elsevier or ScienceDirect inputs must be acquired locally first, that is the expected behavior rather than a setup failure.
Translate A Parsed Markdown File
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.
CODEBLOCK4
The response returns a task_id. Poll it, then download translated_md.
Check Task Status
Poll GET /tasks/{task_id} until the task becomes succeeded.
CODEBLOCK5
The result object returns artifact metadata rather than the file body.
Download Artifacts
Download file contents from the download route.
CODEBLOCK6
Mdtero
使用 Mdtero 将一篇论文转换为结构化的 Markdown 研究包,供下游 OpenClaw 工作使用。
在 Mdtero 账户中开始关键词发现和 API 密钥管理。
ClawHub 安装仅设置代理技能。它不会安装本地助手。
何时使用
当用户想要以下操作时,请使用此技能:
- - 从 DOI、支持的出版商页面或开放 URL 解析论文为 Markdown 研究包
- 翻译已解析的论文而不丢失原始研究结构
- 检查任务状态并下载 papermd、paperbundle、可选的 paperpdf 或 translatedmd
必需设置
- 1. 检查 MDTEROAPIKEY 是否已可用。
- 如果缺失,告知用户在 https://mdtero.com/account 生成一个。
- 解释关键词发现和 API 密钥管理保留在 Mdtero 账户中。
- 要求用户在本地 shell 中设置,例如:
bash
export MDTEROAPIKEY=mdtlive...
- 5. 使用以下方式认证请求:
bash
Authorization: ApiKey $MDTEROAPIKEY
- 6. 如果用户需要 Elsevier 或 ScienceDirect 全文检索,还需检查 ELSEVIERAPIKEY,并解释它与 MDTEROAPIKEY 是分开的。
- 如果 Elsevier DOI 缺少本地助手或 ELSEVIERAPIKEY,准确告知用户缺失了什么,而不是猜测。
- 解释 ELSEVIERAPIKEY 帮助用户的本地获取步骤。它不会启用对 10.1016/... 输入的直接服务器端 POST /tasks/parse。
使用前
- - Mdtero API 使用需要 MDTEROAPIKEY。Elsevier 或 ScienceDirect 全文检索可能还需要 ELSEVIERAPIKEY。
- 告知用户 ClawHub 安装仅设置代理技能,而本地助手是单独安装在他们自己机器上的。
- 解析和翻译请求会将论文内容或论文来源内容发送到 https://api.mdtero.com,因此除非用户接受此边界,否则不要将此工作流用于敏感或专有稿件。
- 如果用户需要本地助手,告知他们下载安装程序,在本地检查,然后在他们自己的机器上运行。不建议直接将远程脚本通过管道输入到 shell 中。
- 如果用户想要更完整的安装或助手指南,请引导他们访问 https://mdtero.com/guide 或 https://api.mdtero.com/skills/install.md。
你必须保留的工作流规则
- - PDF 是可选的产物。优先使用 Markdown 包,仅在工作流真正需要时才回退到 paper_pdf。
- 如果用户从本地 PDF 开始,解释 Mdtero 当前默认使用 GROBID;Docling 和 MinerU 仍然是后备选项。
- 对于 Elsevier 和 ScienceDirect,本地获取应通过本地助手或浏览器扩展保留在用户自己的机器上。
- 直接 POST /tasks/parse 用于开放输入。Elsevier 和 ScienceDirect 全文必须首先通过本地获取,然后使用 POST /tasks/parse-fulltext-v2 或 POST /tasks/parse-helper-bundle-v2。
- 如果 Elsevier 解析仅返回摘要,询问用户是否在校园或机构 IP 上。
- 对于 Elsevier 论文,优先使用原始 DOI 形式,例如 10.1016/j.energy.2026.140192。
本地助手
当用户需要 Elsevier 或 ScienceDirect 的本地获取时,告知他们打开官方 Mdtero 指南 https://mdtero.com/guide 或安装交接页面 https://api.mdtero.com/skills/install.md。
告知他们下载助手安装程序,在本地检查,然后在他们自己的机器上运行。解释安装程序会自动检测 python3、python 或 node,并暴露 mdtero-local 命令,无需额外包。不建议直接将远程脚本通过管道输入到 shell 中。
如果他们需要确切的助手交接,引导他们访问 https://api.mdtero.com/helpers/installmdterohelper.sh,并告知他们在运行前先保存到本地。
解释 mdtero-local parse 和 mdtero-local translate 默认短等待。快速任务可能已经返回完成;较慢的任务仍会返回待处理的 task_id。用户可以使用 mdtero-local parse --no-wait ... 或 mdtero-local translate --no-wait ... 强制纯异步模式。
解释公共 API 契约本身仍然是基于任务的:POST /tasks/parse 和 POST /tasks/translate 返回 taskid,而 GET /tasks/{taskid} 仍然是稳定的完成路径。
解析论文
开放输入可以直接发送到 POST /tasks/parse。
bash
curl -X POST https://api.mdtero.com/tasks/parse \
-H Authorization: ApiKey $MDTEROAPIKEY \
-H Content-Type: application/json \
-d {input: https://arxiv.org/abs/1706.03762}
响应返回一个 task_id。
对于 Elsevier 或 ScienceDirect 全文,不要直接将 DOI 发送到 POST /tasks/parse。首先使用本地助手或浏览器扩展,然后上传本地助手包:
bash
mdtero-local parse 10.1016/j.enconman.2026.121230
curl -X POST https://api.mdtero.com/tasks/parse-helper-bundle-v2 \
-H Authorization: ApiKey $MDTEROAPIKEY \
-F helper_bundle=@paper.helper-bundle.zip
如果 API 说 Elsevier 或 ScienceDirect 输入必须首先在本地获取,这是预期行为,而不是设置失败。
翻译已解析的 Markdown 文件
使用 POST /tasks/translate,参数为成功解析任务在 result.artifacts.paper_md.path 中返回的服务器端 Markdown 产物路径。不要替换为任意的本地文件路径。
bash
mdtero-local translate zh
curl -X POST https://api.mdtero.com/tasks/translate \
-H Authorization: ApiKey $MDTEROAPIKEY \
-H Content-Type: application/json \
-d {
sourcemarkdownpath: ,
target_language: zh,
mode: standard
}
响应返回一个 taskid。轮询它,然后下载 translatedmd。
检查任务状态
轮询 GET /tasks/{task_id} 直到任务变为 succeeded。
bash
mdtero-local status
curl https://api.mdtero.com/tasks/ \
-H Authorization: ApiKey $MDTEROAPIKEY
result 对象返回产物元数据而不是文件内容。
下载产物
从下载路由下载文件内容。
bash
mdtero-local download ID> paperbundle ./paper_bundle.zip
curl -L https://api.mdtero.com/tasks/ID>/download/papermd \
-H Authorization: ApiKey $MDTEROAPIKEY \
-o paper.md
curl -L https://api.mdtero.com/tasks/ID>/download/paperpdf \
-H Authorization: ApiKey $MDTEROAPIKEY \
-o paper.pdf
curl -L https://api.mdtero.com/tasks/ID>/download/translatedmd \
-H Authorization: ApiKey $MDTEROAPIKEY \
-o paper.zh.md