Skip to main content
Glama
adityak74

MCP Scholarly Server

by adityak74

search-google-scholar

Search academic articles on Google Scholar using keywords to find relevant research papers and scholarly publications.

Instructions

Search google scholar for articles related to the given keyword.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keywordYes

Implementation Reference

  • Core handler function that performs the Google Scholar publication search using the scholarly library and delegates parsing to _parse_results.
    def search_pubs(self, keyword) -> List[str]: search_results = self.scholarly.search_pubs(keyword) articles = self._parse_results(search_results) return articles
  • Static helper method that parses raw search results into formatted strings for up to 10 articles, extracting title, abstract, and publication URL.
    @staticmethod def _parse_results(search_results): articles = [] results_iter = 0 for searched_article in search_results: bib = searched_article.get('bib', {}) title = bib.get('title', 'No title') abstract = bib.get('abstract', 'No abstract available') pub_url = searched_article.get('pub_url', 'No URL available') article_string = f"Title: {title}\nAbstract: {abstract}\nURL: {pub_url}" articles.append(article_string) results_iter += 1 if results_iter >= MAX_RESULTS: break return articles
  • Registration of the tool in the @server.list_tools() handler, including name, description, and input schema definition.
    types.Tool( name="search-google-scholar", description="Search google scholar for articles related to the given keyword.", inputSchema={ "type": "object", "properties": { "keyword": {"type": "string"}, }, "required": ["keyword"], }, )
  • Dispatch logic in the @server.call_tool() handler that instantiates the GoogleScholar class and calls its search_pubs method.
    elif name == "search-google-scholar": google_scholar = GoogleScholar() formatted_results = google_scholar.search_pubs(keyword=keyword)
  • JSON schema defining the tool's input: an object with a required 'keyword' string property.
    inputSchema={ "type": "object", "properties": { "keyword": {"type": "string"}, }, "required": ["keyword"], },

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adityak74/mcp-scholarly'

If you have feedback or need assistance with the MCP directory API, please join our Discord server