⚠ Experimental This is a design-first research prototype from API Evangelistnot an official City of New York API or service. Endpoints return example data; the MCP server and skills are demonstrations.
The programmable city

Every NYC API, MCP tool, and Skill — in one place

Seventy agencies, one chain: every REST operation has an MCP tool, and every tool serves one of ten common government processes — apply, report, request records, schedule, register, dispute, pay, look up. This is the whole agent-native surface the city could have, rendered from design-first artifacts.

The chain

REST operation → MCP tool → Agent Skill

The developer and the agent move through the same three layers. An operation is one API call; an MCP tool makes it agent-callable; an Agent Skill orchestrates tools across agencies to finish a real citizen task.

REST operation

MCP tool

Agent Skill

It's real

Call it. Install it.

The reference API is example data at stable URLs, served straight off GitHub Pages — genuinely callable (reads only; writes are documented, not executed). The same data backs an installable MCP server.

Call a reference endpoint


      

    

Install the MCP server

One click into any MCP client via install.apicommons.org, or run it directly. Design-first: reads return example data; write workflows are described, not executed.

npx -y @api-common/nyc-mcp

Tools: list_agencies · get_agency · search_city_data · look_up_place · find_agency_for_task. Plus the 7 prompts and the nyc:// resources.

The point

Ten common government processes

The 752 operations collapse into ten things residents actually do. Each is an Agent Skill that resolves the right agency and drives its tools. Click a process to filter the agencies below.

Cross-agency

MCP prompts

Whole-task entry points that span agencies.

Cross-agency

MCP resources

Shared context, anchored on the nyc-commons geography spine.

Across agencies

Workflows: chaining agencies into one journey Arazzo

A single outcome rarely lives in one agency. An Arazzo workflow chains the per-agency operations into one machine-readable journey — the connective tissue for automating approval management across agencies, as an open standard instead of another siloed portal.

Build Affordable Housing in NYC

The ~40-permit journey to build one affordable project — 20 steps across 12 agencies, keyed on the parcel's BBL (the nyc-commons spine), gated on project shape (rezoning · City-owned · landmark · conversion).

1 · Planning

geocode (DCP) → parcel (DOF) → ULURP (DCP) → environmental Notice to Proceed (MOER)

2 · Financing

bond + subsidy (HDC) → HPD project

3 · Permitting

design (PDC) · landmark (LPC) · stormwater + asbestos (DEP) · building (DOB) · fire alarm (FDNY) · street work (DOT) · tree (DPR)

4 · Lease-up

Certificate of Occupancy (DOB) → Housing Connect lottery (HPD)

In every language

One contract, ten languages OpenAPI Overlays

NYC Local Law 30 requires services in ten citywide languages. An OpenAPI Overlay localizes the interface — titles, operation summaries, tool descriptions — from one base contract, never the data: paths, operationIds, schema fields, and every returned record stay in one canonical shape. And because MCP tools derive 1:1 from the operations, the same overlay yields a localized MCP server. Worked example: the HPD Housing Connect lottery.

How it works

1 · base contract

one hpd/openapi/hpd.yaml

2 · N overlays

one thin overlay: 1.0.0 per language — JSONPath update actions on summary/title only

3 · N localized interfaces

localized OpenAPI and MCP — identifiers & data untouched

The surface

All 70 agencies, operation by operation