# `europepmc__citation_snowball`

Walk the citation graph forward (cited-by), backward (references), or both, with
configurable depth and a minimum-citation-count filter.

- Server: [Europe PMC](https://gateway.mcpharbor.dev/docs/servers/europepmc) (`dev.mcpharbor.gateway/europepmc`)
- Price per call: $0.0001 (100 micro-USD); only tools/call is charged
- Endpoint: `https://gateway.mcpharbor.dev/mcp` or `https://gateway.mcpharbor.dev/mcp/europepmc`
- Upstream tool: exposed by the provider; called through this gateway as `europepmc__citation_snowball`
- Provider terms: <https://europepmc.org/Copyright> (verified 2026-09-19)
- Upstream API documentation: <https://europepmc.org/RestfulWebService>
- Rate limit: 500 requests per minute

## Parameters

- `identifier` (string, required): Paper ID (PMID, DOI, or Semantic Scholar ID)
- `max_depth` (integer, optional): Recursion depth (0 = no limit) Default: `1`.
- `max_papers` (integer, optional): Max papers per level Default: `50`.
- `min_citations` (integer, optional): Minimum citation count filter Default: `0`.
- `strategy` (string, optional): Snowball direction One of: `forward`, `backward`, `both`. Default: `forward`.

## Example call

Request headers and body:

```http
POST /mcp HTTP/1.1
Host: gateway.mcpharbor.dev
Authorization: Bearer <your gateway API key>
Content-Type: application/json
Accept: application/json, text/event-stream
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: europepmc__citation_snowball
```

```json
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/clientCapabilities": {},
      "io.modelcontextprotocol/clientInfo": {
        "name": "example-agent",
        "version": "1.0.0"
      },
      "io.modelcontextprotocol/protocolVersion": "2026-07-28"
    },
    "arguments": {
      "identifier": "example"
    },
    "name": "europepmc__citation_snowball"
  }
}
```

A successful response:

```json
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "_meta": {
      "dev.mcpharbor.gateway/call": {
        "chargedMicroUsd": 100,
        "id": "<the id of this charge>"
      }
    },
    "content": [
      {
        "text": "<whatever the upstream tool returned>",
        "type": "text"
      }
    ],
    "resultType": "complete"
  }
}
```

This call costs $0.0001 (100 micro-USD). Reading this page and listing the tool cost nothing.
The `dev.mcpharbor.gateway/call` record in the result is the receipt for that charge. Each
POST is metered separately, so sending the same call again buys another one: see
[agent.txt](https://gateway.mcpharbor.dev/agent.txt), section 7, before retrying.

## Attribution

This provider asks for no attribution. Their terms still apply: see the table above.

## Tool definition

Exactly as `tools/list` returns it (free):

```json
{
  "_meta": {
    "dev.mcpharbor.gateway/pricing": {
      "currency": "USD",
      "pricePerCallMicroUsd": 100
    }
  },
  "annotations": {
    "idempotentHint": true,
    "openWorldHint": true,
    "readOnlyHint": true,
    "title": "Citation snowball walk"
  },
  "description": "Walk the citation graph forward (cited-by), backward (references), or both, with\n    configurable depth and a minimum-citation-count filter.",
  "inputSchema": {
    "properties": {
      "identifier": {
        "description": "Paper ID (PMID, DOI, or Semantic Scholar ID)",
        "title": "Identifier",
        "type": "string"
      },
      "max_depth": {
        "default": 1,
        "description": "Recursion depth (0 = no limit)",
        "minimum": 0,
        "title": "Max Depth",
        "type": "integer"
      },
      "max_papers": {
        "default": 50,
        "description": "Max papers per level",
        "maximum": 1000,
        "minimum": 1,
        "title": "Max Papers",
        "type": "integer"
      },
      "min_citations": {
        "default": 0,
        "description": "Minimum citation count filter",
        "minimum": 0,
        "title": "Min Citations",
        "type": "integer"
      },
      "strategy": {
        "default": "forward",
        "description": "Snowball direction",
        "enum": [
          "forward",
          "backward",
          "both"
        ],
        "title": "Strategy",
        "type": "string"
      }
    },
    "required": [
      "identifier"
    ],
    "title": "citation_snowballArguments",
    "type": "object"
  },
  "name": "europepmc__citation_snowball",
  "outputSchema": {
    "additionalProperties": true,
    "title": "citation_snowballDictOutput",
    "type": "object"
  }
}
```
