# Pointr MCP

> Pointr provides access to complex indoor location data for your AI client. This MCP Server lets your agent understand multi-floor building layouts, track physical Bluetooth Low Energy (BLE) beacons, and find specific points of interest (POIs) inside large structures. You can run pathfinding calculations across multiple levels or audit network coverage by listing all registered hardware.

## Overview
- **Category:** iot-hardware
- **Price:** Free
- **Tags:** indoor-positioning, wayfinding, ble-beacons, geofencing, spatial-intelligence, mapping

## Description

Your AI client uses the `list_buildings` tool to get a master list of every structure registered with Pointr. From that, it calls `list_levels` using a specific building ID to map out all the distinct floor levels available in that building.

Once you know the scope—the buildings and the floors—you can use `get_building` to pull the complete structural configuration data for any single location. This tells your agent exactly what's going on inside, giving it a full model of the environment.

If you need floor plans, calling `get_level_map` gives you the detailed map data for whatever level you specify. You can also use `list_pois` to get an exhaustive list of every single Point of Interest (POI) in the entire system. If that list is too long, try `search_pois`; it lets your agent narrow down POIs using simple keywords—you don't need the ID to find a gate or a store.

The server provides specific details on any given location via `get_poi`, which pulls all the granular information for one single Point of Interest.

For navigation, you use `calculate_path` to determine the optimal walking route between two points. This isn't just drawing a line; it calculates paths that account for structural transitions across multiple floors, like stairs or escalators.

To audit what’s actually physically in the building, your agent uses `list_beacons` to list every registered BLE beacon and pinpoints its exact location on the map geometry. It also manages network alerts by calling `list_geofences`, which returns all configured internal trigger zones—those complex polygons used for triggering specific local warnings.

The Pointr MCP Server lets your agent understand space itself, treating the building as a structured database of physical reality.

## Tools

### calculate_path
Finds the optimal indoor walking path between two given points.

### get_building
Retrieves detailed structural configuration for a specific Pointr building ID.

### get_level_map
Gets the floor plan map data for any specified level within a building.

### get_poi
Retrieves all detailed information about one specific Point of Interest (POI).

### list_beacons
Lists every registered BLE beacon and its location within the platform.

### list_buildings
Provides a list of all buildings registered in the indoor intelligence system.

### list_geofences
Lists every configured internal trigger zone (geofence) for global alerts.

### list_levels
Returns all floor levels available inside a specific Pointr building.

### list_pois
Lists every registered Points of Interest (POIs) in the entire platform.

### search_pois
Searches for indoor POIs using a simple keyword query.

## Prompt Examples

**Prompt:** 
```
List all active building deployments registered in our Pointr instance.
```

**Response:** 
```
Command dispatched calling `list_buildings`. Extracted active mapping footprint indicating 3 explicit registered geographic facilities. Node list comprises `London HQ`, `Terminal B (Miami)`, and `Dubai Mall`. Do you hold operations over a specific building id to extract further details?
```

**Prompt:** 
```
Search for all restrooms securely listed under building ID `b1b2-c3c4`.
```

**Response:** 
```
Fuzzy node invocation engaged using `search_pois`. Tied keyword explicitly to building UUID parameter. The payload digested successfully revealing an array of 6 distinctly leveled 'Restroom' entities covering the Ground up to Level 3 boundaries natively. Mapping nodes cached.
```

**Prompt:** 
```
Calculate indoor path from POI `poi_origin` to `poi_destination`.
```

**Response:** 
```
Graph pathing computations dispatched under `calculate_path`. Pointr core algorithm solved spatial routing effectively spanning a 128-meter walking progression mapped across 2 floor transitions involving escalator node identifiers. Total array sequences delivered.
```

## Capabilities

### Model Building Hierarchy
List all registered buildings and then list the distinct floor levels within a specific building ID.

### Calculate Multi-Floor Routes
Determine the optimal path between two points, accounting for structural transitions like escalators or stairs across multiple floors.

### Audit Beacon Networks
List every registered BLE beacon in the system and verify their precise location within the building's map geometry.

### Search by Location Type
Find specific points of interest (POIs) like gates or stores using keywords, even if you don't know the exact POI ID.

### Map Floor Plans
Retrieve detailed floor plan data for a given building level to visualize structural constraints and layouts.

### Identify Alert Zones
List all defined indoor geofences, which are complex polygons used for triggering local alerts.

## Use Cases

### Finding a missing piece of equipment
A maintenance worker needs to locate a specific junction box in Building X. They run `list_buildings` first, then use `get_building` for the ID, followed by `list_levels` to get floor 2 map data, and finally `search_pois` with 'junction box' to pinpoint the exact location.

### Simulating crowd evacuation flow
A retail planner needs to test an emergency exit route. They call `calculate_path`, specifying the start POI and end POI, forcing the system to calculate the safest route across multiple floors, ensuring no structural walls are crossed.

### Checking beacon coverage after renovations
The facilities team suspects a dead zone. They call `list_beacons` to see all active hardware and then use `get_level_map` for the affected floor plan, cross-referencing the list against the map to find gaps.

### Auditing multi-zone alerts
The safety team needs to know what areas trigger local alarms. They run `list_geofences` to pull every active alert polygon, allowing them to verify if all critical zones (like fire exits) are correctly mapped.

## Benefits

- Find the exact path between two points, even if it crosses multiple floors. `calculate_path` solves for structural transitions like escalators, giving you a continuous route array.
- Audit your hardware footprint by running `list_beacons`. You can check every registered BLE sensor and verify its precise location against the current building geometry to spot gaps.
- Understand the full scope of an asset. Use `get_building` or `get_level_map` to pull detailed structural data for any specific site, isolating routing constraints into code context.
- Quickly locate amenities. Instead of sifting through thousands of records, use `search_pois` to find a restroom or gate just by typing keywords.
- Manage alert zones efficiently. Running `list_geofences` brings back every complex polygon defined for proactive indoor triggers, letting you audit your entire warning system at once.

## How It Works

The bottom line is: it lets your AI client treat massive indoor maps like simple, navigable code objects.

1. Append the Pointr connector to your MCP cluster and input your Enterprise Bearer Token.
2. Instruct your agent to identify the scope of work, perhaps by running `list_buildings` first.
3. The agent then sequences calls (e.g., using `get_level_map`, followed by `calculate_path`) to analyze the physical location data and deliver a structured result.

## Frequently Asked Questions

**How do I find all registered assets using list_beacons?**
Run `list_beacons` to get an exhaustive inventory of every beacon. This tool returns the unique ID and the precise location coordinates for each deployed sensor on the platform.

**Can I calculate a path across multiple floors using calculate_path?**
Yes, `calculate_path` is designed to solve multi-story routing. It accounts for structural transitions like escalators and stairs when calculating the optimal sequence of movement.

**What if I only know a general area name? Can search_pois help?**
You can use `search_pois` with keywords (like 'restroom' or 'loading dock'). The tool finds all matching POIs and lets you filter by specific building or level.

**Do I need to run get_building first before listing levels?**
Yes. `list_levels` requires a valid building ID. You should always use `get_building` or know the target Building UUID first to ensure you're looking at the correct structure.

**How do I ensure my credentials are correctly configured when running list_buildings?**
You must provide a valid Enterprise Bearer Token in the configuration vault. This token needs read scope access across all registered Pointr facilities to successfully map and retrieve building data.

**What structured format does get_level_map use when retrieving floor plan data?**
It returns geo-JSON polygons defining the precise boundaries of a specific building level. Your agent can parse these coordinates directly to calculate structural constraints and room layouts.

**After running search_pois, how do I get comprehensive details using get_poi?**
You must pass the unique POI ID found during your search into `get_poi`. This call retrieves specific metrics like operational hours, associated geofences, and full physical coordinates.

**If I use list_geofences, how does the system handle overlapping logical polygons?**
The platform validates all geometries. If multiple zones overlap, it automatically merges them into a single, comprehensive polygon boundary. This prevents data redundancy and ensures accurate alert triggers.

**Can the agent calculate walking paths across multiple floors?**
Yes. When triggering `calculate_path` supplied with explicit coordinate pairings spanning different Level UUIDs, the Pointr engine bridges the wayfinding automatically. It factors in fixed transitions like elevators or stairs natively, feeding the Agent the comprehensive turn-by-turn array in JSON format seamlessly.

**Is it possible to extract the giant raw map shapes for a given floor?**
Absolutely. By initiating the query `get_level_map` tied securely to a single level UUID, the interface processes and downloads massive explicit geometries mapping out physical walls, traversable space nodes, and internal partitions explicitly generated by the Pointr pipeline.

**Can I search for specific stores or bathrooms using text queries?**
Yes. Pointr exposes dense fuzzy logic matching indexes. When the Agent executes `search_pois` feeding a literal keyword alongside the Target Building ID, it reliably unearths precisely mapped nodes conforming to 'Restroom', 'Exit', or custom store names embedded dynamically.