Use when searching academic papers via Ai2 Asta (Semantic Scholar corpus) through the Asta MCP server. Triggers on academic search, paper lookup, citation traversal, author search, or snippet search when the Asta MCP server is configured. Works with Claude Code, Codex, Hermes, OpenClaw, Windsurf, Cursor, and any MCP-compatible agent.
Asta is Ai2's Scientific Corpus Tool, exposing the Semantic Scholar academic graph over MCP (streamable HTTP transport). This skill tells agents which Asta tool to call for which intent, and how to compose them into useful workflows.
https://asta-tools.allen.ai/mcp/v1x-api-key header (request key at https://share.hsforms.com/1L4hUh20oT3mu8iXJQMV77w3ioxm)Before invoking any tool, verify the Asta MCP server is registered in the host agent. Tool names will be prefixed by the MCP server name chosen at install time (commonly asta__<tool> or mcp__asta__<tool>). If no Asta tools are visible, direct the user to the section below.
| User intent | Asta tool | Notes |
|---|---|---|
| Broad topic search | search_papers_by_relevance | Supports venue + date filters |
| Known paper title | search_paper_by_title | Optional venue restriction |
| Known DOI / arXiv / PMID / CorpusId / MAG / ACL / SHA / URL | get_paper | Single-paper lookup |
| Multiple known IDs at once | get_paper_batch | Batch lookup — prefer over N sequential get_paper calls |
| Who cited paper X | get_citations | Citation traversal with filters, paginated |
| Find author by name | search_authors_by_name | Returns profile info |
| An author's publications | get_author_papers | Pass author id from previous call |
| Find passages mentioning X | snippet_search | ~500-word excerpts from paper bodies |
All tools accept date-range filters and field selection — pass them whenever the user's intent constrains scope (e.g., "recent", "since 2022", "at NeurIPS").
fields parameter — avoid context blowupsget_paper / get_paper_batch accept a fields string. Never request citations or references via fields — a single highly-cited paper (e.g. Attention Is All You Need) returns 200k+ characters and will overflow the agent's context window. Use the dedicated get_citations tool instead (it paginates).
Safe default fields for get_paper:
title,year,authors,venue,tldr,url,abstract
Add journal, publicationDate, fieldsOfStudy, isOpenAccess only when needed.
search_papers_by_relevance(query, year="2022-", venue=?) → initial hitsget_citations on the most influential, or snippet_search for specific claimsget_paper(DOI|arXiv|...) → verify seedget_citations(paperId) → forward expansionsearch_papers_by_relevance with seed title terms for sideways discoverysearch_authors_by_name(name) → pick correct profile (disambiguate by affiliation)get_author_papers(authorId) → full publication listsnippet_search(claim_query) → find passages making/supporting a claimget_paper(id) for full metadatasearch_paper_by_title before get_paper.abstract or venue, say so rather than inventing.semanticscholar-skillBoth wrap the Semantic Scholar corpus, but target different runtimes:
semanticscholar-skill | asta-skill | |
|---|---|---|
| Transport | Python + direct REST (s2.py) | MCP (streamable HTTP) |
| Host needs | S2_API_KEY + Python | Asta MCP registered in host |
| Best for | Scripted batch workflows, custom filters | Zero-code agent integration (Claude Code, Codex, Cursor, Windsurf, OpenClaw) |
| Auth | S2_API_KEY | ASTA_API_KEY via x-api-key header |
Use asta-skill when the host agent supports MCP; fall back to semanticscholar-skill for scripted/pipeline work.
Set ASTA_API_KEY in your shell first:
export ASTA_API_KEY="..." # request at https://share.hsforms.com/1L4hUh20oT3mu8iXJQMV77w3ioxm
claude mcp add asta \
--transport http \
--url https://asta-tools.allen.ai/mcp/v1 \
--header "x-api-key: $ASTA_API_KEY"
Or edit ~/.claude.json / .mcp.json:
{
"mcpServers": {
"asta": {
"type": "http",
"url": "https://asta-tools.allen.ai/mcp/v1",
"headers": { "x-api-key": "${ASTA_API_KEY}" }
}
}
}
Edit ~/.codex/config.toml:
[mcp_servers.asta]
type = "http"
url = "https://asta-tools.allen.ai/mcp/v1"
headers = { "x-api-key" = "${ASTA_API_KEY}" }
Add to the client's MCP server config file:
{
"mcpServers": {
"asta": {
"serverUrl": "https://asta-tools.allen.ai/mcp/v1",
"headers": { "x-api-key": "<YOUR_API_KEY>" }
}
}
}
LM Studio 0.3.17+ supports remote MCP servers. Edit ~/.lmstudio/mcp.json (macOS/Linux) or %USERPROFILE%\.lmstudio\mcp.json (Windows) — or in the app: Program tab → Install > Edit mcp.json:
{
"mcpServers": {
"asta": {
"url": "https://asta-tools.allen.ai/mcp/v1",
"headers": { "x-api-key": "<YOUR_API_KEY>" }
}
}
}
Only models with "Tool Use: Supported" in LM Studio's model loader will be able to call Asta tools. Recommended: Qwen 2.5 / 3 Instruct (7B+), Llama 3.1 / 3.3 Instruct (8B+), Mistral / Mixtral Instruct.
Install this skill into ~/.openclaw/skills/asta-skill/ and register the MCP server in your OpenClaw config using the same URL + x-api-key header pattern. The skill's frontmatter declares ASTA_API_KEY as required via metadata.openclaw.requires.env.
After installation, ask the agent: "Use Asta to look up the paper with DOI 10.48550/arXiv.1706.03762." A successful call returns the "Attention Is All You Need" paper metadata. If the agent reports no Asta tools, the MCP server is not registered — re-check the config file path and restart the host.
| Symptom | Cause | Fix |
|---|---|---|
401 Unauthorized | Missing or invalid x-api-key | Verify ASTA_API_KEY is set and header is forwarded |
429 Too Many Requests | Rate limit hit | Slow down / batch; ensure API key is attached (unauth'd limits are lower) |
| No Asta tools visible | MCP server not registered in host | Re-run install step, restart agent |
Empty abstract | Not all corpus papers have full text | Use snippet_search instead, or fall back to title + TLDR |
| Author disambiguation wrong | Common name collisions | Inspect affiliations in search_authors_by_name before calling get_author_papers |