Skip to main content
Glama

Search Papers

search_papers
Read-onlyIdempotent

Search machine-learning / AI research papers (via Hugging Face Papers, the successor to Papers with Code). Returns arXiv id, title, authors, community upvotes, and a linked GitHub repo when available. Use for "papers on ", "recent ML research about X".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax papers to return (1-50, default 10).
queryYesSearch terms (e.g. "mamba", "diffusion transformer", "RLHF").

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query used
totalYesTotal number of papers matching the query
papersYesArray of formatted paper objects
returnedYesNumber of papers returned in this response

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Number of results to return (default: 10, max: 50)"New value: +"Max papers to return (1-50, default 10)."
    • changedInput schema / properties / query / description
      Previous value: -"Search query (e.g., \"attention transformer\")"New value: +"Search terms (e.g. \"mamba\", \"diffusion transformer\", \"RLHF\")."
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "attention transformer"
      +  },
      +  {
      +    "limit": 20,
      +    "query": "vision language model"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "papers": {
      +      "description": "Array of formatted paper objects",
      +      "items": {
      +        "properties": {
      +          "abstract": {
      +            "description": "Paper abstract",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "arxiv_id": {
      +            "description": "ArXiv ID of the paper",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "authors": {
      +            "description": "List of paper authors",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "conference": {
      +            "description": "Conference name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Papers With Code paper ID",
      +            "type": "string"
      +          },
      +          "proceeding": {
      +            "description": "Proceeding identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "published": {
      +            "description": "Publication date",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Paper title",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url_abs": {
      +            "description": "URL to paper abstract",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url_pdf": {
      +            "description": "URL to paper PDF",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "arxiv_id",
      +          "title",
      +          "abstract",
      +          "authors",
      +          "published",
      +          "conference",
      +          "proceeding",
      +          "url_abs",
      +          "url_pdf"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "description": "The search query used",
      +      "type": "string"
      +    },
      +    "returned": {
      +      "description": "Number of papers returned in this response",
      +      "type": "number"
      +    },
      +    "total": {
      +      "description": "Total number of papers matching the query",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "query",
      +    "total",
      +    "returned",
      +    "papers"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • removedInput schema / examples
      Removed value: -[
      -  {
      -    "_apiKey": "your-core-research-api-key",
      -    "query": "machine learning healthcare"
      -  },
      -  {
      -    "_apiKey": "your-core-research-api-key",
      -    "limit": 25,
      -    "query": "CRISPR gene editing"
      -  }
      -]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "results": {
      -      "description": "Array of matching papers",
      -      "items": {
      -        "properties": {
      -          "abstract": {
      -            "description": "Paper abstract (truncated to 500 chars)",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "authors": {
      -            "description": "List of author names",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "doi": {
      -            "description": "Digital Object Identifier",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "download_url": {
      -            "description": "URL to download full paper",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "id": {
      -            "description": "CORE paper ID",
      -            "type": "string"
      -          },
      -          "publisher": {
      -            "description": "Publisher name",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "title": {
      -            "description": "Paper title",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "year": {
      -            "description": "Year of publication",
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "authors"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "total_hits": {
      -      "description": "Total number of matching papers in CORE",
      -      "type": "number"
      -    }
      -  },
      -  "required": [
      -    "total_hits",
      -    "results"
      -  ],
      -  "type": "object"
      -}New value: +null
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "results": {
      +      "description": "Array of matching papers",
      +      "items": {
      +        "properties": {
      +          "abstract": {
      +            "description": "Paper abstract (truncated to 500 chars)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "authors": {
      +            "description": "List of author names",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "doi": {
      +            "description": "Digital Object Identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "download_url": {
      +            "description": "URL to download full paper",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "CORE paper ID",
      +            "type": "string"
      +          },
      +          "publisher": {
      +            "description": "Publisher name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Paper title",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "year": {
      +            "description": "Year of publication",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "authors"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total_hits": {
      +      "description": "Total number of matching papers in CORE",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total_hits",
      +    "results"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "_apiKey": "your-core-research-api-key",
      +    "query": "machine learning healthcare"
      +  },
      +  {
      +    "_apiKey": "your-core-research-api-key",
      +    "limit": 25,
      +    "query": "CRISPR gene editing"
      +  }
      +]
  6. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context by specifying the source (Hugging Face Papers) and the exact fields returned. No contradictions with annotations.

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 two sentences, front-loaded with the main purpose and return value, with no redundant information.

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

Completeness5/5

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

Given the tool's moderate complexity (2 parameters) and the presence of an output schema, the description sufficiently explains what the tool does, what it returns, and appropriate use cases. No missing critical context.

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?

Schema coverage is 100%, so baseline is 3. The description does not add parameter details beyond the schema, which already describes query and limit. The description provides usage examples but not parameter semantics.

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

Purpose5/5

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

The description clearly specifies the tool searches ML/AI research papers via Hugging Face Papers, lists the returned fields (arXiv id, title, authors, upvotes, GitHub repo), and explicitly states use cases like 'papers on <topic>', differentiating it from sibling tools such as get_paper or trending_papers.

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

Usage Guidelines4/5

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

The description provides clear use cases ('Use for papers on <topic>, recent ML research about X'), offering good context for when to apply the tool. However, it does not explicitly state when not to use it or mention alternative sibling tools like deep_research or get_paper.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation2/5

ask_pipeworx and ask_pipeworx_beta are currently identical in behavior, creating direct overlap. Additionally, the five query/research tools (ask_pipeworx, ask_pipeworx_grounded, deep_research, validate_claim, bet_research) and six Polymarket tools have heavily overlapping boundaries that require reading long descriptions to disambiguate.

Naming Consistency3/5

Names are uniformly snake_case and mostly readable, with consistent domain prefixes (polymarket_*, pipeworx_*) and a verb_noun majority (get_paper, search_papers, resolve_entity). However, bare-verb memory tools (remember, recall, forget) and adjective-noun names (recent_alerts, trending_papers, deep_research) break the dominant convention, making the set mixed though not chaotic.

Tool Count2/5

At 35 tools, this exceeds the 25+ threshold for 'too many,' and several are near-duplicates or overlapping query modes (ask_pipeworx vs ask_pipeworx_beta vs ask_pipeworx_grounded). The server bundles paper search, a universal data router, prediction-market analytics, memory, subscriptions, dependency scanning, and AI visibility into one surface, which feels over-scoped.

Completeness4/5

The surface is quite thorough for its broad domain: querying has grounded/deep/meta variants, companies have profile/compare/change/claim tools, prediction markets have research/edges/arbitrage/fill-risk/spread tracking, and subscriptions/memory have full lifecycles. Minor gaps exist (no full pack catalog listing, no direct fetch-by-URI tool, no paper leaderboards), but agents can work around them via discover_tools/ask_pipeworx.