Macrostrat MCP Server
The Macrostrat MCP Server enables querying and analyzing geological data from the Macrostrat API using natural language. With this server, you can:
Access geologic units and stratigraphic columns based on geographic coordinates (latitude and longitude)
Retrieve standard geologic definitions and dictionaries for lithologies, minerals, timescales, and environments
Perform autocomplete searches for definitions (up to 100 matching results)
Get detailed information about specific minerals by element, name, or type
Obtain data about geological time periods based on age
Facilitate analysis of geologic data
Support natural language querying of geological information
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Macrostrat MCP ServerWhat rock formations are found near Denver, Colorado?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
macrostrat-mcp
MCP server for Macrostrat API
An MCP server providing access to the Macrostrat API from Claude Desktop, Claude Code, and any other MCP client.
npx -y macrostrat-mcpNo API key required — the Macrostrat API is free and public.
Overview
This Model Context Protocol (MCP) server enables AI assistants and applications to:
Query comprehensive geologic data and information provided by the Macrostrat API
Access geologic units, columns, minerals, timescales, and more
Get geologic map tiles that the LLM can interpret (questionable utility, but might be useful for some applications)
Analyze geologic data to improve geological understanding
Create graphics and perform data analysis from the data
Users can run queries using natural language.
Related MCP server: Qlik MCP Server
Sample Output
Q. What is the geologic history of Nashville, TN?
A. Let me check the geological data for Nashville's location.
View Result from find-units from macrostrat (local)
{
"lat": 36.1627,
"lng": -86.7816,
"responseType": "long"
}Geological History of Nashville, Tennessee
Mesoproterozoic Basement (1.6-1.1 billion years ago)
Igneous basement rocks (granite and rhyolite)
Part of the ancient North American craton
Early-Middle Cambrian (518-504 million years ago)
Rome Formation: Mixed carbonate-siliciclastic sediments
Shallow marine environment
Part of the developing continental shelf
Middle-Late Cambrian (504-498 million years ago)
Conasauga Formation: Limestone and mixed sediments
Continued marine deposition
Alternating limestone and shale indicating fluctuating sea levels
Late Cambrian-Early Ordovician (498-470 million years ago)
Knox Dolomite: Massive dolomite sequence
Extensive shallow marine platform
Up to 1,200 meters thick
Represents long period of stable marine conditions
Middle-Late Ordovician (470-443 million years ago) Several important formations:
Stones River Group (including Murfreesboro, Pierce, Lebanon Limestones)
Nashville Group (including Hermitage, Bigby-Cannon, Catheys Formations)
Primarily limestone deposits
Rich in fossils
Shallow marine environment
Multiple cycles of sea level change
Early-Middle Silurian (443-423 million years ago)
Brassfield through Decatur Formations
Continued marine limestone deposition
Various marine environments from shallow to deeper water
Middle Devonian-Early Mississippian (390-357 million years ago)
Pegram Formation through Chattanooga Shale
Shift to more clastic (shale) deposition
Chattanooga Shale represents deeper, oxygen-poor conditions
Early-Late Mississippian (357-331 million years ago) Several limestone formations:
Fort Payne Formation
Warsaw Limestone
St. Louis Limestone
Monteagle Limestone
Hartselle Formation
Return to carbonate platform conditions
Diverse marine environments
Cenozoic to Present
Long period of erosion and exposure
Development of the current landscape
Formation of the Nashville Dome structure
River and stream deposits
Key Features
The area was predominantly a marine environment for most of its geological history
Dominated by limestone formations indicating warm, shallow seas
Multiple cycles of sea level change
Rich fossil record, especially in Ordovician rocks
Part of the Nashville Dome structural feature
Long periods of erosion have removed younger rocks
Current topography shaped by differential erosion of various limestone units
Present Day Bedrock
The bedrock of Nashville today consists primarily of Ordovician limestone formations exposed at the surface, particularly the Stones River and Nashville Group limestones. These rocks are well exposed in many areas and have influenced the development of local karst topography, including caves and sinkholes that are common in the region.
Installation
Requires Node.js 20 or newer. No install step is needed — npx fetches the server on
first run.
Claude Desktop
Open your Claude Desktop configuration at:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server configuration:
{
"mcpServers": {
"macrostrat": {
"command": "npx",
"args": ["-y", "macrostrat-mcp"]
}
}
}Close/Quit then restart Claude Desktop
Once you restart you should see an icon for search and tools. Click this button to see the MCP tools available.
Claude Code
claude mcp add macrostrat -- npx -y macrostrat-mcpAny other MCP client
The server speaks MCP over STDIO. Run it with npx -y macrostrat-mcp, or install it
globally with npm install -g macrostrat-mcp and run macrostrat-mcp.
Development
npm install # install dependencies
npm run dev # run from source over STDIO, no build step
npm run build # compile TypeScript to build/
npm run typecheck # type-check without emittingsrc/server.ts holds all the tools, prompts, and API calls — that is the file to edit.
src/index.ts is just the STDIO entry point.
To point Claude Desktop at a local build instead of the published package, use
"command": "node" with "args": ["/full/path/to/macrostrat/build/index.js"], and
restart Claude Desktop after each rebuild.
Using it as a library
The server factory is exported if you want to attach a different transport:
import createServer from "macrostrat-mcp";
const server = createServer();
await server.connect(yourTransport);Troubleshooting
If Claude Desktop cannot find npx, provide its full path (on macOS, typically
/usr/local/bin/npx or /opt/homebrew/bin/npx). The same applies to node if you are
running a local build.
Available Tools
8 toolsdefsDefinitionsC
Routes giving access to standard fields and dictionaries used in Macrostrat
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | The endpoint to query | |
| parameters | Yes | parameters to pass to the endpoint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Routes giving access,' suggesting a read-only operation, but doesn't specify if it's a query, retrieval, or list action, nor does it cover aspects like rate limits, authentication needs, or response format. The description is too minimal to adequately inform behavior beyond basic access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function. It's front-loaded with the core purpose, though it could be more specific. There's no wasted text, making it appropriately concise for a simple tool, but it lacks depth that might be needed for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., data formats, structure) or provide behavioral context like error handling. For a tool accessing multiple endpoints, more detail on usage and outcomes is necessary to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear docs for 'endpoint' (including enum values) and 'parameters.' The description adds no additional meaning beyond the schema, such as explaining what 'parameters' might include or how endpoints differ. Baseline score of 3 is appropriate as the schema handles parameter documentation effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Routes giving access to standard fields and dictionaries used in Macrostrat,' which clarifies it provides access to data resources. However, it's vague about the specific action (e.g., querying, retrieving, or listing) and doesn't differentiate from siblings like 'defs-autocomplete' or 'mineral-info,' which may offer similar data access. The purpose is understandable but lacks precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'defs-autocomplete' for autocomplete features or 'mineral-info' for specific mineral data, leaving the agent without context for selection. Usage is implied only through the endpoint parameter, but no explicit when/when-not instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defs-autocompleteDefinitions AutocompleteB
Quickly retrieve all definitions matching a query. Limited to 100 results
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | the search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the result limit ('Limited to 100 results'), which is useful behavioral context. However, it lacks details on permissions, rate limits, error handling, or what 'definitions' refer to in this context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that efficiently convey the core functionality and a key constraint. Every word earns its place, and it's front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with one parameter and no output schema, the description is minimally adequate. It explains what the tool does and a limitation, but lacks context on what 'definitions' are, how results are formatted, or how it differs from siblings, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description for the 'query' parameter. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieve') and resource ('definitions matching a query'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'defs', 'find-columns', or 'find-units', which might have overlapping search functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'defs' or other search-related siblings. It mentions a result limit ('Limited to 100 results'), but this doesn't help the agent choose between tools in context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-columnsFind ColumnsB
Find geological stratigraphic columns, rock layers, and geological history for any location worldwide. Use for geology, bedrock, formations, age dating, and stratigraphic analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | A valid latitude in decimal degrees | |
| lng | Yes | A valid longitude in decimal degrees | |
| adjacents | No | Include adjacent columns | |
| responseType | No | The length of response long or short | long |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions what the tool does but lacks details on behavioral traits such as whether it's a read-only operation, potential rate limits, authentication needs, error handling, or what the output format looks like (e.g., structured data, text). For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with two sentences that efficiently convey the purpose and usage. The first sentence states what the tool does, and the second provides usage context. There's no wasted text, but it could be slightly more structured by explicitly separating purpose from guidelines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose and general usage but lacks details on behavioral aspects and output. Without annotations or an output schema, the description should do more to compensate, such as hinting at return values or operational constraints, leaving some gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear details for all parameters (lat, lng, adjacents, responseType). The description adds no specific parameter semantics beyond what's in the schema, such as explaining how 'adjacents' affects results or what 'long' vs 'short' response types entail. With high schema coverage, the baseline score is 3, as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find geological stratigraphic columns, rock layers, and geological history for any location worldwide.' It specifies the verb ('Find') and resource ('geological stratigraphic columns, rock layers, and geological history'), and mentions the scope ('any location worldwide'). However, it doesn't explicitly differentiate from sibling tools like 'find-units' or 'mineral-info', which might offer related geological data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidelines by stating 'Use for geology, bedrock, formations, age dating, and stratigraphic analysis.' This suggests contexts where the tool is applicable, but it doesn't explicitly state when to use this tool versus alternatives like 'find-units' or 'mineral-info', nor does it provide exclusions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-unitsFind UnitsB
Find geological rock units, formations, bedrock geology, and mineral information for any location worldwide. Use for geology questions, rock types, age dating, lithology, and geological analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | A valid latitude in decimal degrees | |
| lng | Yes | A valid longitude in decimal degrees | |
| responseType | No | The length of response long or short. Long provides lots of good details | long |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool finds information 'for any location worldwide' and hints at response types, but lacks details on rate limits, authentication needs, error handling, or what specific data is returned (e.g., format, depth). For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded: the first states the core purpose, and the second provides usage context. There's no wasted text, but it could be slightly more structured (e.g., bullet points) for clarity. Overall, it's efficient and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, 100% schema coverage, no output schema), the description is adequate but incomplete. It covers purpose and usage but lacks behavioral details (e.g., return format, limitations) and doesn't compensate for the absence of annotations or output schema. This makes it minimally viable but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (lat, lng, responseType) with clear descriptions and enums. The description adds no additional parameter semantics beyond what's in the schema, such as explaining coordinate systems or elaborating on 'long' vs 'short' responses. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: finding geological rock units, formations, bedrock geology, and mineral information for locations worldwide. It specifies the resource (geological data) and verb (find), and distinguishes itself from siblings like 'mineral-info' by mentioning broader geological analysis. However, it doesn't explicitly differentiate from 'find-columns' or other geological tools, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidelines by stating 'Use for geology questions, rock types, age dating, lithology, and geological analysis,' which suggests contexts where this tool is appropriate. However, it doesn't explicitly state when to use this tool versus alternatives like 'mineral-info' or 'find-columns,' nor does it provide exclusions or prerequisites. This leaves some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lat-lng-to-tileLatitude/Longitude to TileA
Convert latitude/longitude coordinates to map tile coordinates (x, y) for a given zoom level. Uses the same web mercator projection as MapKit.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees (-90 to 90) | |
| lng | Yes | Longitude in decimal degrees (-180 to 180) | |
| zoom | Yes | Zoom level (0-18) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the projection method ('web mercator projection as MapKit'), which adds useful technical context beyond basic functionality. However, it doesn't cover error handling, performance characteristics, or output format details, leaving gaps for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core transformation and key technical detail (projection type). Every word earns its place with zero redundancy or fluff, making it easy to parse front-loaded information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (coordinate conversion with three parameters) and lack of annotations/output schema, the description is minimally adequate. It covers the what and how (projection) but misses guidance on usage, error cases, and output structure, leaving the agent with incomplete operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (lat, lng, zoom) with ranges and units. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high coverage but not enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'convert' and the resources 'latitude/longitude coordinates to map tile coordinates (x, y)', distinguishing it from sibling tools like 'map-tiles' which likely serve different mapping functions. It provides a precise transformation purpose with technical specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'map-tiles' or other coordinate conversion methods. The description lacks context about typical use cases, prerequisites, or exclusions, leaving the agent to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map-tilesMap TilesA
Get map tile URLs from the Macrostrat tiles server. Use lat-lng-to-tile tool first to get proper x,y coordinates. Defaults to 'carto' scale which automatically adapts detail level to zoom.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Map scale layer - 'carto' automatically selects appropriate detail level based on zoom. Other scales (tiny, small, medium, large) may have limited coverage. | carto |
| z | Yes | Zoom level (0-18). Higher zoom = more detailed view of smaller area. Typical values: z=3 (continent), z=6 (country), z=10 (city), z=15 (neighborhood) | |
| x | Yes | Tile X coordinate - use lat-lng-to-tile tool to calculate this from lat/lng | |
| y | Yes | Tile Y coordinate - use lat-lng-to-tile tool to calculate this from lat/lng | |
| format | No | Tile format: 'png' for images, 'mvt' for vector tiles | png |
| fetch_image | No | If true, actually fetch the tile image data so Claude can analyze the geological features visually |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds some context beyond the schema: it mentions the server ('Macrostrat tiles server'), the default scale behavior ('carto' automatically adapts detail level to zoom), and implies a dependency on another tool. However, it lacks details on rate limits, authentication needs, error handling, or what the URLs point to (e.g., endpoints, response format).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: two sentences with zero waste. The first sentence states the core purpose, and the second provides critical usage guidance and default behavior. Every sentence earns its place by adding essential information not obvious from the tool name or schema alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, no output schema, no annotations), the description is reasonably complete. It covers the purpose, prerequisite tool, and default behavior, which are crucial for correct usage. However, it lacks details on what the returned URLs look like, potential errors, or server-specific constraints, leaving some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it reinforces the default scale ('carto') and its adaptive behavior, but does not provide additional syntax, format details, or usage examples for parameters like 'fetch_image' or 'format'. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get map tile URLs') and resource ('from the Macrostrat tiles server'), distinguishing it from sibling tools like 'lat-lng-to-tile' which calculates coordinates rather than fetching tiles. It explicitly names the server and the type of output (URLs), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use lat-lng-to-tile tool first to get proper x,y coordinates.' It names the alternative tool ('lat-lng-to-tile') and specifies the prerequisite step, clearly differentiating usage contexts between coordinate calculation and tile retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mineral-infoMineral InformationC
Get information about a mineral, use one property
| Name | Required | Description | Default |
|---|---|---|---|
| mineral | No | The name of the mineral | |
| mineral_type | No | The type of mineral | |
| element | No | An element that the mineral is made of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Get information,' which implies a read-only operation, but doesn't specify if it's a lookup, search, or detailed retrieval. There's no information on error handling, rate limits, authentication needs, or what the output might contain, which is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence: 'Get information about a mineral, use one property.' It's front-loaded with the main purpose, and there's no wasted text. However, it could be slightly more structured by explicitly listing the parameters or usage scenarios, but it's efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'information' includes, how results are returned, or any constraints like data sources or limitations. Without annotations or an output schema, the description should provide more context to guide effective use, but it falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear parameter descriptions in the schema itself. The description adds minimal value beyond the schema by implying 'use one property,' suggesting that parameters might be mutually exclusive, but it doesn't clarify which property to prioritize or how they interact. Since schema coverage is high, the baseline is 3, and the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get information about a mineral, use one property.' It specifies the verb ('Get information') and resource ('mineral'), making the intent understandable. However, it doesn't distinguish this tool from potential siblings like 'defs' or 'find-columns,' which might also retrieve information, so it lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance with 'use one property,' implying that only one of the three parameters should be used, but it doesn't specify when to use this tool versus alternatives like 'defs' or 'find-columns.' There's no explicit context on when or when not to use it, and no mention of prerequisites or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timescaleTimescaleC
Get information about a time period
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Age in millions of years before present |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get information' which implies a read-only operation, but doesn't specify what happens if the age is invalid, whether there are rate limits, authentication needs, or what format the information is returned in. For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's appropriately sized for a simple tool and front-loaded with the core purpose. Every word earns its place, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't specify what 'information' is returned (e.g., geological era, events, data format), leaving the agent unsure of the tool's full behavior. For a tool with no structured output documentation, the description should compensate more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'age' documented as 'Age in millions of years before present'. The description adds no additional meaning beyond this, as it doesn't explain how the age relates to the information retrieved or provide examples. With high schema coverage, the baseline is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get information about a time period' states a general purpose but is vague about what specific information is retrieved. It uses a verb ('Get') and resource ('time period'), but doesn't specify what type of information (geological, historical, astronomical, etc.) or how it relates to the 'age' parameter. It doesn't distinguish from sibling tools like 'mineral-info' or 'lat-lng-to-tile' which have different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention any prerequisites, exclusions, or context for usage. With sibling tools like 'mineral-info' and 'find-units', there's no indication of when this tool is appropriate versus those for related queries about geological or measurement data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v1.0.0- Changed
defs2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
defs-autocomplete2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
find-columns3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / requiredPrevious value: -[ - "lat", - "lng", - "responseType" -]New value: +[ + "lat", + "lng" +]
- Changed
find-units3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / requiredPrevious value: -[ - "lat", - "lng", - "responseType" -]New value: +[ + "lat", + "lng" +]
- Changed
lat-lng-to-tile2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
map-tiles2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
mineral-info2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
timescale4 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / age / descriptionAdded value: +"Age in millions of years before present" - added
Input schema / requiredAdded value: +[ + "age" +]
8 tool updates
- First observed
defs - First observed
defs-autocomplete - First observed
find-columns - First observed
find-units - First observed
lat-lng-to-tile - First observed
map-tiles - First observed
mineral-info - First observed
timescale
TDQS
Most tools have distinct purposes, but 'find-columns' and 'find-units' overlap significantly in their descriptions (both for geological analysis of locations), which could cause confusion. Other tools like 'defs' and 'defs-autocomplete' are clearly related but serve different functions, while tools like 'lat-lng-to-tile' and 'map-tiles' are distinct but interdependent.
The naming is inconsistent with mixed conventions: some use snake_case ('lat-lng-to-tile'), some use kebab-case ('defs-autocomplete'), and others use plain words ('defs', 'timescale'). There is no predictable verb_noun pattern, making it harder for agents to infer tool purposes from names alone.
With 8 tools, the count is reasonable for a geological data server, covering definitions, location-based queries, mapping, and mineral/time information. It's slightly under the ideal 10-15 range for comprehensive coverage but not overly sparse, fitting the domain scope adequately.
The tool set covers core geological data access (definitions, units, columns, minerals, timescales) and mapping functions, but there are notable gaps such as missing update/delete operations for data manipulation and limited query capabilities (e.g., no advanced filtering or aggregation tools). It supports basic retrieval but lacks full lifecycle coverage.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Provides AI assistants with direct access to Mapbox developer APIs and documentation.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides access to the USGS Quakes API within Claude Desktop, enabling users to retrieve earthquake data and details through natural language queries.3201MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Qlik Cloud applications and extract data from visualizations through the Qlik Cloud API.12MIT
- AlicenseNot gradedqualityCmaintenanceConnects Claude to Strava data for natural language queries about rides, stats, and activities.25MIT

GRID MCP Serverofficial
AlicenseNot gradedqualityFmaintenanceEnables Claude to query and manipulate GRID spreadsheets via the GRID API using natural language.383MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/blake365/macrostrat-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server