Releases: cyanheads/orcid-mcp-server
Release list
v0.2.8: resolve_researcher count/query pairing, design doc reconciliation
resolve_researcher count/query pairing, design doc reconciliation
Changed:
docs/design.mdreconciled to the 9-tool surface — Tools table, Domain Mapping, and Implementation Order now listorcid_get_work_detailandorcid_get_research_resources;Not exposednote no longer listsresearch-resources(#17)
Fixed:
orcid_resolve_researcher:queryUsed/totalFoundnow always describe the same effective query — previously paired the primary query with a relaxed-fallback count. AddsprimaryQuery/primaryTotalFoundfor audit trail (#15)
255 tests pass; bun run devcheck clean.
v0.2.7: ORCID checksum validation, works output shaping, mcp-ts-core 0.10.14
ORCID checksum validation, works output shaping, mcp-ts-core 0.10.14
Local ISO 7064 checksum validation, orcid_get_works pagination, and framework/supply-chain maintenance.
Fixed:
- ORCID iD checksum validation (#14) — orcid_id schemas verify the ISO/IEC 7064:2003 MOD 11-2 check digit; a checksum-invalid iD now fails locally with InvalidParams before any upstream call, across all 9 definitions that accept orcid_id.
Added:
- orcid_get_works gains limit/offset/include_external_ids for locally paging prolific records; new returnedCount/offset/nextOffset/truncated outputs (#16)
- .github/SECURITY.md, LICENSE, .gitattributes
Changed:
- orcid://researcher/{orcid_id}/works resource caps its inline works array to a compact first-25 page; workCount reports the full total (#16)
- Adopt mcp-ts-core 0.10.14 supply-chain hardening: Socket install-time scanning, bunfig.toml minimumReleaseAge, Dockerfile cache mounts + --ignore-scripts
Dependencies:
@cyanheads/mcp-ts-core^0.10.9 -> ^0.10.14@biomejs/biome^2.5.0 -> ^2.5.3@types/node^26.0.0 -> ^26.1.1ignore^7.0.5 -> ^7.0.6tsc-alias^1.8.17 -> ^1.9.0vitest^4.1.9 -> ^4.1.10@socketsecurity/bun-security-scanner— new, ^1.1.2
252 tests pass; bun run devcheck clean.
v0.2.6: mcp-ts-core ^0.10.9 maintenance
mcp-ts-core ^0.10.9 maintenance
Framework adoption only — no tool, resource, or server source changed.
Dependency bumps:
@cyanheads/mcp-ts-core^0.10.8 → ^0.10.9
Changed:
- devcheck gains
check-dependency-specifiers— fails floating specifiers (latest/*/dist-tags) in package.json deps and bun.lock workspaces (cyanheads/mcp-ts-core#246) lint:packagingvalidates plugin marketplace manifests (.claude-plugin / .codex-plugin), gated by devcheck.config.jsonpackaging.pluginManifests(cyanheads/mcp-ts-core#240)- synced framework scripts,
polish-docs-metaskill, and devcheck config
234 tests pass; bun run devcheck clean.
v0.2.5: mcp-ts-core ^0.10.8 adoption, dependency refresh
mcp-ts-core ^0.10.8 adoption, dependency refresh
Maintenance release — framework adoption only; no tool, resource, or server source changed.
Dependencies:
@cyanheads/mcp-ts-core^0.10.6 → ^0.10.8@types/node^25.9.4 → ^26.0.0
Changed:
- Inherits framework ^0.10.8:
ctx.contentmedia collector (image/audio blocks ride content[], never structuredContent); canvas SQL gate classifies SELECT-shaped prepare failures asinvalid_sqlwith DuckDB binder detail (mcp-ts-core#236);DuckdbProvider.describe()filter qualification fix (mcp-ts-core#235); biome 2.4.16 → 2.5.0. - Synced framework scripts — fresh-scaffold guards skip git-dependent devcheck/changelog/antipattern checks and a deleted SKILL.md cleanly (mcp-ts-core#237/#242/#243).
- Re-synced
skills/(seven metadata.version bumps) and emptied the devcheck outdated.allowlist now that both deps are latest-in-range.
234 tests pass; bun run devcheck clean.
v0.2.4: Non-existent-iD handling, start cap, and a resource leak fix
Non-existent-iD handling, start cap, and a resource leak fix
Three handler fixes for ORCID edge cases, plus dev-dependency bumps.
Fixed:
orcid_get_research_resourcesthrowsprofile_not_foundfor non-existent iDs — the/research-resourcesendpoint returns HTTP 200{"group":[]}(not 404), so the empty path now verifies existence viagetPerson. (#11)orcid_search_researcherscapsstartat 10,000, so Zod rejects out-of-range values before the ORCID Public API returns its HTTP 400. (#12)orcid://researcher/{orcid_id}/profileno longer leaks the upstream ORCID URL or raw 404 error body — the resource handler catches the upstream NotFound and rethrows a clean error. (#13)
Changed:
@types/node^25.9.3 → ^25.9.4vitest^4.1.8 → ^4.1.9
234 tests pass; bun run devcheck clean.
v0.2.3: mcp-ts-core ^0.10.6, MCPB bundle cleaner
mcp-ts-core ^0.10.6, MCPB bundle cleaner
Maintenance release: framework adoption, vendored skill sync, and a post-pack MCPB bundle cleaner.
Dependency bumps:
@cyanheads/mcp-ts-core^0.9.21 → ^0.10.6 (transitively:@modelcontextprotocol/ext-apps1.7.3 → 1.7.4,hono4.12.23 → 4.12.25)@biomejs/biome^2.4.16 → ^2.5.0@types/node^25.9.1 → ^25.9.3
Added:
scripts/clean-mcpb.ts— prunes dev deps and strips dependency-shipped agent docs from the.mcpbafter pack; wired into thebundlescriptDockerfileHEALTHCHECK on /healthz, plus version/source OCI labels- devcheck guards:
z.coerce.boolean()env-flag rule; bundle-content and createApp/manifest identity checks
Changed:
createApp()sets explicitname/titleof orcid-mcp-server instead of the npm-scoped fallbackctx.sampleremoved from the framework Context surface
228 tests pass; bun run devcheck clean.
v0.2.2: orcid_get_work_detail bulk endpoint — BREAKING: put_code → put_codes
orcid_get_work_detail bulk endpoint — BREAKING: put_code → put_codes
BREAKING: orcid_get_work_detail input parameter renamed from put_code (single integer) to put_codes (array of 1–100 integers). Callers must update tool invocations. Migration: put_code: 123 → put_codes: [123]. Output shape also changed to { works[], errors[] }.
Changed:
put_code: number→put_codes: number[](1–100, Zod min/max validated). Resolves #10.- Output: flat work record →
{ orcidId, orcidUri, works: WorkDetail[], errors: WorkError[] }. - Per-record errors (not-found or inaccessible put-codes) arrive in
errors[]without failing the whole call. - Single ORCID bulk round-trip (
GET /v3.0/{orcid}/works/{code1},{code2},...) regardless of count.
228 tests pass; bun run devcheck clean.
v0.2.1: Adopt @cyanheads/mcp-ts-core ^0.9.21 — per-request log context, secret-stripped errors, withRetry fail-fast
Adopt @cyanheads/mcp-ts-core ^0.9.21 — per-request log context, secret-stripped errors, withRetry fail-fast
Adopts three framework fixes: per-request logs and traces now carry fresh
request + trace/span IDs (not the frozen boot context); fetchWithTimeout
strips query-string secrets from error messages; withRetry fails fast on
non-retryable errors and ctx.fail auto-populates the retryable flag.
Syncs 8 updated skills and adds api-mirror + orchestrations. Adds
release:github script and check-skill-versions devcheck gate.
Changed:
@cyanheads/mcp-ts-core^0.9.16 → ^0.9.21vitest^4.1.7 → ^4.1.8- Skills: 8 updated (add-service, add-tool, api-canvas, api-context, api-linter, api-utils, design-mcp-server, release-and-publish); 2 new (api-mirror, orchestrations)
scripts/release-github.ts— new release:github scriptscripts/check-skill-versions.ts— new devcheck gate- README client-config keys renamed to full package name
219 tests pass; bun run devcheck clean.
v0.2.0: Work detail fetch, research resources, Solr quote fixes
Work detail fetch, research resources, Solr quote fixes
Two new tools expand the ORCID surface; Solr quoting fixes correct name matching for both search and resolve tools.
Added:
orcid_get_work_detail— full work record by put-code: abstract, contributors with CRediT roles, complete external IDs, citation, journal, URL (#5)orcid_get_research_resources— lab equipment, clinical registrations, institutional facilities (#5)orcid_get_works— now exposesput_codeper work, enabling the list → detail chain (#5)
Changed:
researcher-worksresource — non-existent/private iDs now surfacenotFound()instead of a raw upstream error (#8)
Fixed:
orcid_resolve_researcher—given-and-family-namesSolr clause is now quoted; unquoted names OR-matched tokens, returning wrong candidates and inflatednumFound(#4)orcid_search_researchers—given_nameandfamily_namevalues are now quoted; multi-word names (Mary Ann, Van Damme) now phrase-match correctly (#9)
219 tests pass; bun run devcheck clean.
v0.1.6: Enrichment adoption — query echoes, result totals, empty-result guidance across all tools
Enrichment adoption — query echoes, result totals, empty-result guidance across all tools
Search and collection tools now surface query echoes, result totals, and empty-result
guidance in a typed enrichment block that reaches both structuredContent JSON and
content[] markdown trailer. Two dead error contracts removed.
Changed:
- orcid_search_researchers: effectiveQuery + numFound moved to enrichment; no_results
error contract removed — empty results return success with enrichment notice (#6) - orcid_resolve_researcher: queryUsed, relaxedQuery, totalFound moved to enrichment with
enrichmentTrailer; no_candidates error contract removed (#7) - Collection tools (get_works, get_affiliations, get_funding, get_peer_reviews): notice
moved from output to enrichment block
Dependency bumps:
@cyanheads/mcp-ts-core^0.9.13 → ^0.9.16
105 tests pass; bun run devcheck clean.