Use when academic literature needs to be gathered or refreshed for a research topic, especially at the beginning of a project.
71
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Search academic literature through the academic literature search gateway and save results to the workspace papers/ directory. Queries all configured data sources (local, arXiv, CrossRef, OpenAlex) by default.
The runtime connects via MCP using workspace .env only. You do not need Claude mcp.json for this skill.
TOPIC.md does not yet existTOPIC.md needs enrichment with more referencespapers/literature_index.jsonDo NOT use when:
Use the Python interpreter from .env. See CLAUDE.md for setup.
Run commands from the workspace root through .agentsociety/bin/ags.py.
| Action | Command |
|---|---|
| Basic search | $PYTHON_PATH .agentsociety/bin/ags.py literature-search "query" |
| Year range | $PYTHON_PATH .agentsociety/bin/ags.py literature-search "query" --year-from 2020 --year-to 2024 |
| Complex topic | $PYTHON_PATH .agentsociety/bin/ags.py literature-search "complex query" --multi-query |
| Custom workspace | $PYTHON_PATH .agentsociety/bin/ags.py literature-search "query" --workspace /path/to/dir |
| List PDF candidates | $PYTHON_PATH .agentsociety/bin/ags.py literature-full-text candidates |
| Download open PDF | $PYTHON_PATH .agentsociety/bin/ags.py literature-full-text download --entry 1 |
| Register local PDF | $PYTHON_PATH .agentsociety/bin/ags.py literature-full-text register --entry 1 --file /path/to/paper.pdf |
| Mark no PDF found | $PYTHON_PATH .agentsociety/bin/ags.py literature-full-text mark --entry 1 --status no_candidate --reason "No open PDF URL available" |
| List enrichable entries | $PYTHON_PATH .agentsociety/bin/ags.py literature-full-text enrich --dry-run |
| Mark entry as enriched | $PYTHON_PATH .agentsociety/bin/ags.py literature-full-text enrich --entry 1 |
Set in the workspace .env:
LITERATURE_SEARCH_MCP_URL=https://llmapi.fiblab.net/mcp/
LITERATURE_SEARCH_API_KEY=sk-your-litellm-virtual-keyUse an MCP gateway URL ending in /mcp/ (trailing slash required on fiblab). The API key must be a LiteLLM virtual key (sk-...) with academic literature search permission on that gateway.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search query (positional) |
| --year-from | integer | No | Start year filter |
| --year-to | integer | No | End year filter |
| --workspace | string | No | Workspace path (default: cwd) |
| --multi-query | flag | No | Split complex queries into subtopics |
Full-text helper parameters:
| Command | Important Parameters | Description |
|---|---|---|
literature-full-text candidates | --entry N optional | Show candidate URLs inferred from literature_index.json |
literature-full-text download | --entry N, --url URL optional | Try open PDF URLs and update extra_fields.full_text |
literature-full-text register | --entry N, --file PATH | Copy/register a local PDF and update the index |
literature-full-text mark | --entry N, --status no_candidate|failed, --reason TEXT | Record why a PDF is unavailable |
literature-full-text enrich | --entry N or --dry-run | List or mark entries whose Markdown notes have been enriched via web research |
.env has LITERATURE_SEARCH_MCP_URL and LITERATURE_SEARCH_API_KEY.TOPIC.md if it exists. Use the research question, scope, target population, and key constructs to form the query.--limit when the user explicitly asks for a different count.--year-from / --year-to when the user wants recent work or a defined historical window.--multi-query for topics with multiple constructs, methods, or domains.papers/literature_index.json and papers/full_texts/ after the command completes.papers/
literature_index.json # Auto-created/updated catalog
article_title.md # Per-article markdown summaries
full_texts/ # Open-access PDFs (auto-downloaded when available)Each article contains: title, authors, abstract, year, journal, doi, url, score, source.
papers/literature_index.json follows this shape:
{
"version": "1.0",
"created_at": "...",
"updated_at": "...",
"entries": [
{
"title": "Article title",
"journal": "Journal or venue",
"doi": "10.xxxx/xxxx",
"abstract": "...",
"file_path": "papers/article_title.md",
"file_type": "markdown",
"source": "literature_search",
"query": "original query",
"avg_similarity": 0.84,
"saved_at": "...",
"extra_fields": {
"authors": ["..."],
"year": 2024,
"url": "https://..."
}
}
]
}Keep file_path pointed at the Markdown note. PDF paths belong in extra_fields.full_text.file_path.
The search command automatically tries open-access PDF downloads. Publisher paywalls are not bypassed. See references/full-text-retrieval.md for manual follow-up.
When a PDF cannot be downloaded, enrich the Markdown note via web search. See references/full-text-retrieval.md (section Enriching Notes via Web Research).
| Mistake | Fix |
|---|---|
| Missing trailing slash on fiblab MCP | Use https://llmapi.fiblab.net/mcp/ |
Only configuring Claude mcp.json | Add LITERATURE_SEARCH_MCP_* to workspace .env |
| Key works for LLM but not literature | Use sk- key with literature permission on the gateway |
Non-MCP URL in LITERATURE_SEARCH_MCP_URL | Use gateway MCP URL https://llmapi.fiblab.net/mcp/ |
references/data-sources.md — data sources and response fieldsreferences/full-text-retrieval.md — PDF workflowPredecessors: None (entry point) Successors: hypothesis Required Sub-Skills: None
After search completes successfully:
$PYTHON .agentsociety/bin/ags.py research-pipeline update-stage literature_search completed --metadata '{"paper_count": N}'1832bcb
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.