{
  "schemaVersion": "0.1",
  "name": "Scholar Sidekick",
  "description": "Citation resolver, formatter, exporter, and verifier for scholarly identifiers (DOI, PMID, PMCID, ISBN, ISSN, arXiv, ADS, WHO IRIS). Available as a public REST API and a stdio MCP server.",
  "url": "https://scholar-sidekick.com",
  "documentationUrl": "https://scholar-sidekick.com/docs",
  "version": "0.8.0",
  "provider": {
    "organization": "Scholar Sidekick",
    "url": "https://scholar-sidekick.com"
  },
  "supportedInterfaces": [
    {
      "url": "https://scholar-sidekick.com/api",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "interfaces": {
    "rest": {
      "baseUrl": "https://scholar-sidekick.com",
      "openapi": "https://scholar-sidekick.com/.well-known/openapi.yaml",
      "docs": "https://scholar-sidekick.com/docs.md"
    },
    "mcp": {
      "card": "https://scholar-sidekick.com/.well-known/mcp.json",
      "package": "scholar-sidekick-mcp",
      "transport": "stdio",
      "docs": "https://scholar-sidekick.com/mcp.md"
    }
  },
  "inputs": {
    "identifiers": [
      "DOI",
      "PMID",
      "PMCID",
      "ISBN",
      "ISSN",
      "arXiv",
      "ADS bibcode",
      "WHO IRIS URL"
    ]
  },
  "outputs": {
    "citationStyles": "vancouver, ama, apa, ieee, cse + 10,000+ CSL styles",
    "exportFormats": [
      "bibtex",
      "ris",
      "csl-json",
      "endnote-xml",
      "refworks",
      "nbib",
      "rdf",
      "csv",
      "txt"
    ]
  },
  "skills": [
    {
      "id": "resolve-identifier",
      "name": "Resolve identifier",
      "description": "Resolve a scholarly identifier to structured CSL-JSON metadata (title, authors, container, year, identifiers).",
      "tags": [
        "citation",
        "metadata",
        "resolver",
        "doi",
        "csl-json"
      ],
      "rest": "POST /api/format",
      "mcpTool": "resolveIdentifier",
      "batch": true
    },
    {
      "id": "format-citation",
      "name": "Format citation",
      "description": "Format one or more identifiers in a citation style (Vancouver, AMA, APA, IEEE, CSE, or any of 10,000+ CSL styles).",
      "tags": [
        "citation",
        "formatting",
        "csl",
        "bibliography",
        "reference"
      ],
      "rest": "POST /api/format",
      "mcpTool": "formatCitation",
      "batch": true
    },
    {
      "id": "export-citation",
      "name": "Export bibliography",
      "description": "Export resolved citations to a reference-manager file format (BibTeX, RIS, EndNote XML, RefWorks, NBIB, Zotero RDF, CSL-JSON, CSV).",
      "tags": [
        "bibliography",
        "export",
        "bibtex",
        "ris",
        "reference-manager"
      ],
      "rest": "POST /api/export",
      "mcpTool": "exportCitation",
      "batch": true
    },
    {
      "id": "check-retraction",
      "name": "Check retraction",
      "description": "Check a work's retraction / correction / expression-of-concern status (Crossref updated-by / Retraction Watch).",
      "tags": [
        "retraction",
        "research-integrity",
        "crossref",
        "correction"
      ],
      "rest": "POST /api/retraction-check",
      "mcpTool": "checkRetraction",
      "batch": false
    },
    {
      "id": "check-open-access",
      "name": "Check open access",
      "description": "Check open-access status and the best legal full-text URL (Unpaywall).",
      "tags": [
        "open-access",
        "unpaywall",
        "full-text",
        "license"
      ],
      "rest": "POST /api/oa-check",
      "mcpTool": "checkOpenAccess",
      "batch": false
    },
    {
      "id": "verify-citation",
      "name": "Verify citation",
      "description": "Check whether a claimed citation matches the record at its identifier — catches the real-DOI + fabricated-title pattern.",
      "tags": [
        "verification",
        "citation-integrity",
        "fabrication",
        "hallucination"
      ],
      "rest": "POST /api/verify",
      "mcpTool": "verifyCitation",
      "batch": false
    }
  ],
  "authentication": {
    "anonymous": true,
    "schemes": [
      {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "ssk_"
      },
      {
        "type": "apiKey",
        "name": "X-RapidAPI-Key",
        "in": "header"
      }
    ],
    "note": "Anonymous access is available at the lowest rate-limit tier. For higher limits, create a free first-party key at https://scholar-sidekick.com/account and send it as `Authorization: Bearer ssk_…`. The RapidAPI gateway (X-RapidAPI-Key) serves paid/managed tiers."
  },
  "safety": {
    "determinism": "Identical inputs (identifier + style + format) at a fixed transform_version produce byte-identical output.",
    "transformVersionHeader": "x-scholar-transform-version",
    "networkSafety": "Outbound fetches are HTTPS-only, host-allowlisted, timeout-bounded, and size-capped. No arbitrary user URLs.",
    "sources": "https://scholar-sidekick.com/.well-known/sources.json"
  },
  "links": {
    "docs": "https://scholar-sidekick.com/docs",
    "openapi": "https://scholar-sidekick.com/.well-known/openapi.yaml",
    "mcpCard": "https://scholar-sidekick.com/.well-known/mcp.json",
    "apiCatalog": "https://scholar-sidekick.com/.well-known/api-catalog",
    "sources": "https://scholar-sidekick.com/.well-known/sources.json",
    "verification": "https://scholar-sidekick.com/verification.md",
    "llms": "https://scholar-sidekick.com/llms.txt",
    "repository": "https://github.com/mlava/scholar-sidekick-mcp"
  }
}
