NCBI E-utilities API — Discovery

NCBI E-utilities API — Discovery. 4 operations. Lead operation: Match citations to PubMed UIDs. Self-contained Naftiko capability covering one National Library Of Medicine business surface.

Run with Naftiko National Library Of MedicineDiscovery

What You Can Do

GET
Ecitmatch — Match citations to PubMed UIDs
/v1/ecitmatch-cgi
GET
Einfo — Database statistics and field metadata
/v1/einfo-fcgi
GET
Elink — Find related records across Entrez databases
/v1/elink-fcgi
GET
Espell — Spelling suggestions for a query term
/v1/espell-fcgi

MCP Tools

match-citations-pubmed-uids

Match citations to PubMed UIDs

read-only idempotent
database-statistics-and-field-metadata

Database statistics and field metadata

read-only idempotent
find-related-records-across-entrez

Find related records across Entrez databases

read-only idempotent
spelling-suggestions-query-term

Spelling suggestions for a query term

read-only idempotent

Capability Spec

national-library-of-medicine-discovery.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: NCBI E-utilities API — Discovery
  description: 'NCBI E-utilities API — Discovery. 4 operations. Lead operation: Match citations to PubMed UIDs. Self-contained
    Naftiko capability covering one National Library Of Medicine business surface.'
  tags:
  - National Library Of Medicine
  - Discovery
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    NATIONAL_LIBRARY_OF_MEDICINE_API_KEY: NATIONAL_LIBRARY_OF_MEDICINE_API_KEY
capability:
  consumes:
  - type: http
    namespace: national-library-of-medicine-discovery
    baseUri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils
    description: NCBI E-utilities API — Discovery business capability. Self-contained, no shared references.
    resources:
    - name: ecitmatch.cgi
      path: /ecitmatch.cgi
      operations:
      - name: ecitmatch
        method: GET
        description: Match citations to PubMed UIDs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: db
          in: query
          type: string
          required: true
        - name: rettype
          in: query
          type: string
        - name: bdata
          in: query
          type: string
          description: Pipe-delimited citation strings.
          required: true
    - name: einfo.fcgi
      path: /einfo.fcgi
      operations:
      - name: einfo
        method: GET
        description: Database statistics and field metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: db
          in: query
          type: string
        - name: retmode
          in: query
          type: string
    - name: elink.fcgi
      path: /elink.fcgi
      operations:
      - name: elink
        method: GET
        description: Find related records across Entrez databases
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dbfrom
          in: query
          type: string
          required: true
        - name: db
          in: query
          type: string
        - name: id
          in: query
          type: string
          required: true
        - name: linkname
          in: query
          type: string
        - name: cmd
          in: query
          type: string
          description: Command mode (neighbor, neighbor_history, llinks, prlinks, etc.).
    - name: espell.fcgi
      path: /espell.fcgi
      operations:
      - name: espell
        method: GET
        description: Spelling suggestions for a query term
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: db
          in: query
          type: string
          required: true
        - name: term
          in: query
          type: string
          required: true
  exposes:
  - type: rest
    namespace: national-library-of-medicine-discovery-rest
    port: 8080
    description: REST adapter for NCBI E-utilities API — Discovery. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/ecitmatch-cgi
      name: ecitmatch-cgi
      description: REST surface for ecitmatch.cgi.
      operations:
      - method: GET
        name: ecitmatch
        description: Match citations to PubMed UIDs
        call: national-library-of-medicine-discovery.ecitmatch
        with:
          db: rest.db
          rettype: rest.rettype
          bdata: rest.bdata
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/einfo-fcgi
      name: einfo-fcgi
      description: REST surface for einfo.fcgi.
      operations:
      - method: GET
        name: einfo
        description: Database statistics and field metadata
        call: national-library-of-medicine-discovery.einfo
        with:
          db: rest.db
          retmode: rest.retmode
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/elink-fcgi
      name: elink-fcgi
      description: REST surface for elink.fcgi.
      operations:
      - method: GET
        name: elink
        description: Find related records across Entrez databases
        call: national-library-of-medicine-discovery.elink
        with:
          dbfrom: rest.dbfrom
          db: rest.db
          id: rest.id
          linkname: rest.linkname
          cmd: rest.cmd
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/espell-fcgi
      name: espell-fcgi
      description: REST surface for espell.fcgi.
      operations:
      - method: GET
        name: espell
        description: Spelling suggestions for a query term
        call: national-library-of-medicine-discovery.espell
        with:
          db: rest.db
          term: rest.term
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: national-library-of-medicine-discovery-mcp
    port: 9090
    transport: http
    description: MCP adapter for NCBI E-utilities API — Discovery. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: match-citations-pubmed-uids
      description: Match citations to PubMed UIDs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: national-library-of-medicine-discovery.ecitmatch
      with:
        db: tools.db
        rettype: tools.rettype
        bdata: tools.bdata
      outputParameters:
      - type: object
        mapping: $.
    - name: database-statistics-and-field-metadata
      description: Database statistics and field metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: national-library-of-medicine-discovery.einfo
      with:
        db: tools.db
        retmode: tools.retmode
      outputParameters:
      - type: object
        mapping: $.
    - name: find-related-records-across-entrez
      description: Find related records across Entrez databases
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: national-library-of-medicine-discovery.elink
      with:
        dbfrom: tools.dbfrom
        db: tools.db
        id: tools.id
        linkname: tools.linkname
        cmd: tools.cmd
      outputParameters:
      - type: object
        mapping: $.
    - name: spelling-suggestions-query-term
      description: Spelling suggestions for a query term
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: national-library-of-medicine-discovery.espell
      with:
        db: tools.db
        term: tools.term
      outputParameters:
      - type: object
        mapping: $.