Skip to main content
Glama
flyanima

Open Search MCP

by flyanima

semantic_scholar_paper_details

Retrieve detailed academic paper information from Semantic Scholar using paper IDs or DOIs to support research and analysis.

Instructions

Get detailed information about a specific paper from Semantic Scholar

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paperIdYesSemantic Scholar paper ID or DOI

Implementation Reference

  • The execute handler for the semantic_scholar_paper_details tool. Fetches detailed paper information using SemanticScholarAPIClient.getPaperDetails(paperId), formats the response including metadata, authors, limited references and citations, and handles errors.
    execute: async (args: any) => {
      const { paperId } = args;
    
      try {
        const paper = await client.getPaperDetails(paperId);
        
        const paperDetails = {
          paperId: paper.paperId,
          title: paper.title,
          abstract: paper.abstract || 'No abstract available',
          authors: (paper.authors || []).map((author: any) => ({
            name: author.name,
            authorId: author.authorId
          })),
          venue: paper.venue || 'Unknown venue',
          year: paper.year,
          citationCount: paper.citationCount || 0,
          url: paper.url || `https://www.semanticscholar.org/paper/${paper.paperId}`,
          publicationDate: paper.publicationDate,
          references: (paper.references || []).slice(0, 10).map((ref: any) => ({
            title: ref.title,
            paperId: ref.paperId
          })),
          citations: (paper.citations || []).slice(0, 10).map((cite: any) => ({
            title: cite.title,
            paperId: cite.paperId
          })),
          source: 'Semantic Scholar'
        };
    
        return {
          success: true,
          data: {
            source: 'Semantic Scholar',
            paper: paperDetails,
            timestamp: Date.now()
          }
        };
      } catch (error) {
        return {
          success: false,
          error: error instanceof Error ? error.message : 'Failed to get paper details from Semantic Scholar'
        };
      }
    }
  • Input schema for the tool, requiring a 'paperId' string (Semantic Scholar paper ID or DOI).
    inputSchema: {
      type: 'object',
      properties: {
        paperId: {
          type: 'string',
          description: 'Semantic Scholar paper ID or DOI'
        }
      },
      required: ['paperId']
    },
  • Registration of the semantic_scholar_paper_details tool in the ToolRegistry, including name, description, category, and source.
    registry.registerTool({
      name: 'semantic_scholar_paper_details',
      description: 'Get detailed information about a specific paper from Semantic Scholar',
      category: 'academic',
      source: 'Semantic Scholar',
  • Helper method in SemanticScholarAPIClient class that performs the API request to retrieve detailed paper information, specifying required fields.
      async getPaperDetails(paperId: string) {
        const fields = 'paperId,title,abstract,authors,venue,year,citationCount,url,publicationDate,references,citations';
        return await this.makeRequest(`/paper/${paperId}`, { fields });
      }
    }
  • src/index.ts:232-232 (registration)
    Top-level registration call in OpenSearchMCPServer.registerAllTools() that invokes registerSemanticScholarTools, which registers semantic_scholar_paper_details among others.
    registerSemanticScholarTools(this.toolRegistry);    // 1 tool: search_semantic_scholar
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] detailed information,' implying a read-only operation, but does not specify what 'detailed information' includes (e.g., abstract, citations, authors), potential rate limits, authentication needs, error handling, or response format. This leaves significant gaps in understanding the tool's behavior beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly. There is no wasted language, earning a high score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves detailed information. It does not explain what 'detailed information' entails, how results are structured, or any behavioral traits like error cases or limitations. For a read operation with no structured output documentation, the description should provide more context to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'paperId' parameter documented as 'Semantic Scholar paper ID or DOI.' The description does not add any additional meaning beyond this, such as examples or format details. With high schema coverage, the baseline score of 3 is appropriate, as the schema adequately covers parameter semantics without extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'detailed information about a specific paper from Semantic Scholar', making the purpose understandable. However, it does not explicitly differentiate this tool from sibling tools like 'search_semantic_scholar' or 'semantic_scholar_author_search', which might cause confusion about when to use this versus those search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a paper ID), exclusions, or compare it to sibling tools like 'search_semantic_scholar' for finding papers or 'pubmed_article_details' for similar functionality in other databases, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

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/flyanima/open-search-mcp'

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