parknyc-mcp logo

parknyc-mcp

ltyu/parknyc-mcp
0 starsUpdated 2026-03-27Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

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

README.md

parknyc-mcp

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

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.