Skip to main content
Glama
acchuang

Jina AI Remote MCP Server

by acchuang

search_arxiv

Search and retrieve academic papers and preprints from arXiv to find research, technical studies, or publications by authors and topics in AI, physics, math, and computer science.

Instructions

Search academic papers and preprints on arXiv repository. Perfect for finding research papers, scientific studies, technical papers, and academic literature. Use this when researching scientific topics, looking for papers by specific authors, or finding the latest research in fields like AI, physics, mathematics, computer science, etc.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
numNoMaximum number of academic papers to return, between 1-100 (default: 30)
queryYesAcademic search terms, author names, or research topics (e.g., 'transformer neural networks', 'Einstein relativity', 'machine learning optimization')
tbsNoTime-based search parameter, e.g., 'qdr:h' for past hour, can be qdr:h, qdr:d, qdr:w, qdr:m, qdr:y

Implementation Reference

  • The handler function for the 'search_arxiv' tool. It checks for a bearer token, makes a POST request to Jina's search API (svip.jina.ai) with the query and domain='arxiv', handles errors, and returns the search results as YAML-formatted text.
    async ({ query, num = 30 }: { query: string; num?: number }) => { try { const props = getProps(); const tokenError = checkBearerToken(props.bearerToken); if (tokenError) { return tokenError; } const response = await fetch('https://svip.jina.ai/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': `Bearer ${props.bearerToken}`, }, body: JSON.stringify({ q: query, domain: 'arxiv', num }), }); if (!response.ok) { return handleApiError(response, "arXiv search"); } const data = await response.json() as any; return { content: [ { type: "text" as const, text: yamlStringify(data.results), }, ], }; } catch (error) { return { content: [ { type: "text" as const, text: `Error: ${error instanceof Error ? error.message : String(error)}`, }, ], isError: true, }; }
  • Zod schema defining the input parameters for the 'search_arxiv' tool: 'query' (required string) and 'num' (optional number for result count).
    { query: z.string().describe("Academic search terms, author names, or research topics (e.g., 'transformer neural networks', 'Einstein relativity', 'machine learning optimization')"), num: z.number().optional().describe("Maximum number of academic papers to return, between 1-100 (default: 30)") },
  • The server.tool call that registers the 'search_arxiv' MCP tool, specifying its name, description, input schema, and handler function.
    server.tool( "search_arxiv", "Search academic papers and preprints on arXiv repository. Perfect for finding research papers, scientific studies, technical papers, and academic literature. Use this when researching scientific topics, looking for papers by specific authors, or finding the latest research in fields like AI, physics, mathematics, computer science, etc. Returns academic papers with URLs, titles, abstracts, and metadata.", { query: z.string().describe("Academic search terms, author names, or research topics (e.g., 'transformer neural networks', 'Einstein relativity', 'machine learning optimization')"), num: z.number().optional().describe("Maximum number of academic papers to return, between 1-100 (default: 30)") }, async ({ query, num = 30 }: { query: string; num?: number }) => { try { const props = getProps(); const tokenError = checkBearerToken(props.bearerToken); if (tokenError) { return tokenError; } const response = await fetch('https://svip.jina.ai/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': `Bearer ${props.bearerToken}`, }, body: JSON.stringify({ q: query, domain: 'arxiv', num }), }); if (!response.ok) { return handleApiError(response, "arXiv search"); } const data = await response.json() as any; return { content: [ { type: "text" as const, text: yamlStringify(data.results), }, ], }; } catch (error) { return { content: [ { type: "text" as const, text: `Error: ${error instanceof Error ? error.message : String(error)}`, }, ], isError: true, }; } }, );
  • src/index.ts:21-21 (registration)
    High-level registration call to registerJinaTools on the MCP server, which includes the 'search_arxiv' tool among others.
    registerJinaTools(this.server, () => this.props);

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/acchuang/jina-mcp'

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