Skip to main content
Glama
DavidSirota

rollin-mcp-server

by DavidSirota

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.4Hosted 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

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.

Related MCP server: Google Maps MCP Server

Why MCP?

Model Context Protocol 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:

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

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 — no credit card required. Set ROLLIN_API_KEY in your config to unlock unlimited requests.

3. Configure Your Client

Add to your MCP client's configuration file:

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

Works with any desktop MCP client.

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

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

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

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

Pipe into any MCP-compatible process.

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 →

MCP Server Page

joinrollin.com/mcp

API Reference (Interactive)

joinrollin.com/api-docs

API Documentation

joinrollin.com/developers

Developer Portal

joinrollin.com/portal

API Status

joinrollin.com/status

Python SDK

stainless-commons/rollin-python

MCP Protocol Spec

modelcontextprotocol.io

License

MIT — JoinRollin Inc

Available Tools

5 tools
check_healthCheck API HealthA

Check if the ROLLIN API is operational. Also reports trial mode status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It states the tool checks operational status and reports trial mode, but does not describe the response format or error handling. Basic behavior is clear, but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, direct sentences with no filler. Every word serves a purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should ideally specify the return format. It conveys intent but leaves the agent to infer the exact structure of the health status and trial mode information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With no parameters (100% schema coverage), the description adds value by explaining the tool's purpose and output. It goes beyond the empty schema by specifying what the tool does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and clearly identifies the resource ('ROLLIN API operational status') and additional feature ('trial mode status'). It effectively distinguishes from sibling tools which are all about locations or feedback.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. However, given its distinct purpose (health check) and the sibling tools being unrelated, the usage context is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_location_detailsGet Location DetailsA

Get full accessibility details and score breakdown for a specific location. Returns features, score components, and verification status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLocation ID (from search results)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool returns features, score components, and verification status, implying read-only behavior. However, it omits details about authentication, rate limits, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences, front-loading the core purpose and listing return content without any unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic purpose and return content, but lacks details on return format, error conditions, or prerequisites. For a simple single-parameter tool, it is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with a description. The tool description reinforces that 'id' is a location identifier but adds no new semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'accessibility details and score breakdown', and the constraint 'for a specific location'. It distinguishes the tool from siblings, which include system health, region listing, search, and feedback submission.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. The usage context is only implied by the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_regionsList Coverage RegionsA

List all regions where accessibility data is available. Returns states, regions, and location counts for each area.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It explains the output (states, regions, location counts) but does not disclose whether the operation is read-only, any required permissions, or data freshness. The behavior is partially transparent but lacks safety assurances.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and immediately followed by return details. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description adequately covers the return type (states, regions, location counts). It could mention pagination or data freshness, but the information given is sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%. The description adds value by explaining the return structure beyond what the empty schema provides, meeting the baseline for no-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all regions with accessibility data and specifies the return content (states, regions, location counts). It distinguishes itself from sibling tools like search_locations or get_location_details by focusing on region-level listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing a list of regions, but lacks explicit guidance on when to use alternatives (e.g., search_locations for filtering, get_location_details for a single location). No exclusions or context about prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_locationsSearch Accessible LocationsA

Search for wheelchair-accessible restaurants, cafes, and bars near a location. Returns scored results with accessibility features. Requires latitude and longitude.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch by name, cuisine, or category (e.g. 'sushi', 'Italian')
latYesLatitude of the search center
lngYesLongitude of the search center
limitNoNumber of results (default 10, max 50)
radiusNoSearch radius in miles (default 5, max 25)
featuresNoComma-separated feature filter: wheelchair_entry, accessible_restroom, level_entry, parking, elevator, wide_aisles
lightingNoFilter by ambient lighting level: bright, moderate, or dim
min_scoreNoMinimum accessibility score (0-100)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states that results are 'scored with accessibility features', hinting at a read-only operation, but does not disclose details like sorting or pagination. No contradiction with annotations exists (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short sentences, front-loading the core purpose. It could be slightly more integrated, but it is efficient and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and no annotations, the description is adequate but incomplete. It mentions scored results and accessibility features but does not explain the score range, output structure, or how to use filters (e.g., features, lighting) that are present in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description reiterates the need for latitude/longitude, already clear from the schema. It adds no new meaning beyond what the schema provides for the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') and identifies the resource ('wheelchair-accessible restaurants, cafes, and bars') and the requirement for location input. It clearly distinguishes from sibling tools, which are unrelated (check_health, get_location_details, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is intended for finding accessible places near a given location, and it explicitly notes required parameters. However, it does not provide exclusion criteria or compare with alternatives, but the context is sufficient given the distinct sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_feedbackSubmit Location FeedbackA

Submit a correction or feedback about a location's accessibility. Use this when a user reports that accessibility information is inaccurate.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoAdditional context (max 1000 characters)
featuresNoFeature corrections, e.g. { wheelchair_entry: true, parking: false }
location_idYesLocation ID to submit feedback for
feedback_typeYesType: 'accurate' to confirm, 'inaccurate' to flag, 'correction' to update features

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It implies a write operation ('Submit') but does not state whether the submission is destructive, requires authentication, or has rate limits. There is no mention of confirmation or feedback lifecycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundant information. The first sentence states the action, the second gives usage context. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description should at least hint at the result (e.g., confirmation, error handling). It does not. For a tool with 4 parameters including a nested object, more behavioral context (e.g., whether submission is immediate or queued) would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema (e.g., mentions 'correction' and 'feedback' but not specific parameters). The schema itself adequately documents each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Submit a correction or feedback') and the resource ('location's accessibility'). It distinguishes from sibling tools (check_health, get_location_details, etc.) by focusing on feedback submission.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when a user reports that accessibility information is inaccurate,' providing clear context for when to use. It does not mention when not to use or alternatives, but siblings are sufficiently different.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
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
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to search, validate, and edit OpenStreetMap data through natural language commands and built-in safety protections. It supports discovery of nearby amenities, geographic data exploration, and secure map editing via OAuth authentication.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables place search and discovery via the Foursquare Places API v3, allowing AI assistants to find venues, search near locations, look up place details, and get location context.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DavidSirota/rollin-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server