naftiko: 1.0.0-alpha2 info: label: Crossref — Prefixes description: 'Crossref — Prefixes. 2 operations. Lead operation: Prefixes. Self-contained Naftiko capability covering one Crossref business surface.' tags: - Crossref - Prefixes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CROSSREF_API_KEY: CROSSREF_API_KEY capability: consumes: - type: http namespace: crossref-prefixes baseUri: '' description: Crossref — Prefixes business capability. Self-contained, no shared references. resources: - name: prefixes-prefix path: /prefixes/{prefix} operations: - name: get method: GET description: Returns metadata for the DOI owner prefix, as an example use prefix 10.1016 outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: prefix in: path type: string required: true - name: prefixes-prefix-works path: /prefixes/{prefix}/works operations: - name: get method: GET description: Returns list of works associated with specified {prefix}. 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: prefix in: path type: string required: true exposes: - type: rest namespace: crossref-prefixes-rest port: 8080 description: REST adapter for Crossref — Prefixes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/prefixes/{prefix} name: prefixes-prefix description: REST surface for prefixes-prefix. operations: - method: GET name: get description: Returns metadata for the DOI owner prefix, as an example use prefix 10.1016 call: crossref-prefixes.get with: prefix: rest.prefix outputParameters: - type: object mapping: $. - path: /v1/prefixes/{prefix}/works name: prefixes-prefix-works description: REST surface for prefixes-prefix-works. operations: - method: GET name: get description: Returns list of works associated with specified {prefix}. call: crossref-prefixes.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 prefix: rest.prefix outputParameters: - type: object mapping: $. - type: mcp namespace: crossref-prefixes-mcp port: 9090 transport: http description: MCP adapter for Crossref — Prefixes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: returns-metadata-doi-owner-prefix description: Returns metadata for the DOI owner prefix, as an example use prefix 10.1016 hints: readOnly: true destructive: false idempotent: true call: crossref-prefixes.get with: prefix: tools.prefix outputParameters: - type: object mapping: $. - name: returns-list-works-associated-specified description: Returns list of works associated with specified {prefix}. hints: readOnly: true destructive: false idempotent: true call: crossref-prefixes.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 prefix: tools.prefix outputParameters: - type: object mapping: $.