{
 "voice": "One card of the book.",
 "agent": {
  "slug": "openalex-mcp-demo",
  "name": "OpenAlex MCP Demo",
  "specialty": "data",
  "description": "Search scholarly works through the openalex database.. Hugging Face Space by Geraldine, callable as an MCP server.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-02T01:11:07.406Z",
  "card": "/agent/openalex-mcp-demo",
  "url": "https://allagents.app/agent/openalex-mcp-demo",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://geraldine-openalex-mcp.hf.space/gradio_api/mcp/",
   "site": "https://huggingface.co/spaces/Geraldine/openalex-mcp"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [
   "huggingface",
   "mcp"
  ],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://huggingface.co/spaces/Geraldine/openalex-mcp",
   "hire": null
  },
  "bubble": "closed",
  "score": 13,
  "score_label": "Getting started",
  "mcp_tools": {
   "seen": "2026-11-02",
   "total": 9,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "openalex_mcp_search_works",
     "description": "Search OpenAlex for academic works by keyword query. Query syntax: \"phrase in quotes\", \"near each other\"~5, fuzzy~2, AND/OR/NOT in uppercase. Wildcards (* and…"
    },
    {
     "name": "openalex_mcp_search_semantic",
     "description": "Search OpenAlex by meaning rather than by keyword. Ranks works by semantic proximity to a descriptive text, so a paper matches even when it shares none of the…"
    },
    {
     "name": "openalex_mcp_lookup_by_doi",
     "description": "Resolve one or more DOIs to full OpenAlex work records. Free — single-entity lookups are not billed. Use this when the DOI is already known: it is exact…"
    },
    {
     "name": "openalex_mcp_get_citing_works",
     "description": "Fetch the works that cite a given OpenAlex work, most-cited first. Forward citation lookup: who built on this paper. Resolve a DOI with lookup_by_doi first if…"
    },
    {
     "name": "openalex_mcp_classify_text",
     "description": "Place a text in the OpenAlex topic hierarchy. OpenAlex retired its /text endpoint. This tool rebuilds the capability: one semantic search finds the nearest…"
    },
    {
     "name": "openalex_mcp_resolve_entity",
     "description": "Resolve a name to an OpenAlex entity — id, external id, and filter key. Free and fast. Backed by /autocomplete, which returns a filter_key alongside each…"
    },
    {
     "name": "openalex_mcp_browse_topics",
     "description": "Explore the OpenAlex \"aboutness\" hierarchy. Four levels: 4 domains, 26 fields, 252 subfields, 4516 topics. Each record carries the short id, its parent…"
    },
    {
     "name": "openalex_mcp_group_by",
     "description": "Count along a dimension without retrieving any record. Answers \"how many\", \"which are the top\" and \"how has it evolved\" in one call, at the price of a single…"
    },
    {
     "name": "openalex_mcp_translate_query",
     "description": "Translate a query between OQL, OQO and a REST URL, and validate it. Three forms of the same query: OQL (readable text, \"works where institution is Sorbonne…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://geraldine-openalex-mcp.hf.space/gradio_api/mcp/",
   "answers": true,
   "checked": "2026-11-02T06:05:33.131Z",
   "http": 200,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-02T06:49:30.368Z",
     "since": "2026-11-02T06:49:30.368Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-02T06:49:30.368Z",
    "since": "2026-11-02T06:49:30.368Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 200,
   "checked": "2026-11-02T06:05:33.131Z",
   "last_answer_at": "2026-11-02T06:05:33.131Z",
   "last_ms": 389,
   "checked_at": "2026-11-02T06:05:33.131Z"
  }
 }
}