---
summary: "Full tool surface: DOI resolution, reference extraction, works search, journal and funder lookup"
breaking: false
security: false
---

# 0.1.1 — 2026-05-21

## Added

- **`crossref_get_work`** — resolve a DOI to its full Crossref metadata record (title, authors, type, dates, abstract, license, funder info, citation count)
- **`crossref_get_references`** — extract outgoing reference list from a DOI's full record, with optional filtering for unstructured-only entries
- **`crossref_search_works`** — full-text search across ~155M registered works; supports filter map (hyphen-keyed e.g. `has-abstract`), field projection (`select=`), cursor pagination, sort/order
- **`crossref_search_journals`** — search journals by query or fetch by ISSN; includes recent work counts and subjects
- **`crossref_search_funders`** — search funding bodies by query or fetch by funder DOI; includes descendant hierarchies and work counts
- **`CrossrefService`** — HTTP client with polite-pool User-Agent injection, per-request `AbortSignal`, retry with exponential backoff, and cursor/offset pagination helpers (`src/services/crossref/crossref-service.ts`)
- **`getServerConfig()`** — lazy env-var parsing via `parseEnvConfig` for `CROSSREF_MAILTO`, `CROSSREF_BASE_URL`, `CROSSREF_TIMEOUT_MS` (`src/config/server-config.ts`)
- **Startup warning** — logs when `CROSSREF_MAILTO` is absent so users understand they're on the anonymous pool
- **`canvas-accessor`** — module-level canvas handle for DataCanvas integration (`src/services/canvas-accessor.ts`)
- **Tests** — Vitest suites for all five tools and the CrossrefService (sparse-payload coverage, cursor conflict, DOI normalization)
- **Barrel export** — `src/mcp-server/tools/definitions/index.ts` exports `allToolDefinitions` array

## Removed

- **`echo` tool and test** — placeholder removed; replaced by the full Crossref tool surface
