search_works

Pack: openalex · Endpoint: https://gateway.pipeworx.io/openalex/mcp

Search scholarly articles by title, authors, or keywords. Returns title, authors, journal, publication year, citation count, and abstract.

Parameters

NameTypeRequiredDescription
querystringyesSearch query (e.g., “transformer neural networks”)
limitnumbernoNumber of results to return (1-25, default 10)

Example call

Arguments

{
  "query": "transformer neural networks"
}

curl

curl -X POST https://gateway.pipeworx.io/openalex/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_works","arguments":{"query":"transformer neural networks"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_works', {
  "query": "transformer neural networks"
});

More examples

{
  "query": "CRISPR gene editing",
  "limit": 20
}

Response shape

Always returns: total, results

FieldTypeDescription
totalnumberTotal number of works matching the query
resultsarray
Full JSON Schema
{
  "type": "object",
  "properties": {
    "total": {
      "type": "number",
      "description": "Total number of works matching the query"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "OpenAlex work ID"
          },
          "doi": {
            "type": [
              "string",
              "null"
            ],
            "description": "Digital Object Identifier"
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Work title"
          },
          "publication_year": {
            "type": [
              "number",
              "null"
            ],
            "description": "Year of publication"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Work type (e.g., journal-article)"
          },
          "open_access": {
            "type": "boolean",
            "description": "Whether work is open access"
          },
          "oa_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Open access URL if available"
          },
          "cited_by_count": {
            "type": "number",
            "description": "Number of citations"
          },
          "journal": {
            "type": [
              "string",
              "null"
            ],
            "description": "Journal or publication venue name"
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of author names"
          },
          "concepts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Top research concepts/fields (up to 5)"
          },
          "abstract": {
            "type": [
              "string",
              "null"
            ],
            "description": "Work abstract text"
          }
        },
        "required": [
          "id",
          "doi",
          "title",
          "publication_year",
          "type",
          "open_access",
          "oa_url",
          "cited_by_count",
          "journal",
          "authors",
          "concepts",
          "abstract"
        ]
      }
    }
  },
  "required": [
    "total",
    "results"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "openalex": {
      "url": "https://gateway.pipeworx.io/openalex/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build May 9, 2026