Skip to main content
Glama
reetp14
by reetp14

search_funders

Find funding organizations in scholarly research using OpenAlex's database. Filter by country, grant count, and other attributes to identify potential funders for academic projects.

Instructions

Search funders

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
searchNoFull-text search query
filterNoKey:value OpenAlex filters. Supports entity attributes (e.g., 'country_code', 'grants_count'), IDs, and convenience filters (e.g., 'display_name.search'). Example: 'country_code:DE,grants_count:>10'
sortNoSort field with optional :desc
pageNoPage number
per_pageNoResults per page (max 200)
cursorNoCursor for deep pagination
group_byNoGroup results by field
selectNoFields to return
sampleNoRandom sample size
seedNoRandom seed
mailtoNoEmail for rate limits
api_keyNoPremium API key

Implementation Reference

  • The main handler function that executes the tool's core logic: calls makeOpenAlexRequest on the /funders endpoint with provided args and formats the JSON response as MCP content.
    export async function searchFunders(args: any) { return { content: [{ type: "text", text: JSON.stringify(await makeOpenAlexRequest("/funders", args), null, 2) }] }; }
  • The tool schema definition provided in the ListTools response, specifying the inputSchema for search_funders with parameters like search, filter, pagination options, etc.
    { name: "search_funders", description: "Search funders", inputSchema: { type: "object", properties: { search: { type: "string", description: "Full-text search query" }, filter: { type: "string", description: "Key:value OpenAlex filters. Supports entity attributes (e.g., 'country_code', 'grants_count'), IDs, and convenience filters (e.g., 'display_name.search'). Example: 'country_code:DE,grants_count:>10'" }, sort: { type: "string", description: "Sort field with optional :desc" }, page: { type: "number", description: "Page number" }, per_page: { type: "number", description: "Results per page (max 200)" }, cursor: { type: "string", description: "Cursor for deep pagination" }, group_by: { type: "string", description: "Group results by field" }, select: { type: "string", description: "Fields to return" }, sample: { type: "number", description: "Random sample size" }, seed: { type: "number", description: "Random seed" }, mailto: { type: "string", description: "Email for rate limits" }, api_key: { type: "string", description: "Premium API key" } } } },
  • src/index.ts:293-294 (registration)
    The dispatch logic in the CallToolRequest handler that maps the 'search_funders' tool name to the execution of the searchFunders handler function.
    case "search_funders": return await searchFunders(args);
  • src/index.ts:28-28 (registration)
    The import statement that brings the searchFunders handler into the main index file for use in tool registration and dispatch.
    import { searchFunders } from "./tools/searchFunders.js";

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/reetp14/openalex-mcp'

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