semantic_scholar_search
Search academic papers on Semantic Scholar to find research by topic, author, or keyword, returning titles, abstracts, citations, and PDF links.
Instructions
Search academic papers on Semantic Scholar. Find research papers by topic, author, or keyword. Returns titles, abstracts, citation counts, and PDF links.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for academic papers | |
| limit | No | Number of results (default 10, max 100) | |
| year | No | Publication year filter (e.g., '2024', '2023-2025') | |
| fields_of_study | No | Field filter (e.g., ['Computer Science', 'Medicine']) | |
| open_access_only | No | Only return open access papers |
Implementation Reference
- src/index.ts:16-39 (handler)Generic MCP tool handler registration that executes the tool logic via `gatewayRequest`.
server.tool( tool.name, tool.description, tool.inputSchema.shape, async (params) => { const method = tool.method || "POST"; const result = await gatewayRequest(method, tool.endpoint, params as Record<string, unknown>); if (result.error) { return { content: [{ type: "text" as const, text: `Error (${result.status}): ${result.error}` }], isError: true, }; } const text = typeof result.data === "string" ? result.data : JSON.stringify(result.data, null, 2); return { content: [{ type: "text" as const, text }], }; }, ); - src/tools/semantic-scholar.ts:8-15 (schema)Input schema definition for the `semantic_scholar_search` tool.
inputSchema: z.object({ query: z.string().describe("Search query for academic papers"), limit: z.number().optional().describe("Number of results (default 10, max 100)"), year: z.string().optional().describe("Publication year filter (e.g., '2024', '2023-2025')"), fields_of_study: z.array(z.string()).optional() .describe("Field filter (e.g., ['Computer Science', 'Medicine'])"), open_access_only: z.boolean().optional().describe("Only return open access papers"), }), - src/tools/semantic-scholar.ts:4-18 (registration)Registration of the `semantic_scholar_search` tool definition.
export const semanticScholarTools: ToolDef[] = [ { name: "semantic_scholar_search", description: "Search academic papers on Semantic Scholar. Find research papers by topic, author, or keyword. Returns titles, abstracts, citation counts, and PDF links.", inputSchema: z.object({ query: z.string().describe("Search query for academic papers"), limit: z.number().optional().describe("Number of results (default 10, max 100)"), year: z.string().optional().describe("Publication year filter (e.g., '2024', '2023-2025')"), fields_of_study: z.array(z.string()).optional() .describe("Field filter (e.g., ['Computer Science', 'Medicine'])"), open_access_only: z.boolean().optional().describe("Only return open access papers"), }), endpoint: "/v1/semantic-scholar/search", }, ];