Skip to main content
Glama
DavidSirota

rollin-mcp-server

by DavidSirota
README.md
<p align="center">
  <a href="https://joinrollin.com">
    <img src="https://joinrollin.com/assets/rollin1-final.png" alt="ROLLIN" height="60">
  </a>
</p>

<h3 align="center">ROLLIN MCP Server</h3>

<p align="center">
  Wheelchair accessibility data for 98,000+ US locations, delivered through the Model Context Protocol.
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/rollin-mcp-server"><img src="https://img.shields.io/npm/v/rollin-mcp-server?style=flat-square&color=14b8a6&label=npm" alt="npm version"></a>
  <a href="https://www.npmjs.com/package/rollin-mcp-server"><img src="https://img.shields.io/npm/dm/rollin-mcp-server?style=flat-square&color=14b8a6" alt="npm downloads"></a>
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a>
  <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen?style=flat-square" alt="Node.js >=18">
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-14b8a6?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIxNCIgeT0iMiIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSI4IiB5PSIxNCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjIiLz48L3N2Zz4=" alt="MCP Compatible"></a>
</p>

---

**The only wheelchair accessibility data source available through MCP.** Search 98,000+ restaurants, cafes, and bars across the US. Get real 0-100 accessibility scores. Submit corrections through natural conversation. One protocol, every platform.

**v1.4** — **Hosted server.** Connect over Streamable HTTP at `https://joinrollin.com/api/mcp` with nothing to install, or run locally via npx. Trial mode still ships with the package: 5 free requests per session, no API key needed, with progressive nudges to a free key when you're ready.

> Nobody should have to call ahead to ask if they can get in the door.
> ROLLIN puts accessibility data where it actually gets used.

## Try It Now — No Key Required

```bash
npx rollin-mcp-server
```

That's it. The server starts in **trial mode** with 5 free requests. Real data, real scores, no signup. When you're ready for unlimited access, grab a free key at **[joinrollin.com/portal](https://joinrollin.com/portal.html)**.

## Why MCP?

[Model Context Protocol](https://modelcontextprotocol.io) is the open standard for connecting tools to data. No custom integrations. No API wrappers. No glue code.

Build one MCP server → every compatible client gets instant access. Think of it as **USB-C for data**: one plug, universal compatibility. ROLLIN was one of the first accessibility data providers to ship an MCP server.

**If your tool speaks MCP, it speaks accessibility.**

## Quick Start

### Option A: Hosted server (no install)

ROLLIN also runs a hosted MCP server over Streamable HTTP — nothing to run locally, always current:

```bash
claude mcp add --transport http rollin https://joinrollin.com/api/mcp \
  --header "X-Api-Key: your_api_key_here"
```

Works in any client that supports remote MCP servers. Send your key as an
`Authorization: Bearer` or `X-Api-Key` header. Any tier works, including Free.
Discovery (initialize, tools/list) needs no key; tool calls require one.

### Option B: Run locally via npx

### 1. Add the Server

```bash
npx rollin-mcp-server
```

No global install. Runs anywhere Node 18+ is available. **Works immediately in trial mode** — no API key needed for your first 5 requests.

### 2. Get a Free API Key (for unlimited access)

Sign up at **[joinrollin.com/portal](https://joinrollin.com/portal.html)** — no credit card required. Set `ROLLIN_API_KEY` in your config to unlock unlimited requests.

### 3. Configure Your Client

<details>
<summary><img src="assets/claude.svg" height="16" valign="middle"> <strong>Claude Desktop</strong> (JSON config)</summary>

Add to your MCP client's configuration file:

```json
{
  "mcpServers": {
    "rollin": {
      "command": "npx",
      "args": ["-y", "rollin-mcp-server"],
      "env": {
        "ROLLIN_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

Works with any desktop MCP client.

</details>

<details>
<summary><img src="assets/cursor.svg" height="16" valign="middle"> <strong>Cursor</strong></summary>

Add to `.cursor/mcp.json` in your workspace:

```json
{
  "mcpServers": {
    "rollin": {
      "command": "npx",
      "args": ["-y", "rollin-mcp-server"],
      "env": {
        "ROLLIN_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

</details>

<details>
<summary><img src="assets/vscode.svg" height="16" valign="middle"> <strong>VS Code</strong></summary>

Add to `.vscode/mcp.json` in your workspace:

```json
{
  "servers": {
    "rollin": {
      "command": "npx",
      "args": ["-y", "rollin-mcp-server"],
      "env": {
        "ROLLIN_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

</details>

<details>
<summary><img src="assets/terminal.svg" height="16" valign="middle"> <strong>CLI / Headless</strong></summary>

```bash
export ROLLIN_API_KEY="your_api_key_here"
npx -y rollin-mcp-server
```

Pipe into any MCP-compatible process.

</details>

## Tools

### `search_locations`
Search accessible venues by location, query, and accessibility criteria.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | no | Search query (name, cuisine, type) |
| `lat` | number | no | Latitude for location-based search |
| `lng` | number | no | Longitude for location-based search |
| `radius` | number | no | Search radius in miles (default: 10) |
| `min_score` | number | no | Minimum accessibility score 0-100 |
| `limit` | number | no | Max results (default: 20) |
| `lighting` | string | no | Filter by lighting: `bright`, `moderate`, `dim` |

### `get_location_details`
Full accessibility breakdown for a single venue.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | yes | Location ID from search results |

Returns: score (0-100), 6 tracked features (`wheelchair_entry`, `accessible_restroom`, `level_entry`, `parking`, `elevator`, `wide_aisles`), environment/lighting data, verification status, community feedback.

### `list_regions`
All coverage areas with location counts. No parameters.

### `submit_feedback`
Submit accessibility corrections through conversation.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `location_id` | string | yes | Location ID |
| `type` | string | yes | Feedback type |
| `message` | string | yes | Description of correction |

### `check_health`
Verify the API is up. No parameters.

## Example Prompts

Once configured, just ask naturally:

- *"Find wheelchair accessible Italian restaurants near Times Square"*
- *"What's the accessibility score for that spot?"*
- *"Which cities does ROLLIN cover?"*
- *"That restaurant has a ramp now — can you update it?"*

## Coverage

**98,000+ scored locations coast to coast**

| State | Regions |
|-------|---------|
| New York | NYC Metro, Hudson Valley, Long Island, Capital Region, Finger Lakes, Western NY, Adirondacks |
| California | LA Metro, SF Bay Area, San Diego, Sacramento, Central Coast, Inland Empire |
| Florida | Miami, Orlando, Tampa Bay, Jacksonville, Southwest FL |
| Massachusetts | Boston Metro, Western MA |
| Illinois | Northern IL, West-Central IL, Central IL, Southern IL |
| Colorado | Northeast CO, Northwest CO, Southeast CO, Southwest CO |
| Texas | DFW, Houston, Austin, San Antonio, El Paso |
| Ohio | Cleveland, Cincinnati, Columbus, Northwest OH |
| Georgia | Atlanta Metro, North Atlanta, Savannah, Augusta, Columbus, Macon, Athens, Albany |
| North Carolina | Charlotte Metro, Raleigh, Durham, Greensboro, Winston-Salem, Asheville, Wilmington, Fayetteville |
| South Carolina | Charleston, Columbia, Greenville, Myrtle Beach, Spartanburg, Hilton Head, Rock Hill, Florence |
| Idaho | Northern ID, Boise Metro |
| New Jersey | Statewide |
| Pennsylvania | Statewide |
| Washington DC | DC Metro |

## Pricing

The MCP server uses your ROLLIN API key. Same tiers, same limits.

| | Free | Starter | Developer | Business |
|---|---|---|---|---|
| **Requests** | 1,000/mo | 5,000/mo | 50,000/mo | 500,000/mo |
| **Price** | $0 | $9.99/mo | $29/mo | $149/mo |

**[Get your free key →](https://joinrollin.com/portal.html)**

## Links

| | |
|---|---|
| MCP Server Page | [joinrollin.com/mcp](https://joinrollin.com/mcp) |
| API Reference (Interactive) | [joinrollin.com/api-docs](https://joinrollin.com/api-docs) |
| API Documentation | [joinrollin.com/developers](https://joinrollin.com/developers.html) |
| Developer Portal | [joinrollin.com/portal](https://joinrollin.com/portal.html) |
| API Status | [joinrollin.com/status](https://joinrollin.com/status.html) |
| Python SDK | [stainless-commons/rollin-python](https://github.com/stainless-commons/rollin-python) |
| MCP Protocol Spec | [modelcontextprotocol.io](https://modelcontextprotocol.io) |

## License

MIT — [JoinRollin Inc](https://joinrollin.com)

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool serves a unique purpose: health check, location details, region listing, location search, and feedback submission. No two tools have overlapping functionality, making it easy for an agent to select the correct one.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using lowercase and underscores (e.g., check_health, list_regions). The verbs are distinct and descriptive, and the naming is uniform throughout.

Tool Count5/5

With 5 tools, the server is tightly scoped to its purpose of providing wheelchair accessibility information. Each tool is essential for the core workflows, and the count is neither too few nor too many.

Completeness4/5

The tool set covers key operations: health check, region discovery, location search, detail retrieval, and feedback. A minor gap is the lack of a tool to list all locations within a region without specifying coordinates, but the core functionality is well-covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues