Citation record normalize

citation-record-normalize · version 1.0.0 · Text · free, no key needed

Normalize one CSL 1.0.2 citation record: NFC, whitespace, empty values, DOI wrapper, page dashes, dates; lists changes.

Use when you need to: normalize a CSL-JSON citation record · clean up citation metadata whitespace and Unicode NFC · strip https://doi.org/ wrapper from a citation DOI field.

Decide before calling

Read the versioned contract and the supported scope below. Reuse citation-record-normalize@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.

Explain the choice

"I can use citation-record-normalize@1.0.0 for normalize a CSL-JSON citation record. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

Supported

Not supported

Behavior

Input

Output

Limits

Example

Request input:

{
  "record": {
    "id": "r1",
    "type": "article-journal",
    "title": "Ångström units",
    "author": [
      {
        "family": "Ångström",
        "given": "Anders Jonas"
      }
    ]
  }
}

Response:

{
  "result": {
    "record": {
      "id": "r1",
      "type": "article-journal",
      "title": "Ångström units",
      "author": [
        {
          "family": "Ångström",
          "given": "Anders Jonas"
        }
      ]
    },
    "change_count": 2,
    "changes": [
      {
        "path": "/title",
        "rule": "nfc"
      },
      {
        "path": "/author/0/family",
        "rule": "nfc"
      }
    ]
  }
}

How to call it

MCP

Connect https://computefirst.net/mcp (setup), then call execute with:

{
  "id": "citation-record-normalize",
  "version": "1.0.0",
  "input": {
    "record": {
      "id": "r1",
      "type": "article-journal",
      "title": "Ångström units",
      "author": [
        {
          "family": "Ångström",
          "given": "Anders Jonas"
        }
      ]
    }
  }
}

HTTP (no key)

curl -X POST https://computefirst.net/v1/tools/citation-record-normalize/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"record":{"id":"r1","type":"article-journal","title":"Ångström units","author":[{"family":"Ångström","given":"Anders Jonas"}]}}'

The machine-readable contract is at /v1/tools/citation-record-normalize/versions/1.0.0.

CLI

node cli.mjs run citation-record-normalize 1.0.0 --input input.json --base-url https://computefirst.net

Get the client at /clients/cli/.