Zovo Citation Generator

DOIs and ISBNs to APA & MLA

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,806Tokens (tool definitions)
~8.4 KBTypical response size
Moderate attention impact (1.41% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "citation-generator": {
      "url": "https://citation-generator.zovo.one/mcp"
    }
  }
}

Remote endpoints

https://citation-generator.zovo.one/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢generate_citations(identifiers, style, keep_capitals)

Use this when the user wants to cite this for me, build a works cited list or a reference generator: give a DOI, an ISBN or a list of them and get APA 7, MLA 9 or Chicago citations plus BibTeX and RIS files. Use it for a doi to citation or isbn to citation, an mla citation generator or a chicago citation generator, or to make bibtex from doi. The metadata is looked up live on Crossref and Open Library. A record those services do not have returns status not_found for that item and the other items still work. Do not use for a source that has no DOI or ISBN, or to cite legal cases, patents or datasets; use format_manual_citation for a manual source.

Input Schema

{
  "type": "object",
  "properties": {
    "identifiers": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 200
      },
      "description": "1 to 25 DOIs or ISBNs, e.g. [\"10.1038/nphys1170\"] or [\"9780140328721\"]; a https://doi.org/ link and hyphens are accepted."
    },
    "style": {
      "description": "Citation style: apa7 (default), mla9, chicago_ad or chicago_nb.",
      "type": "string",
      "enum": [
        "apa7",
        "mla9",
        "chicago_ad",
        "chicago_nb"
      ]
    },
    "keep_capitals": {
      "description": "Words to keep as written, matched case-insensitively, e.g. [\"Studies\", \"London\"].",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A word to preserve as supplied, e.g. Studies."
      }
    }
  },
  "required": [
    "identifiers"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "style": {
      "type": "string"
    },
    "count": {
      "type": "number"
    },
    "resolved": {
      "type": "number"
    },
    "not_found": {
      "type": "number"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "citation": {
            "type": "string"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "identifier",
          "status",
          "source",
          "type",
          "warnings"
        ],
        "additionalProperties": false
      }
    },
    "reference_order": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "retrieved_utc": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "url",
          "retrieved_utc"
        ],
        "additionalProperties": false
      }
    },
    "downloads": {
      "type": "object",
      "properties": {
        "bib": {
          "type": "string"
        },
        "ris": {
          "type": "string"
        },
        "txt": {
          "type": "string"
        }
      },
      "required": [
        "bib",
        "ris",
        "txt"
      ],
      "additionalProperties": false
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "style",
    "count",
    "resolved",
    "not_found",
    "items",
    "reference_order",
    "sources",
    "downloads",
    "note"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢format_manual_citation(record, style, keep_capitals)

Use this when the user wants a citation generator, a reference generator apa or a works cited generator for a source they type in that has no DOI or ISBN: a book, a journal article, a chapter or a web page. Give the record fields and the style, and get the formatted citation plus BibTeX, RIS and text reference-list files. Use it for a cite this for me request about an old book or a class reading. Do not use it when the user has a DOI or an ISBN, or for legal cases, patents or datasets.

Input Schema

{
  "type": "object",
  "properties": {
    "record": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "book",
            "journal_article",
            "web_page",
            "chapter"
          ],
          "description": "What kind of source it is, e.g. journal_article."
        },
        "authors": {
          "description": "Authors in the order they appear on the source, e.g. [{family:'Aspelmeyer',given:'Markus'}].",
          "maxItems": 1000,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "family": {
                "type": "string",
                "maxLength": 100,
                "description": "Family name (surname), e.g. Aspelmeyer."
              },
              "given": {
                "description": "Given name or initials, e.g. Markus or M.",
                "type": "string",
                "maxLength": 100
              }
            },
            "required": [
              "family"
            ]
          }
        },
        "title": {
          "type": "string",
          "maxLength": 500,
          "description": "Title of the work, e.g. Measured measurement."
        },
        "year": {
          "description": "Year of publication as a whole number, e.g. 2009.",
          "type": "integer",
          "minimum": 0,
          "maximum": 9999
        },
        "container": {
          "description": "Journal name or book title that holds the work, e.g. Journal of Field Studies.",
          "type": "string",
          "maxLength": 300
        },
        "volume": {
          "description": "Volume, e.g. 5.",
          "type": "string",
          "maxLength": 40
        },
        "issue": {
          "description": "Issue or number, e.g. 1.",
          "type": "string",
          "maxLength": 40
        },
        "pages": {
          "description": "Page range, e.g. 11-12.",
          "type": "string",
          "maxLength": 60
        },
        "publisher": {
          "description": "Publisher or site name, e.g. Example Press.",
          "type": "string",
          "maxLength": 200
        },
        "url": {
          "description": "Web address, e.g. https://example.com/paper.",
          "type": "string",
          "maxLength": 500
        },
        "doi": {
          "description": "DOI without the https://doi.org/ part, e.g. 10.1038/nphys1170.",
          "type": "string",
          "maxLength": 300
        },
        "isbn": {
          "description": "ISBN-10 or ISBN-13, e.g. 9780140328721.",
          "type": "string",
          "maxLength": 40
        },
        "keep_capitals": {
          "description": "Words to keep as written, matched case-insensitively, e.g. [\"Studies\", \"London\"].",
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A word to preserve as supplied, e.g. Studies."
          }
        },
        "accessed": {
          "description": "Date you accessed a web page, as YYYY-MM-DD, e.g. 2026-10-17.",
          "type": "string",
          "maxLength": 20
        }
      },
      "required": [
        "type",
        "title"
      ],
      "description": "The source you type by hand when it has no DOI or ISBN."
    },
    "style": {
      "description": "Citation style: apa7 (default), mla9, chicago_ad or chicago_nb.",
      "type": "string",
      "enum": [
        "apa7",
        "mla9",
        "chicago_ad",
        "chicago_nb"
      ]
    },
    "keep_capitals": {
      "description": "Words to keep as written, matched case-insensitively, e.g. [\"Studies\", \"London\"].",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A word to preserve as supplied, e.g. Studies."
      }
    }
  },
  "required": [
    "record"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "style": {
      "type": "string"
    },
    "count": {
      "type": "number"
    },
    "resolved": {
      "type": "number"
    },
    "not_found": {
      "type": "number"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "citation": {
            "type": "string"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "identifier",
          "status",
          "source",
          "type",
          "warnings"
        ],
        "additionalProperties": false
      }
    },
    "reference_order": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "retrieved_utc": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "url",
          "retrieved_utc"
        ],
        "additionalProperties": false
      }
    },
    "downloads": {
      "type": "object",
      "properties": {
        "bib": {
          "type": "string"
        },
        "ris": {
          "type": "string"
        },
        "txt": {
          "type": "string"
        }
      },
      "required": [
        "bib",
        "ris",
        "txt"
      ],
      "additionalProperties": false
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "style",
    "count",
    "resolved",
    "not_found",
    "items",
    "reference_order",
    "sources",
    "downloads",
    "note"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools