reference-data-mcp-server

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

Should I use this

Quality & Safety

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

Findings (1)

  • LOWTool 'ref_http_status' suggests web access but openWorldHint=falsein ref_http_status

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~9,128Tokens (tool definitions)
~10.1 KBTypical response size
Significant attention impact (7.13% 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": {
    "reference-data-mcp-server": {
      "command": "bun",
      "args": [
        "@cyanheads/reference-data-mcp-server"
      ]
    }
  }
}

Runnable packages

npm@cyanheads/reference-data-mcp-server0.1.16streamable-http

Remote endpoints

https://reference-data.caseyjhand.com/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸขref_geo_lookup(query, by)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Country name (e.g., \"Germany\"), ISO alpha-2 code (e.g., \"DE\"), or ISO alpha-3 code (e.g., \"DEU\")."
    },
    "by": {
      "default": "auto",
      "description": "Lookup strategy: auto tries alpha2, alpha3, then name in order.",
      "type": "string",
      "enum": [
        "auto",
        "name",
        "alpha2",
        "alpha3"
      ]
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "alpha2": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 code (2 letters)."
    },
    "alpha3": {
      "type": "string",
      "description": "ISO 3166-1 alpha-3 code (3 letters)."
    },
    "name": {
      "type": "string",
      "description": "Official English country name."
    },
    "native_name": {
      "type": "string",
      "description": "Country name in the primary native language."
    },
    "capital": {
      "description": "Capital city name, or null if not applicable (e.g., Antarctica).",
      "type": [
        "string",
        "null"
      ]
    },
    "region": {
      "type": "string",
      "description": "Continent-level region (Africa, Americas, Asia, Europe, Oceania, Antarctic)."
    },
    "subregion": {
      "description": "Subregion within the continent (e.g., \"Western Europe\"), or null if unavailable.",
      "type": [
        "string",
        "null"
      ]
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g., \"en\")."
          },
          "name": {
            "type": "string",
            "description": "English name of the language."
          }
        },
        "required": [
          "code",
          "name"
        ],
        "additionalProperties": false,
        "description": "Language spoken in the country."
      },
      "description": "Official or widely spoken languages in the country."
    },
    "currencies": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "ISO 4217 currency code (e.g., \"USD\")."
          },
          "name": {
            "type": "string",
            "description": "Full currency name."
          },
          "symbol": {
            "description": "Currency symbol (e.g., \"$\"), or null if unknown.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "name",
          "symbol"
        ],
        "additionalProperties": false,
        "description": "Currency used in the country."
      },
      "description": "Currencies used in the country."
    },
    "calling_codes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "International dialing codes with leading + (e.g., \"+1\", \"+44\")."
    },
    "tld": {
      "description": "Country-code top-level domain (e.g., \".de\"), or null if not applicable.",
      "type": [
        "string",
        "null"
      ]
    },
    "flag": {
      "type": "string",
      "description": "Flag emoji (e.g., ๐Ÿ‡ฉ๐Ÿ‡ช)."
    },
    "timezones": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "IANA timezone IDs observed in this country (e.g., \"America/New_York\")."
    },
    "notice": {
      "description": "Present only when the country was resolved via fuzzy name matching (starts-with or contains), not an exact code or name hit. Echoes the query and the resolved country so the caller can normalize follow-up lookups.",
      "type": "string"
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No country matched the query. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_match"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "alpha2",
        "alpha3",
        "name",
        "native_name",
        "capital",
        "region",
        "subregion",
        "languages",
        "currencies",
        "calling_codes",
        "tld",
        "flag",
        "timezones"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_geo_search(keyword, region, subregion, language, currency, ...)

Search and filter countries by region, subregion, language, currency, or free-text keyword. At least one filter is required. Returns a ranked list of matching country summaries. Use ref_geo_lookup to get the full record for a specific result.

Input Schema

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Matches against country name, native name, capital city, and subregion.",
      "type": "string"
    },
    "region": {
      "description": "Filter by continent region: Africa, Americas, Asia, Europe, Oceania, or Antarctic.",
      "type": "string"
    },
    "subregion": {
      "description": "Filter by subregion (e.g., \"Western Europe\", \"Southeast Asia\", \"South America\").",
      "type": "string"
    },
    "language": {
      "description": "ISO 639-1 language code (e.g., \"pt\") or language name (e.g., \"Portuguese\").",
      "type": "string"
    },
    "currency": {
      "description": "ISO 4217 currency code (e.g., \"EUR\") or currency name (e.g., \"Euro\").",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of results to return (1โ€“100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "alpha2": {
            "type": "string",
            "description": "ISO alpha-2 code."
          },
          "alpha3": {
            "type": "string",
            "description": "ISO alpha-3 code."
          },
          "name": {
            "type": "string",
            "description": "English country name."
          },
          "capital": {
            "description": "Capital city, or null if not applicable.",
            "type": [
              "string",
              "null"
            ]
          },
          "region": {
            "type": "string",
            "description": "Continent-level region."
          },
          "currency_code": {
            "description": "Primary currency ISO 4217 code.",
            "type": [
              "string",
              "null"
            ]
          },
          "flag": {
            "type": "string",
            "description": "Flag emoji."
          }
        },
        "required": [
          "alpha2",
          "alpha3",
          "name",
          "capital",
          "region",
          "currency_code",
          "flag"
        ],
        "additionalProperties": false,
        "description": "Summary for a matching country."
      },
      "description": "Matching country summaries, up to limit."
    },
    "totalMatches": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Total countries matching the filters before limit is applied."
    },
    "truncated": {
      "type": "boolean",
      "description": "True when totalMatches exceeds the limit and results are cut off."
    },
    "appliedFilters": {
      "type": "object",
      "properties": {
        "keyword": {
          "description": "Keyword filter applied.",
          "type": "string"
        },
        "region": {
          "description": "Region filter applied.",
          "type": "string"
        },
        "subregion": {
          "description": "Subregion filter applied.",
          "type": "string"
        },
        "language": {
          "description": "Language filter applied.",
          "type": "string"
        },
        "currency": {
          "description": "Currency filter applied.",
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Result limit applied."
        }
      },
      "required": [
        "limit"
      ],
      "additionalProperties": false,
      "description": "Active filters applied to the search."
    },
    "notice": {
      "description": "Recovery hint when no countries matched โ€” echoes active filters and suggests how to broaden.",
      "type": "string"
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_filters`: No filter or keyword was provided. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_filters"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "results",
        "totalMatches",
        "truncated",
        "appliedFilters"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_timezone_lookup(query, by, at)

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".

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "IANA timezone ID (e.g., \"America/New_York\"), ISO alpha-2 country code (e.g., \"US\"), or partial city/region name (e.g., \"Tokyo\", \"London\")."
    },
    "by": {
      "default": "auto",
      "description": "Lookup mode: iana for exact IANA ID, country for ISO alpha-2 code, auto tries all strategies.",
      "type": "string",
      "enum": [
        "iana",
        "country",
        "auto"
      ]
    },
    "at": {
      "description": "ISO 8601 datetime to evaluate timezone state at a specific moment (e.g., \"2026-01-15T12:00:00\"). Defaults to current time.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "timezones": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "iana_id": {
            "type": "string",
            "description": "IANA timezone identifier (e.g., \"America/New_York\")."
          },
          "current_offset_hours": {
            "type": "number",
            "description": "Current UTC offset in hours (e.g., -5.0 for UTC-05:00)."
          },
          "standard_offset_hours": {
            "type": "number",
            "description": "Standard (non-DST) UTC offset in hours."
          },
          "dst_active": {
            "type": "boolean",
            "description": "Whether daylight saving time is currently active."
          },
          "dst_abbreviation": {
            "description": "DST timezone abbreviation (e.g., \"EDT\"), or null when DST not active or timezone has no DST.",
            "type": [
              "string",
              "null"
            ]
          },
          "standard_abbreviation": {
            "description": "Standard timezone abbreviation (e.g., \"EST\").",
            "type": [
              "string",
              "null"
            ]
          },
          "major_cities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Major cities in this timezone."
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "ISO alpha-2 country codes observing this timezone."
          }
        },
        "required": [
          "iana_id",
          "current_offset_hours",
          "standard_offset_hours",
          "dst_active",
          "dst_abbreviation",
          "standard_abbreviation",
          "major_cities",
          "countries"
        ],
        "additionalProperties": false,
        "description": "Timezone record with offset and DST info."
      },
      "description": "Matching timezone records. Multiple records when querying by country."
    },
    "evaluated_at": {
      "type": "string",
      "description": "ISO 8601 UTC datetime at which timezone state was evaluated."
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No timezone matched the query. `invalid_at`: The at parameter is not a valid ISO 8601 datetime string. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_match",
                "invalid_at"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "timezones",
        "evaluated_at"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_timezone_convert(datetime, from_tz, to_tz)

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").

Input Schema

{
  "type": "object",
  "properties": {
    "datetime": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$",
      "description": "Local datetime in ISO 8601 format without timezone offset (e.g., \"2026-05-24T15:30:00\"). Do not include \"Z\" or an offset suffix."
    },
    "from_tz": {
      "type": "string",
      "description": "Source IANA timezone ID or unambiguous city name (e.g., \"Asia/Tokyo\" or \"Tokyo\")."
    },
    "to_tz": {
      "type": "string",
      "description": "Target IANA timezone ID or unambiguous city name (e.g., \"America/New_York\" or \"New York\")."
    }
  },
  "required": [
    "datetime",
    "from_tz",
    "to_tz"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "object",
      "properties": {
        "datetime": {
          "type": "string",
          "description": "Input local datetime echoed back (e.g., \"2026-05-24T15:30:00\")."
        },
        "tz": {
          "type": "string",
          "description": "Resolved source IANA timezone ID."
        },
        "offset": {
          "type": "string",
          "description": "UTC offset at the source datetime (e.g., \"+09:00\")."
        }
      },
      "required": [
        "datetime",
        "tz",
        "offset"
      ],
      "additionalProperties": false,
      "description": "Source datetime details."
    },
    "target": {
      "type": "object",
      "properties": {
        "datetime": {
          "type": "string",
          "description": "Equivalent local datetime in the target timezone."
        },
        "tz": {
          "type": "string",
          "description": "Resolved target IANA timezone ID."
        },
        "offset": {
          "type": "string",
          "description": "UTC offset in the target timezone at the converted moment."
        }
      },
      "required": [
        "datetime",
        "tz",
        "offset"
      ],
      "additionalProperties": false,
      "description": "Target datetime details."
    },
    "utc_equivalent": {
      "type": "string",
      "description": "The UTC equivalent of the input datetime (ISO 8601 with Z suffix)."
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `invalid_timezone`: Source or target timezone ID is unrecognized. `invalid_datetime`: Datetime has out-of-range calendar components (e.g. month 13, February 30) or falls in a daylight-saving spring-forward gap that never occurs in the source timezone. (Malformed format is rejected by the input schema.). Other values are possible when a failure originates below the handler.",
              "examples": [
                "invalid_timezone",
                "invalid_datetime"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "source",
        "target",
        "utc_equivalent"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_element_lookup(query, by)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Element name (e.g., \"tungsten\"), chemical symbol (e.g., \"W\"), or atomic number as a string (e.g., \"74\")."
    },
    "by": {
      "default": "auto",
      "description": "Lookup mode: auto tries atomic number, then symbol, then name.",
      "type": "string",
      "enum": [
        "auto",
        "name",
        "symbol",
        "number"
      ]
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "number": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Atomic number (proton count)."
    },
    "symbol": {
      "type": "string",
      "description": "Chemical symbol (e.g., \"Fe\")."
    },
    "name": {
      "type": "string",
      "description": "IUPAC element name."
    },
    "atomic_mass": {
      "description": "Standard atomic mass in unified atomic mass units (u). Null for unstable elements with no standard mass.",
      "type": [
        "number",
        "null"
      ]
    },
    "atomic_mass_estimated": {
      "type": "boolean",
      "description": "True when the atomic mass is estimated or based on the most stable isotope rather than a natural abundance average."
    },
    "electron_configuration": {
      "type": "string",
      "description": "Electron configuration using noble gas shorthand (e.g., \"[Ar] 3d6 4s2\")."
    },
    "group": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Periodic table group number (1โ€“18). Null for lanthanides and actinides."
    },
    "period": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Periodic table period number (1โ€“7)."
    },
    "block": {
      "type": "string",
      "description": "Electron block: s, p, d, or f."
    },
    "category": {
      "type": "string",
      "description": "Element category (e.g., \"transition metal\", \"noble gas\", \"lanthanide\")."
    },
    "electronegativity_pauling": {
      "description": "Pauling electronegativity scale value. Null for noble gases and heavy synthetic elements.",
      "type": [
        "number",
        "null"
      ]
    },
    "density_g_per_cm3": {
      "description": "Density in grams per cubic centimeter at STP. Null for synthetic or poorly studied elements.",
      "type": [
        "number",
        "null"
      ]
    },
    "melting_point_k": {
      "description": "Melting point in kelvin at standard pressure. Null for unstable or synthetic elements.",
      "type": [
        "number",
        "null"
      ]
    },
    "boiling_point_k": {
      "description": "Boiling point in kelvin at standard pressure. Null for unstable or synthetic elements.",
      "type": [
        "number",
        "null"
      ]
    },
    "discovery_year": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Year of discovery. Null for elements known since antiquity."
    },
    "discovery_scientists": {
      "description": "Scientist(s) credited with discovery. Null for elements known since antiquity.",
      "type": [
        "string",
        "null"
      ]
    },
    "appearance": {
      "description": "Physical appearance description. Null for synthetic elements not macroscopically observed.",
      "type": [
        "string",
        "null"
      ]
    },
    "phase_at_stp": {
      "type": "string",
      "description": "Phase at standard temperature and pressure: Solid, Liquid, or Gas."
    },
    "radioactive": {
      "type": "boolean",
      "description": "True if all isotopes are radioactive (no stable isotopes)."
    },
    "natural": {
      "type": "boolean",
      "description": "True if the element occurs naturally on Earth."
    },
    "dataset_version": {
      "type": "string",
      "description": "Data source version identifier."
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No element matched the query. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_match"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "number",
        "symbol",
        "name",
        "atomic_mass",
        "atomic_mass_estimated",
        "electron_configuration",
        "group",
        "period",
        "block",
        "category",
        "electronegativity_pauling",
        "density_g_per_cm3",
        "melting_point_k",
        "boiling_point_k",
        "discovery_year",
        "discovery_scientists",
        "appearance",
        "phase_at_stp",
        "radioactive",
        "natural",
        "dataset_version"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_element_search(category, group, period, atomic_number_range, atomic_mass_range)

Filter periodic table elements by category, group, period, atomic number range, or atomic mass range. At least one filter is required. Returns matching elements as a summary list. Use ref_element_lookup for the full record on a specific element. Valid categories: alkali metal, alkaline earth metal, transition metal, post-transition metal, metalloid, reactive nonmetal, noble gas, lanthanide, actinide.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "description": "Element category (partial match): alkali metal, alkaline earth metal, transition metal, post-transition metal, metalloid, reactive nonmetal, noble gas, lanthanide, actinide.",
      "type": "string"
    },
    "group": {
      "description": "Periodic table group number (1โ€“18). Lanthanides and actinides have no group.",
      "type": "integer",
      "minimum": 1,
      "maximum": 18
    },
    "period": {
      "description": "Periodic table period (1โ€“7).",
      "type": "integer",
      "minimum": 1,
      "maximum": 7
    },
    "atomic_number_range": {
      "description": "Inclusive range of atomic numbers to include.",
      "type": "object",
      "properties": {
        "min": {
          "type": "number",
          "description": "Minimum value (inclusive)."
        },
        "max": {
          "type": "number",
          "description": "Maximum value (inclusive)."
        }
      },
      "required": [
        "min",
        "max"
      ]
    },
    "atomic_mass_range": {
      "description": "Inclusive range of atomic mass in unified atomic mass units.",
      "type": "object",
      "properties": {
        "min": {
          "type": "number",
          "description": "Minimum value (inclusive)."
        },
        "max": {
          "type": "number",
          "description": "Maximum value (inclusive)."
        }
      },
      "required": [
        "min",
        "max"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Atomic number."
          },
          "symbol": {
            "type": "string",
            "description": "Chemical symbol."
          },
          "name": {
            "type": "string",
            "description": "IUPAC element name."
          },
          "atomic_mass": {
            "description": "Atomic mass in unified atomic mass units. Null for unstable elements.",
            "type": [
              "number",
              "null"
            ]
          },
          "atomic_mass_estimated": {
            "type": "boolean",
            "description": "True when the atomic mass is estimated."
          },
          "category": {
            "type": "string",
            "description": "Element category."
          }
        },
        "required": [
          "number",
          "symbol",
          "name",
          "atomic_mass",
          "atomic_mass_estimated",
          "category"
        ],
        "additionalProperties": false,
        "description": "Summary for a matching element."
      },
      "description": "Matching element summaries."
    },
    "totalMatches": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Number of elements matching all filters."
    },
    "appliedFilters": {
      "type": "object",
      "properties": {
        "category": {
          "description": "Category filter applied.",
          "type": "string"
        },
        "group": {
          "description": "Group filter applied.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "period": {
          "description": "Period filter applied.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "atomic_number_range": {
          "description": "Atomic number range applied.",
          "type": "object",
          "properties": {
            "min": {
              "type": "number",
              "description": "Minimum value (inclusive)."
            },
            "max": {
              "type": "number",
              "description": "Maximum value (inclusive)."
            }
          },
          "required": [
            "min",
            "max"
          ],
          "additionalProperties": false
        },
        "atomic_mass_range": {
          "description": "Atomic mass range applied.",
          "type": "object",
          "properties": {
            "min": {
              "type": "number",
              "description": "Minimum value (inclusive)."
            },
            "max": {
              "type": "number",
              "description": "Maximum value (inclusive)."
            }
          },
          "required": [
            "min",
            "max"
          ],
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "description": "Active filters applied to the search."
    },
    "notice": {
      "description": "Recovery hint when no elements matched โ€” echoes active filters and suggests how to broaden.",
      "type": "string"
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_filters`: No filter was provided. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_filters"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "results",
        "totalMatches",
        "appliedFilters"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_constant_lookup(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Constant name, symbol, or common alias (e.g., \"speed of light\", \"c\", \"Avogadro\", \"N_A\", \"Planck constant\", \"h\")."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Full CODATA constant name."
    },
    "symbol": {
      "type": "string",
      "description": "Standard mathematical symbol."
    },
    "value": {
      "type": "number",
      "description": "Numeric value in SI units."
    },
    "unit": {
      "type": "string",
      "description": "SI unit expression (e.g., \"m sโปยน\", \"J Kโปยน\", \"dimensionless\")."
    },
    "uncertainty": {
      "description": "Absolute standard uncertainty in SI units. Null for exactly-defined constants.",
      "type": [
        "number",
        "null"
      ]
    },
    "uncertainty_relative": {
      "description": "Relative standard uncertainty or \"exact (defined)\" for exact values.",
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": "string",
      "description": "Short description of the constant and its significance."
    },
    "codata_id": {
      "description": "CODATA identifier string, or null if not in CODATA registry.",
      "type": [
        "string",
        "null"
      ]
    },
    "exact": {
      "type": "boolean",
      "description": "True when the constant has an exact defined value (no experimental uncertainty)."
    },
    "match_strategy": {
      "type": "string",
      "enum": [
        "exact_symbol",
        "exact_name",
        "fuzzy"
      ],
      "description": "How this constant was matched: exact_symbol = case-sensitive symbol hit (e.g. \"G\"), exact_name = exact alias/name match, fuzzy = partial or contains match. fuzzy signals the query was imprecise and the result is the closest candidate."
    },
    "dataset_version": {
      "type": "string",
      "description": "Data source version (CODATA year)."
    },
    "related": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Related constant name."
          },
          "symbol": {
            "type": "string",
            "description": "Related constant symbol."
          }
        },
        "required": [
          "name",
          "symbol"
        ],
        "additionalProperties": false,
        "description": "A related constant that also matched the query."
      },
      "description": "Related constants that also matched the query."
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No constant matched the query. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_match"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "name",
        "symbol",
        "value",
        "unit",
        "uncertainty",
        "uncertainty_relative",
        "description",
        "codata_id",
        "exact",
        "match_strategy",
        "dataset_version",
        "related"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_unit_convert(value, from, to)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "value": {
      "type": "number",
      "description": "Numeric quantity to convert."
    },
    "from": {
      "type": "string",
      "description": "Source unit abbreviation (e.g., \"km\", \"C\", \"m/h\", \"kWh\", \"kg\")."
    },
    "to": {
      "type": "string",
      "description": "Target unit abbreviation (e.g., \"mi\", \"F\", \"m/s\", \"kJ\", \"lb\")."
    }
  },
  "required": [
    "value",
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "value": {
      "type": "number",
      "description": "Input value as provided."
    },
    "from_unit": {
      "type": "string",
      "description": "Source unit as recognized."
    },
    "to_unit": {
      "type": "string",
      "description": "Target unit as recognized."
    },
    "result": {
      "type": "number",
      "description": "Converted value (full precision float)."
    },
    "result_precision": {
      "type": "string",
      "description": "Human-readable rounded form of the result."
    },
    "measure": {
      "type": "string",
      "description": "Physical quantity being measured (e.g., \"length\", \"mass\", \"temperature\")."
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `incompatible_units`: The source and target units measure different physical quantities. `unknown_unit`: One or both units are not recognized by the underlying library. `below_absolute_zero`: The input temperature is below absolute zero (0 K = -273.15 ยฐC = -459.67 ยฐF). Other values are possible when a failure originates below the handler.",
              "examples": [
                "incompatible_units",
                "unknown_unit",
                "below_absolute_zero"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "value",
        "from_unit",
        "to_unit",
        "result",
        "result_precision",
        "measure"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_http_status(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Numeric status code (e.g., \"404\" or \"422\") or descriptive keyword (e.g., \"not found\", \"too many requests\", \"unprocessable\")."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "code": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "HTTP status code number."
    },
    "reason_phrase": {
      "type": "string",
      "description": "IANA reason phrase (e.g., \"Not Found\")."
    },
    "description": {
      "type": "string",
      "description": "Human-readable description of when and why this status is used."
    },
    "category": {
      "type": "string",
      "description": "Status code category (1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, 5xx Server Error)."
    },
    "cacheable": {
      "type": "boolean",
      "description": "Whether this status code is cacheable by default per RFC 9110."
    },
    "rfc": {
      "type": "string",
      "description": "Defining RFC (e.g., \"RFC 9110\")."
    },
    "rfc_section": {
      "description": "RFC section number (e.g., \"15.5.5\"), or null if not applicable.",
      "type": [
        "string",
        "null"
      ]
    },
    "alternatives": {
      "description": "Other status codes that matched the keyword query. Present only for keyword searches with multiple matches.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "HTTP status code."
          },
          "reason_phrase": {
            "type": "string",
            "description": "Reason phrase."
          },
          "category": {
            "type": "string",
            "description": "Status code category."
          }
        },
        "required": [
          "code",
          "reason_phrase",
          "category"
        ],
        "additionalProperties": false,
        "description": "An alternative HTTP status code that also matched."
      }
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No HTTP status code matched the query. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_match"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "code",
        "reason_phrase",
        "description",
        "category",
        "cacheable",
        "rfc",
        "rfc_section"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}
๐ŸŸขref_mime_type(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "MIME type string (e.g., \"application/json\", \"image/webp\") or file extension with or without leading dot (e.g., \".webp\", \"webp\", \"js\", \".html\")."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "Canonical MIME type string (e.g., \"image/jpeg\")."
    },
    "extensions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Known file extensions for this MIME type, without leading dots."
    },
    "compressible": {
      "description": "True when this type is compressible (e.g., text and JSON types); false when not; null when unknown.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "source": {
      "description": "Data source: \"iana\" (IANA registry), \"apache\", \"nginx\", or null.",
      "type": [
        "string",
        "null"
      ]
    },
    "alternatives": {
      "description": "Other MIME types that also map to the queried extension, when multiple types share the extension.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Alternative MIME type."
          },
          "source": {
            "description": "Data source for this type (e.g., \"iana\", \"apache\").",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "type",
          "source"
        ],
        "additionalProperties": false,
        "description": "An alternative MIME type mapping to the same extension."
      }
    },
    "error": {
      "description": "Present when the call failed. Absent on success.",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "JSON-RPC error code for this failure."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of what went wrong."
        },
        "data": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "description": "Machine-readable failure mode. Declared by this tool: `no_match`: The MIME type or file extension is not recognized. Other values are possible when a failure originates below the handler.",
              "examples": [
                "no_match"
              ]
            },
            "recovery": {
              "description": "Actionable next step for the caller.",
              "type": "object",
              "properties": {
                "hint": {
                  "type": "string"
                }
              },
              "required": [
                "hint"
              ],
              "additionalProperties": {}
            },
            "retryable": {
              "description": "Whether retrying may succeed.",
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": {}
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "anyOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "required": [
        "type",
        "extensions",
        "compressible",
        "source"
      ]
    },
    {
      "required": [
        "error"
      ]
    }
  ]
}

Recommended Prompts

search_research
Search for information about [topic] using reference-data-mcp-server
Expected tools: ref_geo_search
find_specific
Find [specific item] using reference-data-mcp-server
Expected tools: ref_geo_search

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools