parknyc-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@parknyc-mcpStart 15 minutes of parking at zone 12345 with my car"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 build2. Get your session cookies
The API authenticates via browser cookies. You need three: PHPSESSID, server, and user.
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.
Open DevTools (
Cmd+Option+I) and go to the Network tabFilter for
customer/getand refresh the pageClick the
customer/getrequestUnder Request Headers, find the Cookie line
Copy the full value -- it will look something like:
server=.apachen2; PHPSESSID=abc123...; user=def456...
Important: Do not include the
g_statecookie if present -- it contains JSON braces that break the config file. You only needPHPSESSID,server, anduser.
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.
Related MCP server: Samsara Fleet MCP Server
Environment Variables
Variable | Required | Description |
| Yes | Full cookie string from browser (must include |
| No | Language code for API responses (default: |
Available Tools
Read
Tool | Description |
| Get your account profile (name, email, phone, address) |
| Get currently active/ongoing parking sessions |
| Get past parking sessions with pagination |
| Get details of a specific parking order by ID |
| List all registered vehicles |
| Search for a parking zone by number |
| Get zone details (facility ID or POS number) |
| Get saved/favorite parking locations |
| Get payment methods on file (cards, e-wallet) |
Write
Tool | Description |
| Start a new parking session at a zone |
| Stop an active parking session early |
| Extend an active parking session |
| Cancel a parking order |
| Register a new vehicle |
| Remove a vehicle from your account |
| Save a parking zone as a favorite |
| 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 carHow 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 (
PHPSESSIDfor PHP session,serverfor load balancer affinity,userfor the auth identity token)Headers:
X-MPP-Brand: parknycon every requestParams:
platform=nyc,version=2.0.21+1792, andrt=<timestamp>on every requestHistory: Uses
/api/search/order/withx-api-caller: customerheaderParking: Two-step flow --
order/create(proposal) thenorder/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
usercookie expire; you'll need to refresh them periodicallyStart parking: The
start_parkingtool needs the zone'susertypevalue which varies by zone. This is still being refined and may not work for all zonesRate limits: Rapid API calls may trigger 503 responses from the server
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Authenticated MCP server for ClearPolicy policy and compliance workflows.
GSA Per Diem MCP — wraps the GSA Per Diem API v2 (api.gsa.gov)
DataDallas MCP — Dallas open data (www.dallasopendata.com, Socrata SODA API).
Recreation.gov MCP — wraps the Recreation Information Database (RIDB) API v1
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables users to manage parking sessions, track expiration times, and retrieve real-time weather and location context via MCP tools and resources.-
- FlicenseNot gradedqualityCmaintenanceExposes live Samsara fleet data via MCP tools for searching assets and retrieving GPS locations.-
- FlicenseNot gradedqualityBmaintenanceMCP server exposing live MBTA V3 transit data, with tools for routes, stops, arrivals, alerts, and vehicle positions.-
- AlicenseNot gradedqualityDmaintenanceEnables querying real-time BART and SF Muni transit data, including departures, trip planning, fares, advisories, routes, alerts, vehicle positions, and schedules, from any MCP-compatible client.1MIT