mcpbeat Sign in

Paleobiology MCP Server

answering

Paleobiology MCP Server is answering right now. Last checked moments ago. 75 installs a week from npm. It exposes 7 tools. Last commit 25 Aug 2026.

Search fossil occurrences, taxon ranges, diversity through deep time, and the geologic time scale.

Installs per day peak 177 · avg 16 · +200% w/w
a month agotoday
Uptime history 25 days of history · worst day 99%
25 days agonow
100.0%
Uptime 24h
92 of 92 checks
7
Tools
read from the server
377 ms
Response time
average over 24h
75
Installs / week
npm and PyPI

Nothing serious here today

Today is the operative word: we check Paleobiology MCP Server every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 0 min ago.

run in your terminal
claude mcp add paleobiology-mcp-server --transport http https://paleobiology.caseyjhand.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "paleobiology-mcp-server": {
      "url": "https://paleobiology.caseyjhand.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.paleobiology-mcp-server]
url = "https://paleobiology.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "paleobiology-mcp-server": {
      "url": "https://paleobiology.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "paleobiology-mcp-server": {
      "url": "https://paleobiology.caseyjhand.com/mcp"
    }
  }
}

This one needs environment variables set before it will start: MCP_HTTP_HOST (The hostname for the HTTP server.), MCP_HTTP_PORT (The port to run the HTTP server on.), MCP_HTTP_ENDPOINT_PATH (The endpoint path for the MCP server.), MCP_AUTH_MODE (Authentication mode to use: 'none', 'jwt', or 'oauth'.), MCP_LOG_LEVEL (Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').). The author declared them in the registry entry; get the values from the project itself.

Available tools 7

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

paleobiology
paleobiology_dataframe_describe
List the tables and their columns staged on a DataCanvas by paleobiology_search_occurrences. Call this before paleobiology_dataframe_query to discover the exact table_name and column names to reference in SQL.
paleobiology_dataframe_query
Run a read-only SQL SELECT against occurrence result sets staged on a DataCanvas by paleobiology_search_occurrences. This is how you analyze a large fossil set without re-fetching it: count occurrences by early_interval, group by formation, country (cc), or accepted_name, or filter by a paleo/modern coordinate range. The classification column is JSON — roll up by rank with json_extract_string(classification, '$.family') (also $.phylum, $.class, $.order, $.genus). Staged rows are occurrences, so collection-only fields such as lithology are not present. Reference tables by the table_name that search_occurrences returned — call paleobiology_dataframe_describe first if you do not know the table or column names. SELECT only; writes and file-reading functions are rejected.
paleobiology_get_diversity
Compute a diversity / origination / extinction curve for a clade across geologic time, binned by period, epoch, or age — answers "plot dinosaur genus diversity across the Mesozoic." Pass a clade-inclusive base_name (or base_id, the same clade by resolved taxon id — exactly one of the two) and bound the span by a named interval (e.g. "Mesozoic") or a max_ma/min_ma range; choose what to count (genera, species, or families) and the bin resolution. The full bin set returns inline — a diversity series is a bounded set of geologic intervals — so you read the curve, the turnover, and the per-bin origination/extinction directly. Counts reflect SAMPLED diversity, biased by collection effort and rock availability, not true past diversity.
paleobiology_get_taxon
Resolve a taxon by name (e.g. "Tyrannosaurus") or by integer taxon_no to its accepted name, rank, higher classification, immediate parent, fossil occurrence count, and first/last appearance (FAD/LAD) range in millions of years — "when did this clade exist, and what is it." Run this first to resolve a name into the accepted name and taxon_no, then pass that id as base_id to paleobiology_search_occurrences, paleobiology_get_diversity, or paleobiology_search_collections for a clade-inclusive filter that carries no name ambiguity (the same id also appears as accepted_no on occurrence rows). Set show_children to also list immediate child taxa. PBDB taxonomy is opinionated and can differ from GBIF's backbone, so the accepted name may differ from the name you searched.
paleobiology_list_intervals
Look up the geologic time scale — eons, eras, periods, epochs, and ages with their absolute-age boundaries in millions of years (Ma) and nesting. This is the reference that grounds every temporal filter on the other tools and translates a named interval like "Late Cretaceous" to its 100.5–66.0 Ma boundaries (and back). Filter by a name substring, a Ma range (overlap match), and/or a level; call with no filters to browse the full scale. Browsing and every name on the bundled ICS international-scale snapshot are answered offline. A name the snapshot does not carry — the sub-stage and regional names that occurrence and collection rows report, such as "Late Maastrichtian" or "Lancian" — costs one PBDB lookup across its other time scales; the response names which source answered and which scale the interval belongs to.
paleobiology_search_collections
Find fossil collections (localities) by area and geologic time — "what has been dug up here, and from what rock." Each locality returns its location, age (named interval and Ma), formation and strata, lithology, depositional environment, and the count of co-occurring fossils. Filter by a clade-inclusive base_name (or base_id, the same clade by resolved taxon id), a named interval or max_ma/min_ma range, a lng/lat bounding box, a formation or lithology name, and/or an environment. Results page inline via limit/offset (the response discloses when more remain). Take a collection_no from a row and pass it — or the same bbox+interval — to paleobiology_search_occurrences to see the actual fauna found together.
paleobiology_search_occurrences
Search fossil occurrences filtered by taxon, geologic time, geography, and depositional environment — the flagship. Use base_name for a clade and all its descendants (what "Tyrannosaurus occurrences" usually means), base_id for that same clade by resolved taxon id, or taxon_name for an exact taxon. Bound the age by a named interval (e.g. "Maastrichtian") or a max_ma/min_ma range, and/or a lng/lat bounding box; scope to a single locality with collection_no (take it from a paleobiology_search_collections row). At least one filter is required — taxon, time, place, environment, or collection_no. Every row carries two distinct coordinate systems — modern lng/lat (where the rock is today) and paleo lng/lat (where the landmass sat at deposition) — plus the formation, age interval, and higher classification (phylum through genus); never plot a deep-time occurrence on a modern coastline. Resolve a name with paleobiology_get_taxon first if unsure. Broad queries return many rows: an inline preview answers the immediate question, and when the set outgrows that preview the matching occurrences — up to the per-call cap — stage on a DataCanvas (canvas_id + table_name, returned only then) for SQL via paleobiology_dataframe_query (count by interval, group by formation/country, map by region). The response reports how many occurrences matched in total, which rows this page covers, and the offset that reaches the next page — page through the whole match set with limit/offset.

Endpoints

URLTransportStateLatencyChecked
https://paleobiology.caseyjhand.com/mcp streamable-http answering 451 ms 0 min ago

Alternatives to Paleobiology MCP Server

same job, measured the same way
LatLng
by latlng-mcp

Geocoding, reverse geocoding, and places search for LatLng.

5 tools answering
C
USGS Earthquakes
by olyport

Real-time earthquake events from the US Geological Survey

3 tools answering
I
API Sorties MCP
by mabari2505

Search French events and things to do, built for AI agents — geo, city, date, category filters.

23 installs/wk local only
C
Tee Times
by loopgolf

Live golf tee time availability across US courses. Search by location, date, players, and price.

answering
Geocoding
by danishashko

Forward and reverse geocoding, place search, and distance via OpenStreetMap Nominatim. No key.

43 installs/wk local only
OpenStreetMap
by ni-c

Geocoding, walking/driving/cycling distances, route optimization, isochrones and POI search on OSM

106 installs/wk local only
StarHunt
by getstarhunt

Find engineers by what they build on GitHub. Search by technology, location and role.

answering
C
Geo
by thinair

Geocoding, routing, isochrones, traffic, weather, and place search for AI agents. 19 MCP tools.

answering

Paleobiology MCP Server — questions

Answers built from our own checks of this server.

What can Paleobiology MCP Server do?
It exposes 7 tools, read directly from the server on our last check. Among them: paleobiology_dataframe_describe, paleobiology_dataframe_query, paleobiology_get_diversity, paleobiology_get_taxon, paleobiology_list_intervals, paleobiology_search_collections and 1 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Paleobiology MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 377 ms. The bar chart above shows every period we have measured.
How do I connect Paleobiology MCP Server?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Paleobiology MCP Server need an API key?
No. Paleobiology MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 7 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Paleobiology MCP Server?
It answers our handshake in 377 ms on average, which is faster than 41% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Paleobiology MCP Server?
The npm package @cyanheads/paleobiology-mcp-server was installed 75 times in the last week. Week over week that is +200%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Paleobiology MCP Server open source?
Yes — it is published under the Apache-2.0 licence, written in TypeScript, 2 stars on GitHub and 5 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.