PinSharing Maps
Server Details
Geocoding, static maps and privacy-safe area maps from OpenStreetMap data. Hard caps, no overage.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Software-Consulting/pinsharing-mcp
- GitHub Stars
- 0
- Server Listing
- PinSharing MCP
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Each tool targets a distinct operation: forward geocoding, reverse geocoding, static image rendering, privacy-preserving image rendering, and embed code generation. The geocode/reverse_geocode and static_map/privacy_area_map pairs are the only plausible confusions, and the descriptions explicitly disambiguate them (e.g. 'do not use this to show a private address; use privacy_area_map instead').
All names are consistently snake_case, but the grammatical convention is mixed: geocode and reverse_geocode are verbs while map_setup, static_map and privacy_area_map are noun phrases. The names are still readable and predictable enough to map to the domain, but there is no single verb_noun pattern.
Five tools is well-scoped for a maps/geocoding service: lookup in both directions, two rendering modes, and an integration helper. Each tool has a clear reason to exist and no tool looks like filler.
The surface covers the core lifecycle: address-to-coordinate, coordinate-to-address, image rendering with markers/paths, privacy-safe rendering, and web embedding with a reusable tile URL. Minor gaps exist (no batch geocoding, no routing/directions beyond a drawn path, no interactive map with server-side markers), but agents can work around these.
Available Tools
5 toolsgeocodeGeocode an address or placeARead-onlyIdempotentInspect
Look up an address, place name or point of interest and get coordinates (lat, lon), a readable label and address parts, from OpenStreetMap data. Use it before static_map or privacy_area_map when you only have an address. Counts 1 address lookup against the account's monthly cap. Results may be stored: up to 30 days on the Free plan, indefinitely on paid plans. Show "© OpenStreetMap contributors" with results.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | [min_lon, min_lat, max_lon, max_lat] | |
| lang | No | Preferred language for names, e.g. en, de, fr | |
| near | No | Prefer matches near this point | |
| limit | No | Maximum number of matches | |
| query | Yes | Address, place or point of interest, e.g. "233 S Wacker Dr, Chicago" or "Oswego, Illinois" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations by disclosing the metered cost (1 lookup against a monthly cap), data retention terms (30 days on Free, indefinitely on paid), and the required "© OpenStreetMap contributors" attribution. These are billing, privacy and legal obligations an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with what the tool returns, then usage routing, then cost/retention/attribution. Every sentence carries operational value; only the attribution sentence borders on boilerplate but it is a real obligation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the return shape (coordinates, label, address parts). It covers cost and retention but says nothing about multi-result behavior or what happens when no match is found, leaving some ambiguity for a 5-parameter tool with a nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so bbox, near, lang and limit are fully documented in the schema and the description need not repeat them. The description adds nothing about parameter behavior such as how bbox and near interact with the query, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (look up) plus resource (address, place name, point of interest) and names the concrete return values (lat, lon, readable label, address parts) and data source (OpenStreetMap). It distinguishes itself from siblings by naming static_map and privacy_area_map as downstream consumers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it before static_map or privacy_area_map when you only have an address, which is concrete routing guidance. The gap is that reverse_geocode is the obvious inverse sibling and is never mentioned, so the agent gets no cue for choosing between forward and reverse lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_setupGet code to show an interactive mapARead-onlyIdempotentInspect
Get ready-to-paste HTML/JavaScript for an interactive, zoomable PinSharing map in a web page (MapLibre GL JS vector map, Leaflet or OpenLayers raster map), or the raster tile URL template for any other library. Replace YOUR_KEY with a key restricted to the website. Needs no key and uses no quota; the map itself counts map tiles when viewed.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Map style: light (default), dark, white or grayscale | light |
| library | Yes | maplibre = vector map (sharpest); leaflet or openlayers = raster tiles; tile_url = just the XYZ URL template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world. The description adds real operational context beyond them: the setup call itself needs no key and consumes no quota, while tile counting occurs when the map is actually viewed, and the embedded key must be domain-restricted. That is meaningful behavior disclosure, though it lacks detail on output shape or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what is produced. The one rough edge is the juxtaposition of 'Replace YOUR_KEY with a key' and 'Needs no key,' which is resolvable (the call needs no key; the generated snippet does) but momentarily ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in to describe the return values (HTML/JS snippet or URL template) and covers key and quota implications. Missing only minor details such as the exact form of the snippet output, which an agent could infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have enum descriptions, so the schema already carries the variant semantics. The description reinforces library choice and adds the practical note that YOUR_KEY must be replaced with a website-restricted key, but adds little beyond the schema about 'style.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it returns ready-to-paste HTML/JavaScript for an interactive zoomable map, or a raster tile URL template. The phrase 'interactive, zoomable' implicitly separates it from static_map, but no sibling is named explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains clearly which variant to pick: MapLibre for vector, Leaflet or OpenLayers for raster, and tile_url 'for any other library.' That is useful routing among options. It never says when to choose a sibling such as static_map instead, so there is no explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
privacy_area_mapMap an approximate area without revealing the exact pointARead-onlyIdempotentInspect
Show roughly where a place is without revealing the exact point. The point is snapped to a grid and drawn as a shaded circle that always contains the true point, with no pin; every address in the same grid cell gets the identical image, so the exact location cannot be recovered or averaged out across listings. Use it for real-estate, rental and marketplace listings, people's homes, or any location that should stay private. The image is returned inline, with a reusable URL that contains only the snapped point. Counts 1 static image against the account's monthly cap.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the exact place to hide. It is snapped to the grid before use and never returned | |
| lon | Yes | Longitude of the exact place to hide. It is snapped to the grid before use and never returned | |
| color | No | Circle colour as hex, e.g. 0f766e | |
| scale | No | Pixel density: 2 renders a sharper image for high-density screens at double the pixel size | |
| style | No | Map style: light (default), dark, white or grayscale | light |
| width | No | Image width in CSS pixels | |
| format | No | Image format. jpg and webp are smaller than png | png |
| height | No | Image height in CSS pixels | |
| radius_m | No | Minimum circle radius in metres; it is raised if needed so the circle always contains the true point | |
| snap_deg | No | Grid size in degrees (0.01 is about 1 km). 0 turns snapping off and is not recommended |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses the actual privacy mechanism (grid snapping, no pin, shaded circle guaranteed to contain the true point, identical output per grid cell) and closes the obvious re-identification attack by noting the point cannot be averaged out across listings. It also states the return shape (inline image plus reusable URL containing only the snapped point) and the cost: 'Counts 1 static image against the account's monthly cap.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The privacy guarantee is front-loaded in the first two sentences, then usage, then return/cost. It is slightly dense in the second sentence, but every sentence carries information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter image tool with no output schema, the description covers purpose, mechanism, privacy guarantees, return format, URL behavior, and billing cost. Nothing material is missing for an agent to decide whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains every parameter including snap_deg and radius_m. The description adds conceptual reinforcement of snapping but no new per-parameter semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and effect: render 'roughly where a place is without revealing the exact point', which cleanly separates it from an exact-point static map. It never names the sibling static_map explicitly, so an agent must infer the contrast from the privacy framing, which keeps it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete when-to-use guidance: 'real-estate, rental and marketplace listings, people's homes, or any location that should stay private.' It does not state the inverse rule (use static_map when the exact point is acceptable), so the alternative-selection guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_geocodeFind the address at a pointARead-onlyIdempotentInspect
Find the nearest address or place to a latitude/longitude, from OpenStreetMap data. Counts 1 address lookup against the account's monthly cap. Same storage terms and attribution as geocode.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the point to look up, in decimal degrees (WGS84) | |
| lon | Yes | Longitude of the point to look up, in decimal degrees (WGS84) | |
| lang | No | Preferred language for names, e.g. en, de, fr | |
| limit | No | Maximum number of nearby addresses or places to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive semantics and closed-world scope, yet the description adds genuinely new operational context: it consumes one address lookup against the account's monthly cap, and inherits the same storage/attribution terms as geocode. It does not cover failure behavior (e.g., open ocean / no match) or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool does, then cost, then licensing. Every sentence carries distinct information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say something about what comes back (an address record? multiple candidates when limit > 1? what happens when nothing is found). It also leaves the lang/limit interaction with results unexplained, so an agent knows how to call it but not fully what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so lat, lon, lang, and limit are fully documented in the schema with ranges, defaults, and formats. The description adds no meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find the nearest address or place to a latitude/longitude') plus the data source (OpenStreetMap). The reverse direction is clear enough to distinguish it from the forward 'geocode' sibling, though the description never names that sibling to make the contrast explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'reverse' vs the sibling 'geocode', but there is no explicit 'use this when you have coordinates; use geocode when you have an address' routing statement. The only sibling reference ('Same storage terms and attribution as geocode') is about licensing, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
static_mapRender a static map imageARead-onlyIdempotentInspect
Render a map as an image (returned inline) with optional pins (markers) and a line (path, e.g. a route). Give center and zoom, or just markers and/or path and the view is fitted automatically. Also returns a reusable image URL for web pages (add your key). Counts 1 static image against the account's monthly cap. Do not use this to show a private address such as someone's home; use privacy_area_map instead.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | A line through these points, in order | |
| zoom | No | 0 = world, 10 = city, 15 = streets, 18 = buildings | |
| scale | No | Pixel density: 2 renders a sharper image for high-density screens at double the pixel size | |
| style | No | Map style: light (default), dark, white or grayscale | light |
| width | No | Image width in CSS pixels | |
| center | No | Map centre; use with zoom | |
| format | No | Image format. jpg and webp are smaller than png | png |
| height | No | Image height in CSS pixels | |
| markers | No | Pins to draw | |
| padding | No | Space in pixels kept around markers and paths when the view is fitted automatically |
TDQS
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 goes further by disclosing that the image is returned inline, that a reusable image URL is also returned (requiring the caller's own key), and that each call consumes one static image against a monthly cap. That quota/credential context is exactly the kind of thing annotations cannot express. It stops short of saying what happens when the cap is exhausted or how errors surface, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action, then modes, then cost, then the exclusion — a sensible ordering with no filler. The stacked parentheticals in the opening sentence ("(returned inline)", "(markers)", "(path, e.g. a route)") are slightly cluttered but each carries disambiguating information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, zero-required rendering tool with no output schema, the description covers what is produced (inline image plus reusable URL), how the viewport is resolved, and the cost model — enough to call it correctly. The remaining gap is precedence when both center/zoom and markers/path are supplied, which an agent must currently guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema cannot: the relationship between center/zoom and markers/path (viewport is auto-fitted when no center is given) and that padding governs that auto-fit. It adds no per-parameter detail beyond the schema, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Render a map as an image" is a specific verb+resource, and the description immediately enumerates the payload (optional pins/markers, a line/path) and the output form (returned inline). It also names the sibling it is not for (privacy_area_map), so an agent can distinguish it from geocode, reverse_geocode and map_setup without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit operating modes — "Give center and zoom, or just markers and/or path and the view is fitted automatically" — plus a hard exclusion with a named alternative: "Do not use this to show a private address such as someone's home; use privacy_area_map instead." Both when-to-use and when-not-to-use are stated rather than inferred.
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.
5 tool updates
- First observed
geocode - First observed
map_setup - First observed
privacy_area_map - First observed
reverse_geocode - First observed
static_map
Related MCP Connectors
Geocode addresses, autocomplete searches and reverse geocode coordinates on open data. Free tier.
Maps, geocoding and time zones for AI coding agents, on OpenStreetMap, with hard prepaid spend caps.
Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data.
Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides forward/reverse geocoding, bounding box extraction, nearby places discovery, batch geocoding, route waypoints, and administrative boundary lookup using OpenStreetMap data.10Apache 2.0
- AlicenseAqualityDmaintenanceGeospatial API tools for AI agents — geocoding, reverse geocoding, routing, isochrone, distance matrix, static maps, H3 hexagons, elevation, GPS map-matching, point-in-polygon, address normalisation, timezone lookup, and batch geocoding. Built on OpenStreetMap infrastructure. Cost-effective alternative to Google Maps API.1839 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables geocoding, reverse geocoding, place search, OpenStreetMap object lookup, nearby category search, and local great-circle distance calculations through public OpenStreetMap APIs.MIT
- AlicenseNot gradedqualityBmaintenanceEnables desktop agents and clients to access geospatial services via a hosted MCP server, including OpenStreetMap queries, address and business search, POI discovery, routing, matrices, isochrones, map matching, optimization, elevation and terrain, basemap styling, spatial analysis, rendering, usage, and service status.32 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.