Skip to main content
Glama

Server Details

Historical borders and dated map events with source attribution and coverage limits.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct role: link generation, polity lookup, event search, and temporal polity listing. While find_polity and world_at_year both relate to polities/borders, their query models (entity by name/QID vs. year-based snapshot list) are clearly differentiated in the descriptions.

Naming Consistency4/5

All names use consistent snake_case. Three follow a clear verb_noun pattern (create_video_link, find_polity, search_events), while world_at_year is a noun phrase, which is a minor deviation but still readable and predictable.

Tool Count5/5

Four tools is well within the expected 3-15 range and each tool serves a distinct, necessary purpose for the historical map/video domain. There is no redundancy or bloat.

Completeness4/5

The set covers the core workflows: discovering polities, searching events, listing entities by year, and generating video links. Minor gaps exist around place/region resolution and detailed event retrieval, but these are workable given the descriptions and link outputs.

Available Tools

4 tools
find_polityA
Read-onlyIdempotent
Inspect

Look up a state or empire by name or any of its Wikidata labels and aliases (substring, case-insensitive), or by Wikidata QID. Returns its lifespan, every border snapshot with its bounding box, and links.

NameRequiredDescriptionDefault
langNoSite language for returned page and map links. Use the language the user is writing in.en
queryYesName, e.g. "Ottoman", or a QID, e.g. "Q12560".

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: substring, case-insensitive matching over labels/aliases, and the fact that the result set includes lifespan, every border snapshot with bounding box, and links. It does not say what happens on zero or multiple matches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first front-loads the lookup keys and matching semantics, the second states what is returned. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly takes on the burden of describing returns (lifespan, border snapshots with bounding boxes, links) and the matching rules. The only gaps are ambiguity handling for multiple matches and the empty-result case, which are minor for a read-only lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema baseline is 3. The description adds meaning beyond the schema's terse 'Name, e.g. Ottoman or a QID' by clarifying that matching also covers all Wikidata labels and aliases and is substring/case-insensitive, which materially affects how the agent should phrase the query. The 'lang' parameter is left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('look up a state or empire') plus the exact matching keys (name, Wikidata labels/aliases, QID), so the agent immediately knows this is an entity-resolution tool rather than a temporal or event tool. It stops short of naming sibling tools like world_at_year to explicitly route the agent, so it lands just below the top tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the lookup semantics and the accepted identifier forms, which tells the agent it should be used when the user names a polity. There is no explicit when-to-use/when-not statement and no mention of alternatives such as world_at_year for time-based queries or search_events for event lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_eventsA
Read-onlyIdempotent
Inspect

Search map events: battles (Wikidata), UCDP armed-conflict events since 1989, volcanic eruptions VEI 4+ (Smithsonian GVP), significant earthquakes (NOAA), witnessed meteorite falls, and UNESCO World Heritage sites (undated). Month/day bounds match only events recorded at least that precisely; undated heritage sites match only searches without a date bound. Results are sorted by date.

NameRequiredDescriptionDefault
bboxNoBounding box [west, south, east, north] in degrees.
langNoSite language for returned page and map links. Use the language the user is writing in.en
layerNo
limitNo
queryNoSubstring of the event name or detail, e.g. "Vienna".
to_dateNoSource-calendar date fields at month precision, or day precision when day is supplied. Historical sources may use Julian dates; bounds compare their recorded fields without calendar conversion.
to_yearNoYear. Negative is BC: -500 = 500 BC. There is no year 0.
from_dateNoSource-calendar date fields at month precision, or day precision when day is supplied. Historical sources may use Julian dates; bounds compare their recorded fields without calendar conversion.
from_yearNoYear. Negative is BC: -500 = 500 BC. There is no year 0.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so safety is covered; the description adds genuinely new behavior: result ordering by date, precision-gated date matching, and the temporal floor (UCDP since 1989, heritage sites undated). It stops short of describing result shape or how limit/pagination interacts with large result sets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is searched, then matching semantics, then sort order — three sentences, no filler. The dataset enumeration is long but each item is load-bearing for understanding coverage, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, nested-object tool with no output schema and no required parameters, the description covers the hard parts (date semantics, dataset coverage, ordering) while annotations cover safety. It omits any indication of the returned record shape and how limit defaults/caps interact with the result set, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78% (near the high baseline), and the description still adds meaning the schema does not: how from/to bounds behave against imprecisely recorded dates and that undated records are excluded by any date bound. The layer parameter carries only an enum in the schema and its values are only inferable from the dataset list in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) plus resource (map events) and enumerates the six underlying datasets with their provenance (Wikidata battles, UCDP, Smithsonian GVP, NOAA, meteorite falls, UNESCO). This scope is distinctive enough to separate it from siblings like world_at_year (a point-in-time snapshot) and find_polity without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete conditions governing effective use: month/day bounds only match events recorded at that precision, and undated heritage sites match only dateless searches. That is a real when-to-use/when-not rule, but it never names an alternative tool or states when another sibling should be preferred instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

world_at_yearA
Read-onlyIdempotent
Inspect

List states, empires and cultures with an OpenHistoricalMap border snapshot in a given year, optionally overlapping a region. Coverage is incomplete; an empty result does not establish historical absence.

NameRequiredDescriptionDefault
bboxNoBounding box [west, south, east, north] in degrees.
langNoSite language for returned page and map links. Use the language the user is writing in.en
yearYesYear. Negative is BC: -500 = 500 BC. There is no year 0.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful non-structured context: the dataset is incomplete and an empty result must not be read as historical absence, which materially changes how an agent reports the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the core capability is front-loaded ahead of the caveat. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does enough: it characterizes the returned entities and warns about empty results. It could say more about result shape or whether the snapshot includes geometry, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 bbox, lang and the negative-year/BC convention. The description only restates the year and optional region at a high level and says nothing about the lang parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') plus the exact resource (states, empires and cultures with an OpenHistoricalMap border snapshot) and scopes it by year and optional region. Very clear on its own, but it never names an alternative like find_polity, so the agent must infer sibling routing from the singular-vs-list distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scope ('in a given year, optionally overlapping a region'), but there is no explicit when-to-use or when-not-to-use guidance relative to find_polity or search_events. The coverage caveat is about interpreting results rather than about choosing this tool.

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.

  1. 3 tool updates
    • Changedfind_polity1 field changed
      • addedInput schema / properties / lang
        Added value: +{
        +  "default": "en",
        +  "description": "Site language for returned page and map links. Use the language the user is writing in.",
        +  "enum": [
        +    "en",
        +    "fr",
        +    "es",
        +    "pt",
        +    "de",
        +    "it",
        +    "nl",
        +    "ja",
        +    "ru",
        +    "pl",
        +    "tr",
        +    "id",
        +    "hi",
        +    "ar"
        +  ],
        +  "type": "string"
        +}
    • Changedsearch_events1 field changed
      • addedInput schema / properties / lang
        Added value: +{
        +  "default": "en",
        +  "description": "Site language for returned page and map links. Use the language the user is writing in.",
        +  "enum": [
        +    "en",
        +    "fr",
        +    "es",
        +    "pt",
        +    "de",
        +    "it",
        +    "nl",
        +    "ja",
        +    "ru",
        +    "pl",
        +    "tr",
        +    "id",
        +    "hi",
        +    "ar"
        +  ],
        +  "type": "string"
        +}
    • Changedworld_at_year1 field changed
      • addedInput schema / properties / lang
        Added value: +{
        +  "default": "en",
        +  "description": "Site language for returned page and map links. Use the language the user is writing in.",
        +  "enum": [
        +    "en",
        +    "fr",
        +    "es",
        +    "pt",
        +    "de",
        +    "it",
        +    "nl",
        +    "ja",
        +    "ru",
        +    "pl",
        +    "tr",
        +    "id",
        +    "hi",
        +    "ar"
        +  ],
        +  "type": "string"
        +}
  2. 1 tool update
    • Addedcreate_video_link
  3. 1 tool update
    • Changedsearch_events2 fields changed
      • addedInput schema / properties / from_date
        Added value: +{
        +  "description": "Source-calendar date fields at month precision, or day precision when day is supplied. Historical sources may use Julian dates; bounds compare their recorded fields without calendar conversion.",
        +  "properties": {
        +    "day": {
        +      "maximum": 31,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "month": {
        +      "maximum": 12,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "year": {
        +      "description": "Year. Negative is BC: -500 = 500 BC. There is no year 0.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "year",
        +    "month"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / to_date
        Added value: +{
        +  "description": "Source-calendar date fields at month precision, or day precision when day is supplied. Historical sources may use Julian dates; bounds compare their recorded fields without calendar conversion.",
        +  "properties": {
        +    "day": {
        +      "maximum": 31,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "month": {
        +      "maximum": 12,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "year": {
        +      "description": "Year. Negative is BC: -500 = 500 BC. There is no year 0.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "year",
        +    "month"
        +  ],
        +  "type": "object"
        +}
  4. 3 tool updates
    • First observedfind_polity
    • First observedsearch_events
    • First observedworld_at_year

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Historical geography for AI agents: 1,000+ polities with real GeoJSON borders, dynastic succession chains, events, cities and trade routes from 4500 BCE to today, each with cited academic sources and a confidence score. Wraps the free AtlasPI REST API (https://atlaspi.it) as 39 MCP tools — no API key required, Apache-2.0.
    39
    1
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Serves country facts, administrative boundary GeoJSON, and per-region population, area, and capital statistics as structured data, letting an AI assistant build interactive maps, comparisons, and multilingual geography content instead of reciting prose. It also normalises region names across sources so boundary shapes can be joined to their statistics.
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables users to resolve historical US land and jurisdiction questions: which county held a given spot on a specific date, where a federal land description (PLSS) falls on the ground, and which National Archives series and file hold the case behind a land patent. All lookups are read-only and can be used alongside archive-search tools to route records requests to the right office.
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources