Skills asta-skill

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.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/agents365-ai/asta-skill" ~/.claude/skills/clawdbot-skills-asta-skill && rm -rf "$T"
manifest: skills/agents365-ai/asta-skill/SKILL.md
source content

Asta MCP — Academic Paper Search

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.

Prerequisite Check

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 Installation section below.

Tool Map — Intent → Asta Tool

User intentAsta toolNotes
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 blowups

get_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.

Workflow Patterns

Pattern 1 — Topic Discovery

  1. search_papers_by_relevance(query, year="2022-", venue=?)
    → initial hits
  2. Rank/present top N by citationCount + recency
  3. Offer follow-ups:
    get_citations
    on the most influential, or
    snippet_search
    for specific claims

Pattern 2 — Seed-Paper Expansion

  1. get_paper(DOI|arXiv|...)
    → verify seed
  2. get_citations(paperId)
    → forward expansion
  3. Optionally
    search_papers_by_relevance
    with seed title terms for sideways discovery
  4. Deduplicate by paperId before presenting

Pattern 3 — Author Deep-Dive

  1. search_authors_by_name(name)
    → pick correct profile (disambiguate by affiliation)
  2. get_author_papers(authorId)
    → full publication list
  3. Filter client-side by topic keywords or date

Pattern 4 — Evidence Retrieval

  1. snippet_search(claim_query)
    → find passages making/supporting a claim
  2. For each hit, optionally
    get_paper(id)
    for full metadata

Output & Interaction Rules

  • Always report total count and which tool was used.
  • Present top 10 as a table (title, year, venue, citations), then details for the most relevant.
  • If the user writes in Chinese, present summaries in Chinese; keep titles in original language.
  • After results, offer: Details / Refine / Citations / Snippet / Export / Done.

Critical Rules

  • Prefer batched intent over ping-pong. If the user's question needs two independent lookups, issue them as parallel MCP tool calls in one turn, not sequentially.
  • Never guess IDs. If a user gives a fuzzy title, use
    search_paper_by_title
    before
    get_paper
    .
  • Respect rate limits. An API key buys higher limits but not unlimited — stop expanding citation graphs beyond what the user asked for.
  • Do not fabricate fields. If Asta returns null
    abstract
    or
    venue
    , say so rather than inventing.

Relationship to
semanticscholar-skill

Both wrap the Semantic Scholar corpus, but target different runtimes:

semanticscholar-skill
asta-skill
TransportPython + direct REST (
s2.py
)
MCP (streamable HTTP)
Host needs
S2_API_KEY
+ Python
Asta MCP registered in host
Best forScripted batch workflows, custom filtersZero-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.


Installation

Set

ASTA_API_KEY
in your shell first:

export ASTA_API_KEY="..."   # request at https://share.hsforms.com/1L4hUh20oT3mu8iXJQMV77w3ioxm

Claude Code

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}" }
    }
  }
}

Codex CLI

Edit

~/.codex/config.toml
:

[mcp_servers.asta]
type = "http"
url = "https://asta-tools.allen.ai/mcp/v1"
headers = { "x-api-key" = "${ASTA_API_KEY}" }

Windsurf / Cursor / Hermes / other MCP clients

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

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.

OpenClaw

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
.

Verification

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.

Troubleshooting

SymptomCauseFix
401 Unauthorized
Missing or invalid
x-api-key
Verify
ASTA_API_KEY
is set and header is forwarded
429 Too Many Requests
Rate limit hitSlow down / batch; ensure API key is attached (unauth'd limits are lower)
No Asta tools visibleMCP server not registered in hostRe-run install step, restart agent
Empty
abstract
Not all corpus papers have full textUse
snippet_search
instead, or fall back to title + TLDR
Author disambiguation wrongCommon name collisionsInspect affiliations in
search_authors_by_name
before calling
get_author_papers