Skip to main content ->
Ai2

Access

MCP Endpoint: https://asta-tools.allen.ai/mcp/v1

The tools are exposed via the Model Context Protocol using streamable HTTP transport. Installation steps depend on the MCP client you use.

For example, using Windsurf MCP client:

{
  "mcpServers": {
    "semanticscholar": {
      "serverUrl": "https://asta-tools.allen.ai/mcp/v1",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

Rate Limit

To use your API key, include it in the x-api-key header with your requests:

x-api-key: YOUR_API_KEY

Tools Reference

get_papers

Get details about a paper by its id.

get_paper(paper_id: string [required], fields: string [optional])

Args:

  • paper_id: The id of the paper to get. The following types of IDs are supported:
    • <sha> - a Semantic Scholar ID, e.g. 649def34f8be52c8b66281af98ae884c09aef38b
    • CorpusId:<id> - a Semantic Scholar numerical ID, e.g. CorpusId:215416146
    • DOI:<doi> - a Digital Object Identifier, e.g. DOI:10.18653/v1/N18-3011
    • ARXIV:<id> - arXiv.rg, e.g. ARXIV:2106.15928
    • MAG:<id> - Microsoft Academic Graph, e.g. MAG:112218234
    • ACL:<id> - Association for Computational Linguistics, e.g. ACL:W12-3903
    • PMID:<id> - PubMed/Medline, e.g. PMID:19872477
    • PMCID:<id> - PubMed Central, e.g. PMCID:2323736
    • URL:<url> - URL from one of the sites listed below, e.g. URL: https://arxiv.org/abs/2106.15928v1
  • fields: String of comma-separated fields to include in the response. E.g "url,year,authors". Default is "title". Available fields are: abstract, authors, citations, fieldsOfStudy, isOpenAccess, journal, publicationDate, references, tldr, url, venue, year.

Returns:

  • The paper object.

get_citations

Get details about the papers that cite this paper (i.e. papers in whose bibliography this paper appears)

get_citations(paper_id: string [required], fields: string [optional], limit: integer [optional], publication_date_range: string [optional])

Args:

  • paper_id: The id of the paper to get. The following types of IDs are supported:
    • <sha> - a Semantic Scholar ID, e.g. 649def34f8be52c8b66281af98ae884c09aef38b
    • CorpusId:<id> - a Semantic Scholar numerical ID, e.g. CorpusId:215416146
    • DOI:<doi> - a Digital Object Identifier, e.g. DOI:10.18653/v1/N18-3011
    • ARXIV:<id> - arXiv.rg, e.g. ARXIV:2106.15928
    • MAG:<id> - Microsoft Academic Graph, e.g. MAG:112218234
    • ACL:<id> - Association for Computational Linguistics, e.g. ACL:W12-3903
    • PMID:<id> - PubMed/Medline, e.g. PMID:19872477
    • PMCID:<id> - PubMed Central, e.g. PMCID:2323736
    • URL:<url> - URL from one of the sites listed below, e.g. URL: https://arxiv.org/abs/2106.15928v1
  • fields: String of comma-separated fields to include in the response. E.g "url,year,authors". Default is "title". Available fields are: abstract, authors, citations, fieldsOfStudy, isOpenAccess, journal, publicationDate, references, tldr, url, venue, year.
  • limit: The number of papers to return. Default is 100.
  • publication_date_range: Restricts results to the given range of publication dates or years (inclusive). Accepts the format <startDate>:<endDate> with each date in YYYY-MM-DD format. Each term is optional, allowing for specific dates, fixed ranges, or open-ended ranges. In addition, prefixes are supported as a shorthand, e.g. 2020-06 matches all dates in June 2020. Specific dates are not known for all papers, so some records returned with this filter will have a null value for publicationDate. year, however, will always be present. For records where a specific publication date is not known, they will be treated as if published on January 1st of their publication year.
    • Examples:
      • 2019-03-05 on March 5th, 2019
      • 2019-03 during March 2019
      • 2019 during 2019
      • 2016-03-05:2020-06-06 as early as March 5th, 2016 or as late as June 6th, 2020
      • 1981-08-25: on or after August 25th, 1981
      • :2015-01 before or on January 31st, 2015
      • 2015:2020 between January 1st, 2015 and December 31st, 2020

Returns:

  • The paper object.

search_authors_by_name

Search for authors by name.

search_authors_by_name(name: string [required], fields: string [optional], limit: integer [optional])

Args:

  • name: The name to search for.
  • fields: String of comma-separated fields to include in the response. E.g "name,url,papers". The "authorId" field is always returned. Default is "name". Other available fields are:
    • externalIds: An object that contains the ORCID/DBLP IDs for the author, if known
    • url: URL of the author on the Semantic Scholar website
    • affiliations: Array of organizational affiliations for the author
    • homepage: The author's homepage
    • paperCount: The author's total publications count
    • citationCount: The author's total citations count
    • hIndex: The author's h-index
    • papers: Array of paper objects
  • limit: The number of authors to return. Default is 100.

Returns:

  • The author object.

get_author_papers

Get papers written by this author.

get_author_papers(author_id: string [required], paper_fields: string [optional], limit: integer [optional], publication_date_range: string [optional])

Args:

  • author_id: The id of the author to get papers for.
  • paper_fields: String of comma-separated fields to include in the response. E.g "url,year,authors". Default is "title". Available fields are: abstract, authors, citations, fieldsOfStudy, isOpenAccess, journal, publicationDate, references, tldr, url, venue, year.
  • limit: The number of papers to return. Default is 1000.
  • publication_date_range: Restricts results to the given range of publication dates or years (inclusive). Accepts the format <startDate>:<endDate> with each date in YYYY-MM-DD format. Each term is optional, allowing for specific dates, fixed ranges, or open-ended ranges. In addition, prefixes are supported as a shorthand, e.g. 2020-06 matches all dates in June 2020. Specific dates are not known for all papers, so some records returned with this filter will have a null value for publicationDate. year, however, will always be present. For records where a specific publication date is not known, they will be treated as if published on January 1st of their publication year.
    • Examples:
      • 2019-03-05 on March 5th, 2019
      • 2019-03 during March 2019
      • 2019 during 2019
      • 2016-03-05:2020-06-06 as early as March 5th, 2016 or as late as June 6th, 2020
      • 1981-08-25: on or after August 25th, 1981
      • :2015-01 before or on January 31st, 2015
      • 2015:2020 between January 1st, 2015 and December 31st, 2020

Returns:

  • The paper object.

search_papers_by_relevance

Search for papers by keyword relevance.

search_papers_by_relevance(keyword: string [required], fields: string [optional], limit: integer [optional], publication_date_range: string [optional], venues: string [optional])

Args:

  • keyword: The keyword to search for.
  • fields: String of comma-separated fields to include in the response. E.g "url,year,authors". Default is "title". Available fields are: abstract, authors, citations, fieldsOfStudy, isOpenAccess, journal, publicationDate, references, tldr, url, venue, year.
  • limit: The number of papers to return. Default is 50.
  • publication_date_range: Restricts results to the given range of publication dates or years (inclusive). Accepts the format <startDate>:<endDate> with each date in YYYY-MM-DD format. Each term is optional, allowing for specific dates, fixed ranges, or open-ended ranges. In addition, prefixes are supported as a shorthand, e.g. 2020-06 matches all dates in June 2020. Specific dates are not known for all papers, so some records returned with this filter will have a null value for publicationDate. year, however, will always be present. For records where a specific publication date is not known, they will be treated as if published on January 1st of their publication year.
    • Examples:
      • 2019-03-05 on March 5th, 2019
      • 2019-03 during March 2019
      • 2019 during 2019
      • 2016-03-05:2020-06-06 as early as March 5th, 2016 or as late as June 6th, 2020
      • 1981-08-25: on or after August 25th, 1981
      • :2015-01 before or on January 31st, 2015
      • 2015:2020 between January 1st, 2015 and December 31st, 2020
  • venues: Restricts results to papers published in the given venues, formatted as a string of comma-separated values. E.g. "Nature,N. Engl. J. Med." Default is no venue restriction, represented by an empty string.

Returns:

  • The paper object.

search_paper_by_title

Search for papers by title.

search_paper_by_title(title: string [required], fields: string [optional], publication_date_range: string [optional], venues: string [optional])

Args:

  • title: The title to search for.
  • fields: String of comma-separated fields to include in the response. E.g "url,year,authors". Default is "title". Available fields are: abstract, authors, citations, fieldsOfStudy, isOpenAccess, journal, publicationDate, references, tldr, url, venue, year.
  • publication_date_range: Restricts results to the given range of publication dates or years (inclusive). Accepts the format <startDate>:<endDate> with each date in YYYY-MM-DD format. Each term is optional, allowing for specific dates, fixed ranges, or open-ended ranges. In addition, prefixes are supported as a shorthand, e.g. 2020-06 matches all dates in June 2020. Specific dates are not known for all papers, so some records returned with this filter will have a null value for publicationDate. year, however, will always be present. For records where a specific publication date is not known, they will be treated as if published on January 1st of their publication year. * Examples: * 2019-03-05 on March 5th, 2019 * 2019-03 during March 2019 * 2019 during 2019 * 2016-03-05:2020-06-06 as early as March 5th, 2016 or as late as June 6th, 2020 * 1981-08-25: on or after August 25th, 1981 * :2015-01 before or on January 31st, 2015 * 2015:2020 between January 1st, 2015 and December 31st, 2020
  • venues: Restricts results to papers published in the given venues, formatted as a string of comma-separated values. E.g. "Nature,N. Engl. J. Med." Default is no venue restriction, represented by an empty string.

Returns:

  • The paper object.

snippet_search

Search for text snippets that most closely match the query.

Text snippets are excerpts of approximately 500 words, drawn from a paper's title, abstract, and body text, but excluding figure captions and the bibliography. It will return the highest ranked snippet first, as well as some basic data about the paper it was found in.

snippet_search(query: string [required], limit: integer [optional], venues: string [optional], paper_ids: string [optional], inserted_before: string [optional])

Args:

  • query: The query to search for.
  • limit: The number of snippets to return. Default is 250.
  • venues: Restricts results to papers published in the given venues, formatted as a string of comma-separated values. E.g. "Nature,N. Engl. J. Med." Default is no venue restriction, represented by an empty string.
  • paper_ids: Restricts results to snippets from specific papers. To specify papers, provide a comma-separated list of their IDs. You can provide up to 100 IDs. The following types of IDs are supported:
    • <sha> - a Semantic Scholar ID, e.g. 649def34f8be52c8b66281af98ae884c09aef38b
    • CorpusId:<id> - a Semantic Scholar numerical ID, e.g. CorpusId:215416146
    • DOI:<doi> - a Digital Object Identifier, e.g. DOI:10.18653/v1/N18-3011
    • ARXIV:<id> - arXiv.rg, e.g. ARXIV:2106.15928
    • MAG:<id> - Microsoft Academic Graph, e.g. MAG:112218234
    • ACL:<id> - Association for Computational Linguistics, e.g. ACL:W12-3903
    • PMID:<id> - PubMed/Medline, e.g. PMID:19872477
    • PMCID:<id> - PubMed Central, e.g. PMCID:2323736
    • URL:<url> - URL from one of the sites listed below, e.g. URL: https://arxiv.org/abs/2106.15928v1 URLs are recognized from the following sites: semanticscholar.org, arxiv.org, aclweb.org, acm.org, biorxiv.org
  • inserted_before: Restricts results to snippets from papers inserted before the provided date (excludes things inserted on the provided date). Acceptable formats: YYYY-MM-DD, YYYY-MM, YYYY

Returns:

  • The snippet search results.