Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Countries, timezones, elements, constants, HTTP status codes, unit conversion, and MIME type lookup.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MCP_LOG_LEVELYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://reference-data.caseyjhand.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"reference-data": {
"command": "npx",
"args": [
"-y",
"@cyanheads/reference-data-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http reference-data https://reference-data.caseyjhand.com/mcpclaude mcp add reference-data --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/reference-data-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"reference-data": {
"url": "https://reference-data.caseyjhand.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"reference-data": {
"command": "npx",
"args": [
"-y",
"@cyanheads/reference-data-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"reference-data": {
"type": "http",
"url": "https://reference-data.caseyjhand.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"reference-data": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/reference-data-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://reference-data.caseyjhand.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
MCP_LOG_LEVEL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 7, 2026. The maker wrote them, not us; we show them as plain text.
ref_geo_lookupLook 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 reso
ref_geo_searchSearch 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.
ref_timezone_lookupGet 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. Ac
ref_timezone_convertConvert 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
ref_element_lookupLook 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"), Paul
ref_element_searchFilter 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, al
ref_constant_lookupLook 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",
ref_unit_convertConvert 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
ref_http_statusLook 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 key
ref_mime_typeLook 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 exten
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account cyanheads, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 244 ms (HTTP 200)
No sign-in needed
Read 10 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 10 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Winecellarbuilders
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find the team for your wine room.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
@cyanheads/reference-data-mcp-server Look up countries, timezones, periodic table elements, physical constants, units, HTTP status codes, and MIME types via MCP. STDIO or Streamable HTTP. 10 Tools • 3 Reference Resource Families • 1 Agent Skill
Public Hosted Server: https://reference-data.caseyjhand.com/mcp
Countries, timezones, periodic table elements, physical constants, units, HTTP status codes, and MIME types in one place. Look up, search, and convert across all of them, entirely offline with no API keys or rate limits.
| Tool | Description |
|---|---|
ref_geo_lookup | Look up a country by name, ISO alpha-2, or alpha-3 code. |
ref_geo_search | Search and filter countries by region, subregion, language, or currency. |
ref_timezone_lookup | Get timezone info by IANA ID, country code, or city name. |
ref_timezone_convert | Convert a local datetime from one timezone to another. |
ref_element_lookup | Look up a periodic table element by name, symbol, or atomic number. |
ref_element_search | Filter periodic table elements by category, group, period, or property range. |
ref_constant_lookup | Look up a CODATA 2022 physical constant by name, symbol, or alias. |
ref_unit_convert | Convert a numeric value between compatible units of measure. |
ref_http_status | Look up an HTTP status code by number or keyword. |
ref_mime_type | Look up a MIME type by type string or file extension. |
| Resource | Description |
|---|---|
ref://countries/{alpha2} | Full country record by ISO alpha-2 code. |
ref://elements/{number} | Full element record by atomic number. |
ref://timezones/{iana_id} | Timezone info by IANA ID (slashes percent-encoded as %2F). |
skill://reference-data-guide/SKILL.md | Agent guide for resolving locations and converting meeting times across DST transitions. |
The three reference families use four URI template routes: countries, elements, encoded timezone IDs, and an unencoded-timezone-slash route that returns retry guidance. The guide is a separate skill resource.
Reference data is also reachable via tools — use ref_geo_lookup, ref_element_lookup, and ref_timezone_lookup when you need flexible query modes or country search.
The reference-data guide is included in plugin installs and available through MCP resource discovery or the Skills extension (skills/list and skills/get). It covers location resolution, repeated-hour disambiguation, and search-completeness gates.
ref_geo_lookup toolauto (alpha2 → alpha3 → name), name, alpha2, alpha3; numeric ISO codes are not supportedref_geo_search toolno_filters error otherwise): keyword (name, native name, capital, subregion), region, subregion, language (ISO 639-1 code or name), or currency (ISO 4217 code or name)truncated flag and totalMatches count when results are cut offref_timezone_lookup toolauto (IANA ID → country code → city name), iana, country; partial city matching ("Tokyo" → "Asia/Tokyo", "NY" → "America/New_York")at (ISO 8601) evaluates DST state at a specific moment instead of now; malformed values raise invalid_atref_timezone_convert tooldatetime must be a local ISO 8601 string without an offset (regex-enforced, e.g. 2026-05-24T15:30:00); from_tz/to_tz accept full IANA IDs or unambiguous city namesinvalid_datetime; unrecognized zones as invalid_timezoneref_element_lookup toolauto (atomic number → symbol → name), name, symbol, numberatomic_mass_estimated flag), electron configuration, group/period/block, category, Pauling electronegativity, density, melting/boiling points in kelvin, phase at STP, radioactivity, natural occurrence, discovery datanull for experimentally inaccessible propertiesref_element_search toolno_filters error otherwise): category (partial match), group (1–18), period (1–7), atomic-number range, or atomic-mass rangetotalMatches count and a notice when nothing matchesref_constant_lookup toolmatch_strategy discriminates how the query resolved: exact_symbol, exact_name, or fuzzy (closest candidate — verify before reuse)exact flag for defined constants), CODATA identifier, and up to 3 related constantsref_unit_convert toolmt is the metric tonne (1000 kg); t is the US short ton (907.18 kg) — distinct units, easily confusedincompatible_units (mismatched quantities), unknown_unit (unrecognized abbreviation), below_absolute_zero (with the Kelvin equivalent)ref_http_status toolref_mime_type toolref://countries/{alpha2} resourceapplication/json — same fields as ref_geo_lookupalpha2 accepts either case; an unmatched code returns a notFound errorref://elements/{number} resourceapplication/json — same fields as ref_element_lookupnumber must be an integer string 1–118; out-of-range or unmatched values return notFoundref://timezones/{iana_id} resourceapplication/json — same fields as ref_timezone_lookup, plus evaluated_at%2F (e.g. America%2FNew_York); an unencoded slash matches a separate catch-all that returns an actionable error with the correctly encoded URIBuilt on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
Reference-data-specific:
Agent-friendly output:
reason codes (no_match, no_filters, unknown_unit, incompatible_units, below_absolute_zero, invalid_timezone, invalid_datetime, invalid_at) with actionable recovery hintstruncated flag on search results, alternatives arrays on MIME/HTTP keyword matches, atomic_mass_estimated flag on element data, match_strategy on constant lookupsnull for genuinely unknown or inapplicable values rather than absent fieldsA public instance is available at https://reference-data.caseyjhand.com/mcp — no installation required. It serves Streamable HTTP; each client takes its own config shape.
For Claude Code:
claude mcp add --transport http reference-data-mcp-server https://reference-data.caseyjhand.com/mcp
For Cline (cline_mcp_settings.json):
{
"mcpServers": { "reference-data-mcp-server": { "type": "streamableHttp", "url": "https://reference-data.caseyjhand.com/mcp" } } }
For Cursor (mcp.json):
{
"mcpServers": { "reference-data-mcp-server": { "url": "https://reference-data.caseyjha
Only the beginning is shown; read the rest in the repo