Open Street maps MCP App server

I developed an MCP App server that enables display of OpenStreetMap in Claude.ai
The url of this server is: https://open-street-map-mcp-app-apps-sdk.vercel.app/mcp
Instructions for connecting to this server are at: Remote MCP servers - Claude Platform Docs

here is a demo screen:

I would love to here from you

What tile server resources does it use? If OSMF’s, does it abide by their tile usage policy?

7 Likes

…yeah I don’t think you wrote a single line of code

2 Likes
  1. Fetches the tiles from: https://tile.openstreetmap.org
  2. To my best knowledge it does.
    you can see source code at: GitHub - krasnoff/open_street_map_mcp_app · GitHub

Did you or Claude read and understand the policy?
Why don’t you ask Claude to build a tileserver?

1 Like

I read and understood the policy.
The whole idea was to build the tile server myself and let Claude use it though MCP interface.

That would be fine, but contradicts:

Fetches the tiles from: https://tile.openstreetmap.org

Feel free to use paid services (they usually have a free tier) instead. Otherwise you make Entropic and similar more rich on OSMF costs.

1 Like

Fetching perhaps to create a duplicate library, rather than building their own library of tiles from a database. :angry:

I have to clarify myself.
I fetch the tiles from https://tile.openstreetmap.org
I just built an interface that allows Claude to display them on its web app.
I didn’t create any duplicate library or any other kind of library what so ever.

Some extracts:

OpenStreetMap (OSM) data is free for everyone to use. Our tile servers are not: they are funded by donations and sponsorship, and capacity is limited. To protect the service for mappers and the wider community,

LLMs are not part of our community.

Many HTTP clients and Software Development Kits (SDK) use a generic User-Agent header (e.g. okhttp/x.y, Go-http-client/1.1, python-requests/x.y, Java/1.8, curl/x.y). Traffic that uses these defaults will be blocked because we cannot identify or contact the actual application.

You’re helping LLMs to misuse the OSMF infrastructure.

We have already bad experience with Nominatim and Overpass misusage.

12 Likes

what is an mcp

1 Like

Maybe this - Understanding MCP servers - Model Context Protocol

4 Likes

Indeed, exactly this.

Displaying the map inside the chat interface is a minor evil. It’s just an iframe with Leaflet open. It’s like opening a link like this in a browser: osm.org/#map=19/56.7890/12.1234. It’s not clear why MCPs do this, because agents already know how to do it.

And here’s the fact that in MCP you provide a geocode-place tool that runs on top of Nominatim, which is much more sensitive to abuse… Well this is a direct violation of the rules: Update Nominatim usage policy by lonvia · Pull Request #170 · openstreetmap/owg-website · GitHub (for the sake of fairness, there is a delay between requests in this MCP, however, other rules are still violated)

Hell, agents can do this even without MCP, just by calling: nominatim.osm.org/search?format=jsonv2&q=London


And that’s all. Well, this is clearly not a thing that can be called an OpenStreetMapS MCP. (trademark compliance fight dogs, where are you? :)

3 Likes

OK, I switched to MapTiler
including the geocode search.
looks great!

1 Like

In the original MCP App I have created all the original calls from Claude to https://tile.openstreetmap.org contains the referrer:

claudemcpcontent.com

maybe you should consider to block all the requests from this referrer.

Thanks for the hint.