Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Parknyc

FreeNot checked

Enables managing NYC parking sessions, vehicles, and zones through MCP clients using the ParkNYC/Flowbird API.

GitHubEmbed

About

Enables managing NYC parking sessions, vehicles, and zones through MCP clients using the ParkNYC/Flowbird API.

README

MCP server for ParkNYC (Flowbird) -- manage your NYC parking sessions, vehicles, and zones from any MCP client (Claude Code, Claude Desktop, etc.).

Note: The Flowbird consumer API is undocumented. This server was built by reverse-engineering the ParkNYC web app JavaScript bundles. No public API docs exist.

Setup

1. Install and build

git clone <repo-url> parknyc-mcp
cd parknyc-mcp
npm install
npm run build

2. Get your session cookies

The API authenticates via browser cookies. You need three: PHPSESSID, server, and user.

  1. Open my.nyc.flowbirdapp.com in Chrome and log in. Check "Keep me logged in" to extend cookie lifetime from ~30 minutes to days/weeks.
  2. Open DevTools (Cmd+Option+I) and go to the Network tab
  3. Filter for customer/get and refresh the page
  4. Click the customer/get request
  5. Under Request Headers, find the Cookie line
  6. Copy the full value -- it will look something like:
    server=.apachen2; PHPSESSID=abc123...; user=def456...
    

Important: Do not include the g_state cookie if present -- it contains JSON braces that break the config file. You only need PHPSESSID, server, and user.

3. Configure your MCP client

Claude Code

Add a .mcp.json file to your project root:

{
  "mcpServers": {
    "parknyc": {
      "command": "node",
      "args": ["/path/to/parknyc-mcp/dist/index.js"],
      "env": {
        "PARKNYC_COOKIES": "server=.apachen2; PHPSESSID=your_session_id; user=your_user_cookie"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "parknyc": {
      "command": "node",
      "args": ["/path/to/parknyc-mcp/dist/index.js"],
      "env": {
        "PARKNYC_COOKIES": "server=.apachen2; PHPSESSID=your_session_id; user=your_user_cookie"
      }
    }
  }
}

4. Session expiry

Cookies expire periodically. If you checked "Keep me logged in", they should last days to weeks. Without it, sessions expire in ~30 minutes. When you start getting 401 errors, repeat step 2 to get fresh cookies and update your config.

Environment Variables

Variable Required Description
PARKNYC_COOKIES Yes Full cookie string from browser (must include PHPSESSID, server, user)
PARKNYC_LANGUAGE No Language code for API responses (default: en)

Available Tools

Read

Tool Description
get_account Get your account profile (name, email, phone, address)
get_active_sessions Get currently active/ongoing parking sessions
get_parking_history Get past parking sessions with pagination
get_order Get details of a specific parking order by ID
get_vehicles List all registered vehicles
search_zone Search for a parking zone by number
get_zone_info Get zone details (facility ID or POS number)
get_bookmarks Get saved/favorite parking locations
get_payment_accounts Get payment methods on file (cards, e-wallet)

Write

Tool Description
start_parking Start a new parking session at a zone
stop_parking Stop an active parking session early
extend_parking Extend an active parking session
cancel_parking Cancel a parking order
add_vehicle Register a new vehicle
delete_vehicle Remove a vehicle from your account
add_bookmark Save a parking zone as a favorite
delete_bookmark Remove a saved favorite

Example Usage

> Show my parking history from this week
> Do I have any active parking sessions?
> What vehicles are on my account?
> Search for zone 12345
> How much have I spent on parking this month?
> Start 15 minutes of parking at zone 12345 with my car

How It Works

The Flowbird/ParkNYC web app at my.nyc.flowbirdapp.com is a PHP-backed Angular SPA. This MCP server mimics the browser's API calls:

  • Auth: Three cookies (PHPSESSID for PHP session, server for load balancer affinity, user for the auth identity token)
  • Headers: X-MPP-Brand: parknyc on every request
  • Params: platform=nyc, version=2.0.21+1792, and rt=<timestamp> on every request
  • History: Uses /api/search/order/ with x-api-caller: customer header
  • Parking: Two-step flow -- order/create (proposal) then order/confirm (payment)

Limitations

  • No programmatic login: The login endpoint requires reCAPTCHA, so cookies must be obtained manually from a browser session
  • Cookie expiry: PHP sessions and the user cookie expire; you'll need to refresh them periodically
  • Start parking: The start_parking tool needs the zone's usertype value which varies by zone. This is still being refined and may not work for all zones
  • Rate limits: Rapid API calls may trigger 503 responses from the server

License

MIT

from github.com/ltyu/parknyc-mcp

Install Parknyc in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install parknyc-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add parknyc-mcp -- npx -y github:ltyu/parknyc-mcp

FAQ

Is Parknyc MCP free?

Yes, Parknyc MCP is free — one-click install via Unyly at no cost.

Does Parknyc need an API key?

No, Parknyc runs without API keys or environment variables.

Is Parknyc hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Parknyc in Claude Desktop, Claude Code or Cursor?

Open Parknyc on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Parknyc with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs