Server definition
- Hash
- sha256:10e1c182f7988136046f002bad8f6183e223105eb1647305e1dd19dae6b3c7ec
- What it is
- What a remote MCP server returned when asked what it offers: 18 tools
The blob, as servednamed by its sha256
{
"instructions": "Keeps the user's ExplorersMap travel map up to date. Mark countries and regions they mention visiting, set dates, and group them into trips. Always confirm before removing anything. The free tier allows 25 writes a day.",
"tools": [
{
"description": "Mark a country as visited. Accepts an ISO-2 code or the country name. Idempotent.",
"inputSchema": {
"properties": {
"country": {
"description": "ISO-2 code or name, e.g. \"PT\" or \"Portugal\".",
"type": "string"
},
"notes": {
"description": "Optional private note.",
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"name": "add_country",
"outputSchema": null
},
{
"description": "Mark a specific place as visited — a monument, museum, airport, city, park and so on. Pass an id from search_places.",
"inputSchema": {
"properties": {
"notes": {
"description": "Optional private note kept with this visit. Only the account owner sees it.",
"type": "string"
},
"place": {
"description": "A place id from search_places, e.g. \"monument:eiffel-tower-fr\".",
"type": "string"
}
},
"required": [
"place"
],
"type": "object"
},
"name": "add_place",
"outputSchema": null
},
{
"description": "Attach places you have already marked to a trip. Pass visit ids from list_visited.",
"inputSchema": {
"properties": {
"tripId": {
"description": "From list_trips.",
"type": "string"
},
"visitIds": {
"description": "Visit ids, e.g. \"place:museum:Q1954384\". Countries and regions are not attachable.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"tripId",
"visitIds"
],
"type": "object"
},
"name": "add_places_to_trip",
"outputSchema": null
},
{
"description": "Mark a state, province or département as visited. Accepts a region id (FR-95) or a name plus country. Idempotent.",
"inputSchema": {
"properties": {
"country": {
"description": "Country, to disambiguate a name used in several places.",
"type": "string"
},
"level": {
"description": "How well you know it. Default visited.",
"enum": [
"passed",
"visited",
"slept",
"lived"
],
"type": "string"
},
"notes": {
"description": "Optional private note kept with this visit. Only the account owner sees it.",
"type": "string"
},
"region": {
"description": "Region id like \"FR-95\", or a name like \"Gironde\".",
"type": "string"
}
},
"required": [
"region"
],
"type": "object"
},
"name": "add_region",
"outputSchema": null
},
{
"description": "Create a trip with a title and date range. Private by default.",
"inputSchema": {
"properties": {
"dateFrom": {
"description": "First day of the trip, YYYY-MM-DD.",
"type": "string"
},
"dateTo": {
"description": "Last day of the trip, YYYY-MM-DD.",
"type": "string"
},
"title": {
"description": "What the trip is called, e.g. \"Iberia 2026\".",
"type": "string"
},
"visibility": {
"description": "Default private.",
"enum": [
"private",
"public"
],
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "create_trip",
"outputSchema": null
},
{
"description": "Permanently delete a trip. The places in it stay marked on the map — only the grouping is removed. Requires the exact trip id and confirm:true.",
"inputSchema": {
"properties": {
"confirm": {
"description": "Must be true. Ask the user first — this cannot be undone from here.",
"type": "boolean"
},
"tripId": {
"description": "The exact id from list_trips. Titles and labels are not accepted.",
"type": "string"
}
},
"required": [
"tripId",
"confirm"
],
"type": "object"
},
"name": "delete_trip",
"outputSchema": null
},
{
"description": "Achievements this account has earned, newest first.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_badges",
"outputSchema": null
},
{
"description": "This account's position on a global leaderboard, with the value it was ranked on and how many explorers are ranked in total. Boards: overall score, renown, countries, regions or places. Use it to answer \"where do I rank\" or to compare progress over time.",
"inputSchema": {
"properties": {
"board": {
"description": "Which board. Default score.",
"enum": [
"score",
"renown",
"countries",
"regions",
"places"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_rank",
"outputSchema": null
},
{
"description": "A summary of this account's map: how many countries, territories, regions and places are marked, the Explorer score, and the share of the world explored. Answers \"how many countries have I been to\", and is the quickest way to see where the user stands before suggesting what to add next.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_stats",
"outputSchema": null
},
{
"description": "The user's trips, newest first. Paged: check `total` against `returned` and follow `nextOffset` to read the rest.",
"inputSchema": {
"properties": {
"limit": {
"description": "Rows per page, default 100, max 200.",
"type": "number"
},
"offset": {
"description": "Skip this many. Use nextOffset from the previous page.",
"type": "number"
}
},
"type": "object"
},
"name": "list_trips",
"outputSchema": null
},
{
"description": "Everything marked as visited, newest first. Paged: check `total` against `returned` and follow `nextOffset` to read the rest. Filter by type to keep the response small.",
"inputSchema": {
"properties": {
"limit": {
"description": "Rows per page, default 100, max 500.",
"type": "number"
},
"offset": {
"description": "Skip this many. Use nextOffset from the previous page.",
"type": "number"
},
"type": {
"description": "Which kind to list.",
"enum": [
"country",
"region",
"place"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"name": "list_visited",
"outputSchema": null
},
{
"description": "Unmark a country, undoing add_country. Accepts an ISO-2 code or the country name. Unmarking something that was never marked is not an error. This lowers the user's score, so confirm before removing anything they did not name.",
"inputSchema": {
"properties": {
"country": {
"description": "ISO-2 code or name.",
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"name": "remove_country",
"outputSchema": null
},
{
"description": "Unmark a specific place such as a monument, museum, airport or city, undoing add_place. Accepts a place id from search_places or the exact place name. This lowers the user's score, so confirm before removing anything they did not name.",
"inputSchema": {
"properties": {
"place": {
"description": "A place id, or its exact name.",
"type": "string"
}
},
"required": [
"place"
],
"type": "object"
},
"name": "remove_place",
"outputSchema": null
},
{
"description": "Unmark a state, province or département, undoing add_region. Accepts a region id like \"FR-95\", or a region name plus its country. Unmarking something that was never marked is not an error. This lowers the user's score, so confirm before removing anything they did not name.",
"inputSchema": {
"properties": {
"country": {
"description": "Country of that region, to disambiguate a name used in several countries.",
"type": "string"
},
"region": {
"description": "Region id like \"FR-95\", or a region name like \"Gironde\".",
"type": "string"
}
},
"required": [
"region"
],
"type": "object"
},
"name": "remove_region",
"outputSchema": null
},
{
"description": "Find places in the 90,000-entry database — cities, airports, monuments, museums, parks, heritage sites and more. Use this to get an id before add_place. Matching is on part of the name, so short beats formal: \"Louvre\" finds it, \"Musee du Louvre\" may not. Types overlap (the Louvre is filed under heritage, not museum), so a type filter narrows rather than decides — anything it excludes comes back under otherTypes.",
"inputSchema": {
"properties": {
"country": {
"description": "Narrow by country (ISO-2 or name).",
"type": "string"
},
"limit": {
"description": "Max results, default 10.",
"type": "number"
},
"query": {
"description": "Part of the name.",
"type": "string"
},
"type": {
"description": "Prefer a type, e.g. \"monument\", \"museum\", \"airport\", \"city\", \"heritage\", \"park\". Other-type matches still come back, under otherTypes.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_places",
"outputSchema": null
},
{
"description": "Publish a trip on the user's public profile, or take it private again. Private trips are visible only to the account owner. Always ask before making a trip public, since it then shows the trip's title, dates and places to anyone.",
"inputSchema": {
"properties": {
"tripId": {
"description": "From list_trips.",
"type": "string"
},
"visibility": {
"description": "public shows the trip on the user's profile; private hides it again.",
"enum": [
"private",
"public"
],
"type": "string"
}
},
"required": [
"tripId",
"visibility"
],
"type": "object"
},
"name": "set_trip_visibility",
"outputSchema": null
},
{
"description": "Set the travel dates on something already marked as visited. Does not change score.",
"inputSchema": {
"properties": {
"dates": {
"description": "ISO dates, YYYY-MM-DD.",
"items": {
"type": "string"
},
"type": "array"
},
"visitId": {
"description": "The id from list_visited, e.g. \"PT\" or \"reg:FR-95\".",
"type": "string"
}
},
"required": [
"visitId",
"dates"
],
"type": "object"
},
"name": "set_visit_dates",
"outputSchema": null
},
{
"description": "Who the connected ExplorersMap account belongs to, and how much of today's fair-use quota is left.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "whoami",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:10e1c182f7988136046f002bad8f6183e223105eb1647305e1dd19dae6b3c7ec | sha256sum