{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_u3y3h7bsvwc5","handle":"moving-polygons","url":"https://wellknown.network/agents/moving-polygons","links":{"self":"https://wellknown.network/agents/moving-polygons/record.json","html":"https://wellknown.network/agents/moving-polygons","markdown":"https://wellknown.network/agents/moving-polygons/record.md","api":"https://wellknown.network/api/v1/agents/moving-polygons","status":"https://wellknown.network/api/v1/agents/moving-polygons/status","claim":"https://wellknown.network/agents/moving-polygons/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/moving-polygons/claim.json","badge":"https://wellknown.network/agents/moving-polygons/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/moving-polygons/history","tools":"https://wellknown.network/api/v1/agents/moving-polygons/tools"},"ard":{"identifier":"urn:air:www.movingpolygons.com:server:moving-polygons","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Moving Polygons","summary":"Create, edit and publish animated historical maps in your Moving Polygons account.","description":"Create, edit and publish animated historical maps in your Moving Polygons account.","publisher":{"name":"com.movingpolygons","url":null},"homepage":"https://www.movingpolygons.com/create-with-ai","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://www.movingpolygons.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-22T22:18:12.777124Z","publishedAt":"2026-10-22T22:18:12.777124Z","registryName":"com.movingpolygons/maps"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-30T21:26:07.666Z","lastProbedAt":"2026-10-30T21:26:07.666Z","statusComputedAt":"2026-10-30T21:28:27.081Z","reliability30d":{"probes":19,"successRate":1,"p50Ms":160,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":19,"ok":19,"authBoundaryOk":0,"serviceOk":19,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-30T21:26:07.666Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T13:28:32.867Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":178,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T05:27:56.426Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":150,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T21:29:35.553Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":182,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T14:25:55.908Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":148,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T06:28:47.509Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":148,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T23:24:25.969Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T15:28:29.356Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":150,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T07:29:44.267Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":136,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T00:31:42.600Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":197,"error":null,"detail":{"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"toolCount":14,"toolsHash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","serverName":"moving-polygons","capabilities":["resources","tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_import_format","description":"The JSON format for maps: layers with timed polygon keyframes, point markers and a style."},{"name":"get_account","description":"The signed-in user's public handle, plan and how many maps they can still create."},{"name":"list_maps","description":"The user's maps, most recently changed first, with their ids and links."},{"name":"get_map","description":"A summary of one of the user's maps (layers, keyframe dates, markers) and a 15-minute download link for its full import JSON, which can be several MB."},{"name":"create_map","description":"Create a new private draft map from an import JSON of up to about 1 MB."},{"name":"create_upload_link","description":"A one-off link (valid 15 minutes) for uploading a map JSON file of up to 40 MB with curl. It creates a new draft map, or with mode replace overwrites an existin"},{"name":"start_map_upload","description":"Opens an upload (valid 2 hours) for a map JSON text that is sent in numbered parts through tool calls rather than over the network. It creates a new draft map, "},{"name":"upload_map_part","description":"Stores one numbered piece of a chunked map upload. The pieces are joined in part order with nothing in between; sending a part number again replaces that part. "},{"name":"finish_map_upload","description":"Joins parts 1 to the given count of a chunked upload, validates the map and creates the draft map (or replaces the map's content, keeping a backup). Reports mis"},{"name":"replace_map_content","description":"Overwrite an existing map's layers, markers, name, description and casualty bar (and style, if given) with an import JSON of up to about 1 MB. The link and publ"},{"name":"publish_map","description":"Make one of the user's maps public at its /map/<handle>/<slug> link, where anyone can view it. The user must first choose a username at https://www.movingpolygo"},{"name":"unpublish_map","description":"Make one of the user's maps private again (its public link stops working)."},{"name":"search_maps","description":"Find published animated maps on Moving Polygons (history, wars, empires, borders, epidemics, sea ice…) by words in their title or description and/or a year they"},{"name":"get_public_map","description":"One published map as Markdown: description and sources, the timeline of keyframes (date and caption), layers, events, and the iframe code to embed the interacti"}],"package":null,"toolSurface":{"id":"ts_qdtzptuzgwfk","endpointId":"ep_emnrghmjyrem","hash":"61e75aa9171b5d2fda2d6cce6f642d17de439bc645ee9beccf07577e1990bb7a","toolCount":14,"serverName":"moving-polygons","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-25T23:25:49.123Z","lastSeenAt":"2026-10-30T21:26:07.663Z","observations":17,"toolNames":["get_import_format","get_account","list_maps","get_map","create_map","create_upload_link","start_map_upload","upload_map_part","finish_map_upload","replace_map_content","publish_map","unpublish_map","search_maps","get_public_map"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_emnrghmjyrem","url":"https://www.movingpolygons.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-30T13:28:32.879Z","auth":{"observedAt":"2026-10-30T13:28:33.279Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://www.movingpolygons.com/.well-known/oauth-protected-resource/mcp","resource":"https://www.movingpolygons.com/mcp","authorizationServers":["https://clerk.movingpolygons.com"],"scopesSupported":["profile","email"]},"authorizationServer":{"url":"https://clerk.movingpolygons.com/.well-known/oauth-authorization-server","issuer":"https://clerk.movingpolygons.com","grantTypesSupported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["client_secret_basic","none","client_secret_post"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-30T13:28:33.382Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.movingpolygons.com","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-09-28T17:10:21.000Z","validTo":"2026-12-27T17:10:20.000Z","daysToExpiry":57,"sanCount":2,"fingerprint256":"A6:11:AC:FC:BA:F5:FC:8C:8E:5A:F6:F6:53:4F:C9:F8:A5:CE:4E:E8:2F:68:E8:14:01:38:6B:C3:EA:44:1C:E4"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.movingpolygons/maps","url":"https://registry.modelcontextprotocol.io/v0/servers/com.movingpolygons%2Fmaps","firstSeenAt":"2026-10-25T07:17:40.659Z","fetchedAt":"2026-10-28T17:19:57.424Z","normalizedAt":"2026-10-28T17:19:57.424Z"}]},"firstSeenAt":"2026-10-25T07:17:40.659Z","updatedAt":"2026-10-30T21:29:24.010Z"}