Skip to main content
Glama
reetp14
by reetp14

search_institutions

Find academic and research institutions using OpenAlex's comprehensive database. Search by name, filter by country, type, or other attributes to identify relevant organizations.

Instructions

Search institutions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
searchNoFull-text search query
filterNoKey:value OpenAlex filters. Supports entity attributes (e.g., 'ror', 'country_code', 'type'), IDs, and convenience filters (e.g., 'display_name.search'). Example: 'country_code:US,type:education'
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 handler function that executes the core logic of the 'search_institutions' tool by calling the OpenAlex API for institutions.
    export async function searchInstitutions(args: any) { return { content: [{ type: "text", text: JSON.stringify(await makeOpenAlexRequest("/institutions", args), null, 2) }] }; }
  • The schema definition including input schema, description, and name for the 'search_institutions' tool, provided in the listTools handler.
    name: "search_institutions", description: "Search institutions", 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., 'ror', 'country_code', 'type'), IDs, and convenience filters (e.g., 'display_name.search'). Example: 'country_code:US,type:education'" }, 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:287-288 (registration)
    The registration in the CallToolRequestHandler switch statement that dispatches to the searchInstitutions handler.
    case "search_institutions": return await searchInstitutions(args);
  • src/index.ts:25-25 (registration)
    The import statement registering the searchInstitutions handler function.
    import { searchInstitutions } from "./tools/searchInstitutions.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