Skip to content

Releases: cyanheads/orcid-mcp-server

v0.2.8: resolve_researcher count/query pairing, design doc reconciliation

Choose a tag to compare

@cyanheads cyanheads released this 13 Jul 18:57
v0.2.8
183ad2e

resolve_researcher count/query pairing, design doc reconciliation

Changed:

  • docs/design.md reconciled to the 9-tool surface — Tools table, Domain Mapping, and Implementation Order now list orcid_get_work_detail and orcid_get_research_resources; Not exposed note no longer lists research-resources (#17)

Fixed:

  • orcid_resolve_researcher: queryUsed/totalFound now always describe the same effective query — previously paired the primary query with a relaxed-fallback count. Adds primaryQuery/primaryTotalFound for audit trail (#15)

255 tests pass; bun run devcheck clean.

CHANGELOG v0.2.8

v0.2.7: ORCID checksum validation, works output shaping, mcp-ts-core 0.10.14

Choose a tag to compare

@cyanheads cyanheads released this 13 Jul 17:52
v0.2.7
9b4b47f

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.1
  • ignore ^7.0.5 -> ^7.0.6
  • tsc-alias ^1.8.17 -> ^1.9.0
  • vitest ^4.1.9 -> ^4.1.10
  • @socketsecurity/bun-security-scanner — new, ^1.1.2

252 tests pass; bun run devcheck clean.

CHANGELOG v0.2.7

v0.2.6: mcp-ts-core ^0.10.9 maintenance

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 18:55
v0.2.6
8927a2a

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:packaging validates plugin marketplace manifests (.claude-plugin / .codex-plugin), gated by devcheck.config.json packaging.pluginManifests (cyanheads/mcp-ts-core#240)
  • synced framework scripts, polish-docs-meta skill, and devcheck config

234 tests pass; bun run devcheck clean.

v0.2.5: mcp-ts-core ^0.10.8 adoption, dependency refresh

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 05:28
v0.2.5
4266b3c

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.content media collector (image/audio blocks ride content[], never structuredContent); canvas SQL gate classifies SELECT-shaped prepare failures as invalid_sql with 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

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 02:57
v0.2.4
7f743e7

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_resources throws profile_not_found for non-existent iDs — the /research-resources endpoint returns HTTP 200 {"group":[]} (not 404), so the empty path now verifies existence via getPerson. (#11)
  • orcid_search_researchers caps start at 10,000, so Zod rejects out-of-range values before the ORCID Public API returns its HTTP 400. (#12)
  • orcid://researcher/{orcid_id}/profile no 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.4
  • vitest ^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

Choose a tag to compare

@cyanheads cyanheads released this 13 Jun 03:35
v0.2.3
041000b

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-apps 1.7.3 → 1.7.4, hono 4.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 .mcpb after pack; wired into the bundle script
  • Dockerfile HEALTHCHECK 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 explicit name/title of orcid-mcp-server instead of the npm-scoped fallback
  • ctx.sample removed 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

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 09:40
v0.2.2
7b645a5

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: 123put_codes: [123]. Output shape also changed to { works[], errors[] }.

Changed:

  • put_code: numberput_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

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 14:49
v0.2.1
cfb3b08

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.21
  • vitest ^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 script
  • scripts/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

Choose a tag to compare

@cyanheads cyanheads released this 31 May 02:15
v0.2.0
4e6f034

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 exposes put_code per work, enabling the list → detail chain (#5)

Changed:

  • researcher-works resource — non-existent/private iDs now surface notFound() instead of a raw upstream error (#8)

Fixed:

  • orcid_resolve_researchergiven-and-family-names Solr clause is now quoted; unquoted names OR-matched tokens, returning wrong candidates and inflated numFound (#4)
  • orcid_search_researchersgiven_name and family_name values 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

Choose a tag to compare

@cyanheads cyanheads released this 30 May 09:27
v0.1.6
7f0c174

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.