Skip to content

io.github.cyanheads/reference-data-mcp-server

by cyanheads · remote · local (npm) · no sign-in to list tools · v0.1.17 · published by GitHub user cyanheads

Countries, timezones, elements, constants, HTTP status codes, unit conversion, and MIME type lookup.

Final · 1Changes · 2

10 tools: 1 do something that can't be undone, 2 change things and 7 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http reference-data https://reference-data.caseyjhand.com/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "ref_timezone_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "ref_timezone_convert" says "convert": a word for a change.

    What this check looks for
  • The server marks "ref_unit_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "ref_unit_convert" says "convert": a word for a change.

    What this check looks for
  • The server marks "ref_mime_type" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "ref_mime_type" says "type": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Can't be undone 1Claude Code: ask
  • ref_unit_convertConvert a numeric value between compatible units of measure.1 finding

    Why it is in this group

    • The name "ref_unit_convert" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "ref_unit_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "ref_unit_convert" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert a numeric value between compatible units of measure. Supports: length (mm, cm, m, km, in, ft, yd, mi), mass (mcg, mg, g, kg, oz, lb, mt = metric tonne / 1000 kg, t = US short ton / 907.18 kg), volume (ml, cl, dl, l, kl, tsp, Tbs, fl-oz, cup, pnt, qt, gal, m3), temperature (C, F, K, R — non-linear conversions handled), speed (m/s, km/h, knot, ft/s), pressure (Pa, kPa, MPa, hPa, bar, torr, psi), energy (J, kJ, Wh, kWh, MWh), power (W, mW, kW, MW, GW), frequency (Hz, kHz, MHz, GHz), digital storage (b, Kb, Mb, Gb, Tb, B, KB, MB, GB, TB), and angle (deg, rad, grad). Incompatible units (e.g., km to kg) return an error identifying the quantity mismatch.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
Changes things 2Claude Code: ask
  • ref_mime_typeLook up a MIME type by type string or file extension.1 finding

    Why it is in this group

    • The name "ref_mime_type" says "type": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "ref_mime_type" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "ref_mime_type" says "type": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Look up a MIME type by type string or file extension. Accepts "image/webp", ".webp", or "webp". Returns the canonical MIME type, known file extensions, whether the type is compressible (relevant for Content-Encoding decisions), and the data source (iana, apache, nginx). For extension lookups, returns the canonical MIME type — e.g., ".jpg" resolves to "image/jpeg". When multiple types map to an extension, the canonical type is returned first with alternatives listed.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • ref_timezone_convertConvert a local datetime from one timezone to another.1 finding

    Why it is in this group

    • The name "ref_timezone_convert" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "ref_timezone_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "ref_timezone_convert" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert a local datetime from one timezone to another. Takes a local time string (no UTC offset, e.g., "2026-05-24T15:30:00") interpreted as local time in the source timezone, returns the equivalent local time in the target timezone. Shows both UTC offsets so DST transitions are visible. Accepts full IANA IDs (e.g., "Asia/Tokyo") or unambiguous city names (e.g., "Tokyo").

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
Only reads 7Claude Code: allow
  • ref_constant_lookupLook up a fundamental physical constant by name, symbol, or common alias.No findings

    Why it is in this group

    • The name "ref_constant_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Look up a fundamental physical constant by name, symbol, or common alias. Returns the CODATA 2022 value, SI unit expression, relative standard uncertainty, and a short description. Recognizes common names and symbols — "speed of light", "c", "Avogadro's number", "N_A", "Planck", "h", "Boltzmann", "k_B" all resolve correctly. Fuzzy matching returns the closest match plus alternatives.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • ref_element_lookupLook up a periodic table element by name, chemical symbol, or atomic number.No findings

    Why it is in this group

    • The name "ref_element_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Look up a periodic table element by name, chemical symbol, or atomic number. Returns the full data record: atomic number, symbol, name, atomic mass (in unified atomic mass units), electron configuration, group, period, block, category (e.g., "noble gas", "transition metal"), Pauling electronegativity, density (g/cm³), melting and boiling points in kelvin, and discovery year. Properties unavailable for synthetic or insufficiently studied elements are returned as null.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • ref_geo_lookupLook up a country by name, ISO alpha-2 code (2 letters), or ISO alpha-3 code (3 letters).No findings

    Why it is in this group

    • The name "ref_geo_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Look up a country by name, ISO alpha-2 code (2 letters), or ISO alpha-3 code (3 letters). Returns the full record: capital, region, official languages, currencies, calling codes, TLD, flag emoji, and IANA timezone IDs. Accepts fuzzy name matching — "Brasil" and "Brazil" both resolve.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • ref_http_statusLook up an HTTP status code by number or keyword.No findings

    Why it is in this group

    • The name "ref_http_status" says "status": a word for reading.
    Description, as the server wrote it
    Look up an HTTP status code by number or keyword. Returns the reason phrase, description, category (1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, 5xx Server Error), whether the code is cacheable by default, and the defining RFC with section reference. For keyword queries, returns the closest match plus alternatives.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • ref_timezone_lookupGet timezone info by IANA ID, country code, or partial city/region name.No findings

    Why it is in this group

    • The name "ref_timezone_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Get timezone info by IANA ID, country code, or partial city/region name. Returns current UTC offset, standard offset, whether DST is currently active, and major cities in the timezone. When querying by country code (ISO alpha-2), returns all timezones observed in that country. Accepts partial matches — "Tokyo" resolves to "Asia/Tokyo", "NY" resolves to "America/New_York".

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.17. Values in angle brackets are yours to fill in.

claude mcp add --transport http reference-data https://reference-data.caseyjhand.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__reference-data__ref_geo_lookup",
      "mcp__reference-data__ref_geo_search",
      "mcp__reference-data__ref_timezone_lookup",
      "mcp__reference-data__ref_element_lookup",
      "mcp__reference-data__ref_element_search",
      "mcp__reference-data__ref_constant_lookup",
      "mcp__reference-data__ref_http_status"
    ],
    "ask": [
      "mcp__reference-data__ref_timezone_convert",
      "mcp__reference-data__ref_unit_convert",
      "mcp__reference-data__ref_mime_type"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as reference-data. Review it before you use it.