This is a Model Context Protocol (MCP) server that provides AI assistants with access to Stadia Maps APIs for location services, geocoding, routing, and mapping capabilities. - Time information anywhere on earth - Current time - Time zone info (ID, UTC offset, and whether a special offset like daylight saving/summer time is in effect) - Geocoding - Address lookup - Place search (POIs like restaura
Add this skill
npx mdskills install stadiamaps/stadiamaps-mcp-server-tsComprehensive MCP server providing rich location APIs with excellent docs and integration examples
1# Stadia Maps MCP Server (TypeScript)23This is a Model Context Protocol (MCP) server4that provides AI assistants with access to Stadia Maps APIs for location services, geocoding, routing, and mapping capabilities.56<a href="https://glama.ai/mcp/servers/@stadiamaps/stadiamaps-mcp-server-ts">7 <img width="380" height="200" src="https://glama.ai/mcp/servers/@stadiamaps/stadiamaps-mcp-server-ts/badge" alt="Stadia Maps Location API Server MCP server" />8</a>910## Capabilities1112- Time information anywhere on earth13 - Current time14 - Time zone info (ID, UTC offset, and whether a special offset like daylight saving/summer time is in effect)15- Geocoding16 - Address lookup17 - Place search (POIs like restaurants, cafes, etc.)18- Static map image generation (including markers and route overlays)19- Routing & travel time20- Isochrones (reachable range; both time and distance contours)2122### Use cases2324Here are just a few of the ways you can prompt an LLM25to make use of the tools:2627- "What time is it in Tokyo?"28- "Make me a map showing the walking route from Depoo Turg to the Põhjala Tap Room."29- "Is the Põhjala Tap Room open right now? Use Stadia Maps to get this information."30- "Geocode the addresses in the attached spreadsheet."3132## Quickstart3334## Building3536We'll use `bun` for all of our instructions,37but you can use `npm` too.38391. Run `bun install` to fetch the dependencies.402. Then, execute the build script: `bun run build`.4142The built code should be in the `build` directory now.4344### Configuration4546This MCP server requires a Stadia Maps API key.47Follow the directions [here](https://docs.stadiamaps.com/authentication/#api-keys) to get your free key.48Then, set the `API_KEY` environment variable when running the server.4950## Integration Examples5152API key in hand, here are a few ways you can use the MCP server.5354### Claude Desktop5556See [Claude Desktop Setup](claude-desktop-setup.md) for detailed instructions57on configuring this MCP server with Claude Desktop.58Claude Desktop is a great tool for testing out workflows.5960### Warp6162See [Warp Setup](warp-setup.md) for detailed instructions63on setting up Warp with this MCP server.64Warp is a powerful agentic environment that uses LLMs to do things on your behalf.65Whereas you would need to upload a file to Claude,66Warp can directly access files,67write code, and execute programs on your computer.6869Paired with the Stadia Maps MCP, it's a powerful tool for tasks like bulk geocoding,70spatially filtering datasets, and more.7172### Programmatic Integration with Anthropic SDK7374For developers who want to integrate the MCP server programmatically into their TypeScript applications,75we have an [Anthropic SDK Integration Example](examples/README.md#anthropic-sdk-demo).76This example demonstrates how to:7778- Connect to the MCP server from your code79- Integrate with Claude's API for natural language queries80- Enhance Claude with spatial intelligence using the Stadia Maps APIs via an MCP server8182## Tips and Tricks8384LLMs are far from perfect,85and sometimes you need to put some thought into crafting prompts86to get good results.8788### When possible, be specific about which tool(s) to use8990Sometimes the model needs a nudge to use the right tool.91For example, if you ask for opening hours,92many models will try to search the web.93This information isn't always easily available for the model to find online.9495For example, watch what a model does here:96979899You can nudge the model to use the tools in this MCP like so:100101102103### Get creative104105LLMs are capable of a lot, but they can't always do everything.106As an example, let's look at one way to bulk geocode addresses in a spreadsheet.107108First, attach an Excel sheet in Claude Desktop which has a few addresses in a column.109110**Prompt:** Geocode all the addresses in this spreadsheet. Add the geocoded latitude and longitude as new columns in the sheet.111112At the time of this writing, Claude cannot generate a spreadsheet attachment113directly, but it _can_ generate an HTML page or other code which generates it for you!114In fact, Claude Desktop may actually ask you if you want an Excel sheet download,115but it will just go ahead and generate this for you instead.116117This sort of creativity is necessary, particularly when interacting with current118generation LLMs through the usual user interfaces.119A lot of the power of MCPs120is that you can interact with them through code,121which can overcome some of these limitations to provide a delightful user experience.122123### Customize it!124125Just like a human, LLMs do better when given the right tools for the job.126And just like a master craftsman, you'll probably need _some_ expert knowledge127to know how best to combine the right tools and materials.128129Additionally, models have a context limit.130While there are advanced techniques to squeeze more out of this,131you can only benefit by tailoring the MCP to the specific API functionality you need.132Not to mention, it will be _much_ cheaper for you to operate with just the tools you need133for a specific context.134**Tool schemas are vast majority of the context cost, in a simple demo!**135If you build the suite out to ~10 tools, you can end up with tens of thousands of input tokens.136137**This project is a starting point**,138and we've left comments throughout [`index.ts`](src/index.ts) noting our approach to building tools,139and how you can tailor them for your use case.
Full transparency — inspect the skill content before installing.