Skip to main content
Glama

find_research_gaps

Analyze academic papers to identify research gaps and unanswered questions in a specific topic, helping researchers discover future study directions.

Instructions

Analyze multiple papers on a topic to identify research gaps and unanswered questions.

Args: query: Research topic to analyze num_papers: Number of papers to analyze (default: 5, max: 10)

Returns: Analysis of research gaps, limitations, and future research directions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
num_papersNo

Implementation Reference

  • Main execution logic for the find_research_gaps tool: searches papers using PaperFetcher, fetches abstracts, and formats comprehensive instructions for LLM-based gap analysis.
    @mcp.tool() def find_research_gaps(query: str, num_papers: int = 5) -> str: """ Analyze multiple papers on a topic to identify research gaps and unanswered questions. Args: query: Research topic to analyze num_papers: Number of papers to analyze (default: 5, max: 10) Returns: Analysis of research gaps, limitations, and future research directions """ if num_papers > 10: num_papers = 10 papers = fetcher.search_papers(query=query, max_results=num_papers, sort_by="cited_by_count") if papers and "error" in papers[0]: return papers[0]["error"] if not papers: return f"No papers found for query: {query}" result = f"**Research Gap Analysis for: '{query}'**\n" result += f"**Analyzing {len(papers)} highly-cited papers**\n\n" result += "**Papers Analyzed:**\n" paper_ids = [] for i, paper in enumerate(papers, 1): result += f"{i}. {paper['title']} ({paper['publication_year']}) - {paper['cited_by_count']} citations\n" paper_ids.append(paper['id']) result += "\n**Fetching abstracts for deep analysis...**\n\n" abstracts_data = [] for i, paper_id in enumerate(paper_ids, 1): paper_detail = fetcher.fetch_paper_by_id(paper_id) if "error" not in paper_detail: abstract_text = fetcher.get_paper_abstract(paper_detail) abstracts_data.append(f"**Paper {i}:** {paper_detail['title']}\n{abstract_text}\n") result += "".join(abstracts_data) result += "\n**Gap Analysis Instructions:**\n" result += "Based on the abstracts above, please identify:\n\n" result += "1. **Unanswered Research Questions:**\n" result += " - What questions do these papers raise but not answer?\n" result += " - What do the authors suggest for future research?\n\n" result += "2. **Methodological Limitations:**\n" result += " - What limitations do the authors acknowledge?\n" result += " - What methods or approaches are missing?\n\n" result += "3. **Understudied Areas:**\n" result += " - What aspects of the topic receive less attention?\n" result += " - What populations, contexts, or scenarios are not covered?\n\n" result += "4. **Contradictions & Inconsistencies:**\n" result += " - Where do findings conflict?\n" result += " - What requires further investigation to resolve?\n\n" result += "5. **Emerging Opportunities:**\n" result += " - What new research directions are suggested?\n" result += " - What interdisciplinary connections could be made?\n" return result
  • Type hints and docstring defining input parameters (query: str, num_papers: int=5) and output (str) for the tool.
    def find_research_gaps(query: str, num_papers: int = 5) -> str: """ Analyze multiple papers on a topic to identify research gaps and unanswered questions. Args: query: Research topic to analyze num_papers: Number of papers to analyze (default: 5, max: 10) Returns: Analysis of research gaps, limitations, and future research directions """
  • src/server.py:209-209 (registration)
    Decorator that registers the find_research_gaps function as an MCP tool.
    @mcp.tool()

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/DaniManas/ResearchMCP'

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