# Mapillary MCP

> Mapillary connects your AI client to the world's largest street-level imagery platform. You search for images, map features (like traffic signs), and object detections across any area globally. It gives you image metadata—GPS coordinates, capture dates, and compass angles—so you can pinpoint exactly what was captured where.

## Overview
- **Category:** image-video
- **Price:** Free
- **Tags:** street-view, computer-vision, spatial-imagery, mapping, gps-data, traffic-signs

## Description

Mapillary lets your agent access the world’s street-level imagery data through natural conversation.

This server exposes several tools for geospatial analysis: 
*   **Search Images**: Pinpoint images using a geographic bounding box. 
*   **Search Sequences**: Find connected image sets (routes) that pass through an area. 
*   **Map Features**: Search for specific static elements like traffic signs or road markings by location.
*   **Image Detection**: Get object detections and detailed values from specific images, linking the detection to its geometry and confidence score.

## Tools

### get_detection_value
Gets specific details—type, GPS coordinates, and association—for a single detected object.

### get_image
Returns comprehensive metadata for one image ID, including capture time, location, and sequence ID.

### get_image_detections
Lists all detected objects within a specific image, providing their types, geometry, and confidence scores.

### get_map_features
Searches for static map elements like traffic signs or road markings across an area of interest.

### get_sequence
Retrieves metadata and linked images for a continuous set of photos captured along a route.

### search_images
Finds image IDs, coordinates, and capture dates by searching within a defined geographic bounding box.

### search_sequences
Locates entire photo sequences (routes) that pass through a specified geographical area.

## Prompt Examples

**Prompt:** 
```
Find street-level images in central London.
```

**Response:** 
```
Found 500+ images in central London bounding box. Images span major streets including Oxford Street, Regent Street and the Thames embankment. Each with GPS coordinates, capture dates and compass angles.
```

**Prompt:** 
```
Search for traffic signs in São Paulo.
```

**Response:** 
```
Found 200+ traffic signs including: speed limits (40km/h, 60km/h), stop signs, yield signs and no-parking zones. Each with GPS coordinates and detection confidence.
```

**Prompt:** 
```
Get object detections for image abc123.
```

**Response:** 
```
Found 8 detections: regulatory--maximum-speed-limit-50--g1, information--parking--g1, warning--curve-left--g1, object--street-light--g1, and 4 more. Each with value, geometry and confidence score.
```

## Capabilities

### Locate Imagery
You ask your agent to find street-level photos or sequences along a specific route using coordinates.

### Audit Infrastructure
Your agent searches for map features—like stop signs, speed limits, and road markings—in a defined area, useful for planning or auditing.

### Analyze Objects in Photos
You instruct your agent to list every detected object (e.g., streetlights, vehicles) found within a specific image ID.

### Get Image Metadata
The server returns the full details for an image, including its capture date, precise GPS coordinates, and angle.

### Process Detection Details
You retrieve granular data on a single object detection, showing its specific type, value, and exact location within the photo.

## Use Cases

### Auditing Speed Limits
A planner needs to check if all speed limits are posted on a major street. They use `get_map_features` over the street's bounding box. The agent filters results for 'speed limit sign' and gets GPS coordinates and confidence scores, confirming compliance quickly.

### Tracking Changes in Urban Areas
A researcher wants to know what objects were present in a park six months ago versus today. They use `search_sequences` to find the path, then compare the object lists from `get_image_detections` for corresponding image IDs.

### Validating Autonomous Driving Paths
A developer simulates a driving route using coordinates and calls `search_images`. For key intersections, they run `get_image_detections` to confirm the agent's perception stack can identify everything from stop signs to pedestrian crossings.

### Forensic Image Analysis
Given a specific image ID, the user needs to know exactly what was captured. They call `get_image`, which provides the full metadata (GPS, date) and then call `get_image_detections` for the list of objects.

## Benefits

- Find objects across wide areas: Instead of checking one photo at a time, use `get_map_features` to search for all traffic signs or road markings in an entire quadrant.
- Understand the journey's context: Use `search_sequences` and then `get_sequence` to track how conditions change along a specific route path over time.
- Deep dive into single images: If you find an image ID using `search_images`, run `get_image_detections` immediately. This lists every object the system found, giving confidence scores for each one.
- Pinpoint exact object data: Don't just know a car was there; use `get_detection_value` to get that specific detection's type, GPS coordinates, and image link.
- Get full photo context: Use `get_image` on any ID to pull back the original capture date, compass angle, and organization data—the whole metadata package.

## How It Works

The bottom line is you get structured access to massive amounts of geospatial data that would otherwise require dedicated GIS software.

1. First, your agent uses `search_images` or `get_map_features` with coordinates to narrow down the area of interest.
2. Next, you pass a specific image ID or sequence ID to `get_image` or `get_image_detections` to retrieve the raw data and associated objects.
3. Finally, your agent processes the output using `get_detection_value` or `get_sequence` to extract actionable metadata—like a speed limit value or GPS path.

## Frequently Asked Questions

**How do I search street view images using `search_images`?**
You pass the function your bounding box parameters: min_lon, min_lat, max_lon, max_lat. The server returns a list of image IDs, coordinates, and capture dates that fall within that specific rectangle.

**What is the difference between `search_images` and `search_sequences`?**
`search_images` finds individual, isolated photos. `search_sequences` finds continuous paths or routes composed of multiple connected images; you'll get a sequence ID instead.

**Can I find traffic signs using the `get_map_features` tool?**
Yes, that’s exactly what it does. You query `get_map_features` by area and filter for 'traffic sign' or other road markings to build an inventory.

**What fields can I request when using `get_image`?**
You pass a `fields` parameter. You can request specific metadata like geometry, compass angle, captured_at, sequence ID, or various thumbnail URLs to get exactly the data you need.

**How do I authenticate my agent to use the `get_image` tool?**
You first subscribe to the Mapillary server and provide your unique access token. Once connected, you can call `get_image` with specific coordinates or IDs to pull detailed metadata about any street-level photo.

**What is the best way to handle high volumes of data when running a query using `search_images`?**
Be mindful of your rate limits and bounding box size. For large areas, break your search into smaller, manageable geographical sections. This prevents quota overruns and keeps results stable.

**If I get a list of detections for an image using `get_image_detections`, how do I get more detail on one specific object?**
You pass the unique detection ID to the `get_detection_value` tool. This gives you granular information, including the object's exact type, confidence score, and precise GPS coordinates.

**When using `get_map_features`, what format must I use for my search area?**
You need to provide your search area as a geographical bounding box. This is formatted as four comma-separated values: min_lon, min_lat, max_lon, and max_lat.

**How do I get a Mapillary access token?**
Sign up at [**mapillary.com/developer**](https://www.mapillary.com/developer) and create an application to get your access token.

**What is a bounding box?**
A bounding box defines a geographic area using min_longitude, min_latitude, max_longitude, max_latitude. Example: "-0.15,51.50,-0.10,51.52" covers central London.

**What map features are available?**
Mapillary detects traffic signs (stop, speed limit, yield, etc.), road objects (fire hydrants, mailboxes, etc.) and road markings. Use get_map_features to search by area.