Access the Semantic Scholar Graph API to search papers and retrieve paper/author/citation data when you need literature discovery or citation graph exploration.
61
73%
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
Fix and improve this skill with Tessl
tessl review fix ./scientific-skills/Evidence Insight/semantic-scholar-database/SKILL.mdcitations)references)>=3.9requests >=2.25.0import os
from scripts.client import (
search_papers,
get_paper_details,
get_author_details,
get_citations,
)
# Optional: set for higher rate limits
# os.environ["S2_API_KEY"] = "YOUR_API_KEY"
def main():
# 1) Search papers
results = search_papers(query="Attention Is All You Need", limit=5)
print("Search results (top 5):")
for i, p in enumerate(results, 1):
# The exact keys depend on the fields requested by the client implementation.
print(f"{i}. {p.get('title')} ({p.get('year')}) - paperId={p.get('paperId')}")
# 2) Get paper details
paper_id = "649def34f8be52c8b66281af98ae884c09aef38b"
paper = get_paper_details(paper_id=paper_id)
print("\nPaper details:")
print("Title:", paper.get("title"))
print("Venue:", paper.get("venue"))
print("Year:", paper.get("year"))
print("Abstract:", (paper.get("abstract") or "")[:300], "...")
# 3) Get author details
author_id = "1741101"
author = get_author_details(author_id=author_id)
print("\nAuthor details:")
print("Name:", author.get("name"))
print("AuthorId:", author.get("authorId"))
# 4) Traverse citations / references
citing = get_citations(paper_id=paper_id, method="citations")
refs = get_citations(paper_id=paper_id, method="references")
print("\nCitation traversal:")
print("Citations count:", len(citing) if isinstance(citing, list) else "N/A")
print("References count:", len(refs) if isinstance(refs, list) else "N/A")
if __name__ == "__main__":
main()https://api.semanticscholar.org/graph/v1/requests to perform REST calls.S2_API_KEY is set in the environment, requests should include it (typically via an x-api-key header) to obtain higher rate limits.scripts/client.py):
search_papers(query, limit=...): queries the search endpoint and returns a list of matching papers.get_paper_details(paper_id): fetches metadata for a specific paper ID.get_author_details(author_id): fetches metadata for a specific author ID.get_citations(paper_id, method="citations"|"references"): traverses the citation graph by selecting either inbound citations or outbound references.limit: controls the maximum number of results returned by search.method: must be either "citations" or "references" to select traversal direction.63c61d3
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.