mcp-registry/io.github.robit-man/mapsource · v0.2.0
As of 2026-10-21 23:13 UTC, the Robit Man Mapsource MCP server is up with a Glimind reliability score of 69/100 (grade C). Over the last 30 days it answered 98.1% of Glimind's liveness checks. It had 32 outages in 90 days, with a median recovery of 12 minutes.
OpenStreetMap queries, maps/styles, search, routing, terrain, analysis, pipelines, and rendering.
Claude Code
claude mcp add --transport http robit-man-mapsource-mcp-server https://mapsource.io/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"robit-man-mapsource-mcp-server": {
"type": "http",
"url": "https://mapsource.io/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
15 parameter(s) across 4 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
2 tool(s) have parameters with no type (no type/enum/anyOf/$ref).
Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →
Reachable 98.1% of the time over the last 30 days; median recovery 12 min.
Agents fail over to an alternative the first time a call fails. Add health checks and restart-on-failure, and avoid cold starts on serverless hosts.
Handshake + tools/list takes ~1,577 ms.
Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
3 of 13 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 4 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.robit-man%2Fmapsource/fixes
{
"name": "find_features",
"description": "Find cafes, restaurants, buildings, parks, schools, hospitals, transit stops, drinking water, or trails within a bounding box up to 0.5 degrees per axis. Returns OSM geometry and tags, subject to the output limit. Requires a subscription key or authorized x402 payment.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"category",
"south",
"west",
"north",
"east"
],
"properties": {
"east": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"west": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 1,
"description": "Maximum returned OSM objects, not a pagination guarantee."
},
"north": {
"type": "number",
"maximum": 85,
"minimum": -85
},
"south": {
"type": "number",
"maximum": 85,
"minimum": -85
},
"category": {
"enum": [
"cafes",
"restaurants",
"buildings",
"parks",
"schools",
"hospitals",
"transit_stops",
"drinking_water",
"trails"
],
"type": "string",
"description": "Mapped feature category; use overpass_query for arbitrary OSM tags."
},
"responseMode": {
"enum": [
"compact",
"handle",
"raw"
],
"type": "string",
"default": "compact",
"description": "compact: inline when small, a result handle when large. handle: always a handle. raw: always the full body, however large."
}
}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "geo_analyze",
"description": "Measure or transform geometry using buffer, centroid, bbox, area, length, distance, intersect, union, difference, contains, intersects, nearest, simplify, or convex. Inputs accept GeoJSON, coordinate pairs, Overpass results, and result handles. Polygon overlay operations require areas. Use operation pipeline for up to 12 ordered steps and estimateOnly for cost estimation. Requires a subscription key.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"a": {
"description": "GeoJSON, a [lon, lat] pair, an Overpass result, a places result, or a result handle such as rh_ followed by 32 hex characters. Required for every operation except pipeline.",
"type": "string"
},
"b": {
"description": "The second operand, in the same forms as a.",
"type": "string"
},
"units": {
"enum": [
"meters",
"kilometers",
"miles"
],
"type": "string",
"default": "meters"
},
"returns": {
"type": "string",
"description": "pipeline only: which step to return, as $stepId. Defaults to the last."
},
"distance": {
"type": "number",
"maximum": 500000,
"minimum": 0,
"description": "Buffer radius or simplify tolerance."
},
"pipeline": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"op"
],
"properties": {
"id": {
"type": "string",
"description": "Referenced by later steps as $id."
},
"op": {
"enum": [
"search",
"nearby",
"route",
"isochrone",
"matrix",
"analyze",
"filter",
"sort",
"limit"
],
"type": "string"
},
"args": {
"type": "object",
"default": {},
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"maxItems": 12,
"description": "pipeline only: ordered steps. Any argument may be $anEarlierStepId."
},
"operation": {
"enum": [
"buffer",
"centroid",
"bbox",
"area",
"length",
"distance",
"intersect",
"union",
"difference",
"contains",
"intersects",
"nearest",
"simplify",
"convex",
"pipeline"
],
"type": "string",
"description": "buffer and simplify take distance. distance, intersect, union, difference, contains, intersects and nearest take a second geometry in b. pipeline runs several steps server-side and takes pipeline instead of a."
},
"estimateOnly": {
"type": "boolean",
"default": false,
"description": "pipeline: calculate estimated cost without execution."
}
}
},
"annotations": {
"readOnlyHint": true,
"destructiveHint": false
}
}{
"name": "geo_render",
"description": "Render a static PNG map from a center and zoom or bounding box. Supports GeoJSON overlays, result handles, and up to 50 labeled markers. Dark and light styles use raster rendering; other preset or profile names use vector rendering. Requires a subscription key.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lat": {
"type": "number",
"maximum": 85.05112878,
"minimum": -85.05112878
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4,
"description": "[west, south, east, north]. Fits the viewport to this instead of using lat/lon/zoom."
},
"zoom": {
"type": "number",
"maximum": 19,
"minimum": 0
},
"pitch": {
"type": "number",
"default": 0,
"maximum": 60,
"minimum": 0,
"description": "Vector renders only."
},
"style": {
"type": "string",
"default": "dark",
"maxLength": 64,
"minLength": 1,
"description": "dark or light composites the raster basemaps. Any other value names a style preset or one of your saved basemap profiles and is rendered as vector against that compiled style."
},
"width": {
"type": "integer",
"default": 800,
"maximum": 2048,
"minimum": 64
},
"height": {
"type": "integer",
"default": 600,
"maximum": 2048,
"minimum": 64
},
"bearing": {
"type": "number",
"default": 0,
"maximum": 180,
"minimum": -180,
"description": "Vector renders only."
},
"geojson": {
"description": "GeoJSON to draw, or a result handle such as rh_ followed by 32 hex characters.",
"type": "string"
},
"markers": {
"type": "array",
"items": {
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 85.05112878,
"minimum": -85.05112878
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"label": {
"type": "string",
"maxLength": 24
}
}
},
"maxItems": 50
},
"styleRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Saved profile revision to use for rendering."
}
}
},
"annotations": {
"readOnlyHint": true,
"destructiveHint": false
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.robit-man/mapsource"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.robit-man/mapsource"}) over MCP.
geo_search ~1,032 tokensgeo_style ~687 tokensgeo_navigate ~653 tokensgeo_analyze ~597 tokensgeo_render ~519 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.robit-man%2Fmapsource?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.robit-man%2Fmapsource?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.robit-man%2Fmapsource.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.robit-man%2Fmapsource.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.robit-man%2Fmapsource?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:d5e6764c1ace621f…, first seen 2026-10-17, included at leaf 11149 of 42,153. Version history · verify what your client received.
Compare: most reliable data servers · most reliable search servers · most reliable media servers · most reliable other servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-21 23:13 UTC, the Robit Man Mapsource MCP server is up with a Glimind reliability score of 69/100 (grade C). Over the last 30 days it answered 98.1% of Glimind's liveness checks. It had 32 outages in 90 days, with a median recovery of 12 minutes.
Robit Man Mapsource MCP server advertises 13 tools, including basemap_catalog, elevation, find_features, geo_analyze, geo_data.
Point your MCP client at this streamable-http endpoint: https://mapsource.io/mcp
Glimind scanned all 13 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.