Social Media Post: Linkedin
Mappedin MCP Server and the navigation agent built on top of it are closely aligned with the Mappedin Grocery Demo Map.
You can view the demo map here:
https://app.mappedin.com/map/6679882a8298d5000b85ee89?floor=m_f62f718116360827
The Stock Tracker MCP Server also includes items that match the layout and content of this demo map.
If users want to work with a new or custom map they will need to use Mappedin services to generate and integrate that map properly.
A Model Context Protocol (MCP) server that provides indoor navigation capabilities using the Mappedin API. This server enables AI agents to help users navigate indoor spaces such as shopping malls, airports, hospitals, and other large buildings.
This MCP server acts as a bridge between AI agents and the Mappedin indoor mapping platform, allowing users to receive turn-by-turn navigation instructions within indoor environments. The server maintains user location state and provides natural language directions that can be easily consumed by voice assistants or chatbots.
Watch the server in action:
The server intelligently searches for destinations across multiple location types:
Navigation instructions are formatted for optimal voice delivery:
@modelcontextprotocol/sdk v1.22.0@mappedin/mappedin-js v6.4.0server.ts)
getMapInstructions tool to AI agentstool.ts)
utils.ts)
formatNavigationInstructions() - Converts raw Mappedin directions into voice-friendly textsetAndGetCurrentLocation() - Persists user location to diskgetCurrentLocationFromFile() - Retrieves stored location or defaults to "Entrance"getConnectionType() - Identifies floor transition types (elevator, escalator, stairs)# Clone the repository
git clone <repository-url>
cd mappedin-mcp-server
# Install dependencies
npm install
# or
bun install
Set the following environment variables (optional - defaults to demo credentials):
MAPPEDIN_API_KEY=your_api_key
MAPPEDIN_API_SECRET=your_api_secret
MAPPEDIN_MAP_ID=your_map_id
BL_SERVER_PORT=8000
BL_SERVER_HOST=0.0.0.0
Note: The server includes demo credentials for testing purposes. See Mappedin Demo API Keys for terms and conditions.
# Using Bun
bun run server.ts
# Using Node.js with ts-node
npx ts-node server.ts
The server will start on http://0.0.0.0:8000/mcp (or your configured host/port).
getMapInstructions
Retrieves navigation instructions from the user's current location to a specified destination.
{
destination: string // Name of the destination (min: 1, max: 100 characters)
}
{
"content": [
{
"type": "text",
"text": "{\"totalDistance\": 45, \"voiceDirections\": \"Here are your directions: Begin walking. Turn left. Walk 20 meters. Take the elevator to change floors. Exit the elevator. Walk 15 meters. You have reached your destination.\"}"
}
]
}
totalDistance (number): Total distance in metersvoiceDirections (string): Natural language turn-by-turn directions{
"destination": "Apple Store"
}
Response:
{
"totalDistance": 120,
"voiceDirections": "Here are your directions: Begin walking. Turn right. Walk 50 meters. Turn left. Walk 70 meters. You have reached your destination."
}
{
"destination": "Food Court"
}
Response:
{
"totalDistance": 85,
"voiceDirections": "Here are your directions: Begin walking. Walk 30 meters. Take the escalator to change floors. Exit the escalator. Turn right. Walk 40 meters. You have reached your destination."
}
{
"destination": "Entrance"
}
Response:
{
"totalDistance": 0,
"voiceDirections": "You are already at the destination."
}
This MCP server is designed to be used by AI agents to provide indoor navigation assistance. Here's how it works:
getMapInstructions({ destination: "Apple Store" })The server maintains user location state in current-location.json:
{
"currentLocation": "Apple Store"
}
# Dockerfile included in repository
docker build -t mappedin-mcp-server .
docker run -p 8000:8000 mappedin-mcp-server
The server is configured for deployment on Blaxel with blaxel.toml:
[server]
port = 8000
mappedin-mcp-server/
βββ server.ts # MCP server setup and Express app
βββ tool.ts # Navigation tool implementation
βββ utils.ts # Helper functions and formatters
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ Dockerfile # Container configuration
βββ blaxel.toml # Blaxel deployment config
@modelcontextprotocol/sdk - MCP protocol implementation@mappedin/mappedin-js - Mappedin API clientexpress - HTTP server frameworkzod - Schema validationSee repository license file for details.
Contributions are welcome! Please feel free to submit issues or pull requests.
Built with β€οΈ for accessible indoor navigation