OpenHeritage Public Search

Read-only OpenHeritage search for genealogy and cultural heritage records.

Should I use this

Quality & Safety

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

Findings (1)

  • LOWTool 'autocomplete_places' description lacks action verbin autocomplete_places

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,309Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (1.02% 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": {
    "public-search": {
      "url": "https://openheritage.online/mcp"
    }
  }
}

Remote endpoints

https://openheritage.online/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_collections(query)

Search public OpenHeritage collections by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢search_memorials(query)

Search public memorial records by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢find_places_nearby(latitude, longitude, radiusKm, date, typeCode, ...)

Find active canonical places near coordinates, optionally resolving historical context for a date.

Input Schema

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Required latitude in decimal degrees, from -90 through 90.",
      "type": "number"
    },
    "longitude": {
      "description": "Required longitude in decimal degrees, from -180 through 180.",
      "type": "number"
    },
    "radiusKm": {
      "description": "Optional positive search radius in kilometres. Defaults to 50.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "date": {
      "description": "Optional historical date in yyyy-MM-dd format; names and context are resolved as known on that date.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "typeCode": {
      "description": "Optional canonical place type code (see the place-type-catalog resource).",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "take": {
      "description": "Optional number of places to return, nearest first, from 1 through 20. Defaults to 20.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "latitude",
    "longitude"
  ]
}
🟢search_sources(query)

Search public sources by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢search_records(query, entityTypes)

Search public OpenHeritage records across supported entity types.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    },
    "entityTypes": {
      "description": "Optional public entity type filters.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    }
  },
  "required": [
    "query"
  ]
}
🟢search_documents(query)

Search public source documents by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢get_place(placeId, date)

Read a canonical place by stable ID, optionally resolving its historical context for a date.

Input Schema

{
  "type": "object",
  "properties": {
    "placeId": {
      "description": "Required stable canonical place ID (GUID), as returned by the place tools.",
      "type": "string"
    },
    "date": {
      "description": "Optional historical date in yyyy-MM-dd format; the place's name and containing places are resolved as known on that date.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "placeId"
  ]
}
🟢search_cemeteries(query)

Search public cemeteries by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢search_authors(query)

Search public person and organization author authority records by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢search_repositories(query)

Search public source repositories by text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢search_places(query, latitude, longitude, radiusKm, typeCode, ...)

Search active canonical places by text and optional geographic or type filters.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required place name or text to search for.",
      "type": "string"
    },
    "latitude": {
      "description": "Optional latitude in decimal degrees; longitude is required when supplied.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "longitude": {
      "description": "Optional longitude in decimal degrees; latitude is required when supplied.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "radiusKm": {
      "description": "Optional positive search radius in kilometres; coordinates are required when supplied.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "typeCode": {
      "description": "Optional canonical place type code (see the place-type-catalog resource).",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "hasCoordinates": {
      "description": "Optionally require places to have or not have coordinates.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "date": {
      "description": "Optional historical date in yyyy-MM-dd format.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "query"
  ]
}
⚪autocomplete_places(query, date, typeCode, take)

Autocomplete active canonical places by prefix, optionally resolving historical context for a date.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required beginning of a place name, as typed so far.",
      "type": "string"
    },
    "date": {
      "description": "Optional historical date in yyyy-MM-dd format; names and context are resolved as known on that date.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "typeCode": {
      "description": "Optional canonical place type code (see the place-type-catalog resource).",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "take": {
      "description": "Optional number of suggestions to return, from 1 through 20. Defaults to 10.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "query"
  ]
}
🟢search_page_text(query, documentId, sourceId, semantic)

Search the transcribed text of public document pages, by keyword and meaning; each hit links to its page.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Required text to search for: words, a name or a phrase from the page.",
      "type": "string"
    },
    "documentId": {
      "description": "Optional document ID (GUID) to search within one document.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "sourceId": {
      "description": "Optional source ID (GUID) to search within the documents of one source.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "semantic": {
      "description": "Whether to include meaning-based matches as well as keyword matches. Defaults to true.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "query"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools