Crossref · Capability
Crossref — Types
Crossref — Types. 3 operations. Lead operation: Types. Self-contained Naftiko capability covering one Crossref business surface.
What You Can Do
GET
Get
— Returns a list of valid work types.
/v1/types
GET
Get
— Returns information about a metadata work type, as an example use `monograph`
/v1/types/{id}
GET
Get
— returns list of works of type {id}.
/v1/types/{id}/works
MCP Tools
returns-list-valid-work-types
Returns a list of valid work types.
read-only
idempotent
returns-information-about-metadata-work
Returns information about a metadata work type, as an example use `monograph`
read-only
idempotent
returns-list-works-type-id
returns list of works of type {id}.
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Crossref — Types
description: 'Crossref — Types. 3 operations. Lead operation: Types. Self-contained Naftiko capability covering one Crossref
business surface.'
tags:
- Crossref
- Types
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
CROSSREF_API_KEY: CROSSREF_API_KEY
capability:
consumes:
- type: http
namespace: crossref-types
baseUri: ''
description: Crossref — Types business capability. Self-contained, no shared references.
resources:
- name: types
path: /types
operations:
- name: get
method: GET
description: Returns a list of valid work types.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: rows
in: query
type: integer
description: The number of rows per page
- name: mailto
in: query
type: string
description: The email address to identify yourself and be in the "polite pool"
- name: offset
in: query
type: integer
description: The number of rows to skip before returning
- name: types-id
path: /types/{id}
operations:
- name: get
method: GET
description: Returns information about a metadata work type, as an example use `monograph`
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: integer
required: true
- name: types-id-works
path: /types/{id}/works
operations:
- name: get
method: GET
description: returns list of works of type {id}.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: rows
in: query
type: integer
description: The number of rows per page
- name: order
in: query
type: string
description: Combined with sort can be used to specify the order of results, e.g. asc or desc
- name: facet
in: query
type: string
description: Exposes the ability to retrieve counts for pre-defined facets e.g. `type-name:*` returns counts of
all works by type
- name: sample
in: query
type: integer
description: Exposes the ability to return `N` randomly sampled items
- name: sort
in: query
type: string
description: Exposes the ability to sort results by a certain field, e.g. `score`
- name: offset
in: query
type: integer
description: The number of rows to skip before returning
- name: mailto
in: query
type: string
description: The email address to identify yourself and be in the "polite pool"
- name: select
in: query
type: string
description: Exposes the ability to select certain fields, supports a comma separated list of fields, e.g. `DOI,volume`
- name: query
in: query
type: string
description: Exposes the ability to free text query certain fields
- name: filter
in: query
type: string
description: Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters,
e.g. `content-domain:psychoceramics.labs.crossref.org`
- name: cursor
in: query
type: string
description: Exposes the ability to deep page through large result sets, where offset would cause performance problems
- name: id
in: path
type: integer
required: true
exposes:
- type: rest
namespace: crossref-types-rest
port: 8080
description: REST adapter for Crossref — Types. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/types
name: types
description: REST surface for types.
operations:
- method: GET
name: get
description: Returns a list of valid work types.
call: crossref-types.get
with:
rows: rest.rows
mailto: rest.mailto
offset: rest.offset
outputParameters:
- type: object
mapping: $.
- path: /v1/types/{id}
name: types-id
description: REST surface for types-id.
operations:
- method: GET
name: get
description: Returns information about a metadata work type, as an example use `monograph`
call: crossref-types.get
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/types/{id}/works
name: types-id-works
description: REST surface for types-id-works.
operations:
- method: GET
name: get
description: returns list of works of type {id}.
call: crossref-types.get
with:
rows: rest.rows
order: rest.order
facet: rest.facet
sample: rest.sample
sort: rest.sort
offset: rest.offset
mailto: rest.mailto
select: rest.select
query: rest.query
filter: rest.filter
cursor: rest.cursor
id: rest.id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: crossref-types-mcp
port: 9090
transport: http
description: MCP adapter for Crossref — Types. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: returns-list-valid-work-types
description: Returns a list of valid work types.
hints:
readOnly: true
destructive: false
idempotent: true
call: crossref-types.get
with:
rows: tools.rows
mailto: tools.mailto
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: returns-information-about-metadata-work
description: Returns information about a metadata work type, as an example use `monograph`
hints:
readOnly: true
destructive: false
idempotent: true
call: crossref-types.get
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: returns-list-works-type-id
description: returns list of works of type {id}.
hints:
readOnly: true
destructive: false
idempotent: true
call: crossref-types.get
with:
rows: tools.rows
order: tools.order
facet: tools.facet
sample: tools.sample
sort: tools.sort
offset: tools.offset
mailto: tools.mailto
select: tools.select
query: tools.query
filter: tools.filter
cursor: tools.cursor
id: tools.id
outputParameters:
- type: object
mapping: $.