Skip to main content
Glama
DaniManas
by DaniManas

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