NY State bills, laws, members, committees, calendars and transcripts from NYS Open Legislation
MCPpedia last refreshed this data
io.github.BetaNYC/nys-openlegislation-mcp is an MCP server that NY State bills, laws, members, committees, calendars and transcripts from NYS Open Legislation. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 61/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"nys-openlegislation": {
"env": {
"NYS_LEGISLATION_API_KEY": "your-api-key-here"
},
"args": [
"-y",
"@betanyc/nys-openlegislation-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
NY State bills, laws, members, committees, calendars and transcripts from NYS Open Legislation
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@betanyc/nys-openlegislation-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @betanyc/nys-openlegislation-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in legal
Korean law: statutes, precedents, ordinances, treaties and citation verification (법제처 API).
Supplier lien and notice deadlines by project scope. Public lien guides for all 50 states and DC.
Missouri Revised Statutes — state statutes by citation.
Nevada Revised Statutes — state statutes by citation.
MCP Security Weekly
Get CVE alerts and security updates for io.github.BetaNYC/nys-openlegislation-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP server for the NYS Open Legislation API, maintained by the New York State Senate. Gives AI assistants direct access to the full NYS legislative record — bills, laws, members, committees, calendars, agendas, and transcripts — covering 150,000+ bills and resolutions dating back to 2009.
Built by BetaNYC as part of a suite of civic data MCP servers for New York.
| Resource | Tools |
|---|---|
| Bills | Search, get by print number, list by session, get votes, track updates |
| Laws | List all law bodies, browse law trees, retrieve section text |
| Members | List and search Senate and Assembly members |
| Committees | List committees, get details and meeting history |
| Floor Calendars | List and get Senate floor calendars |
| Agendas | List and get committee agendas with vote records |
| Transcripts | Floor session and public hearing transcripts |
| Updates | Aggregate change feed across all content types |
| Search | Full-text ElasticSearch within a content type (bills, laws, agendas, calendars, transcripts, hearings) |
A free API key is strongly recommended, and required for live data. Get one from the NYS Open Legislation portal and set it as the NYS_LEGISLATION_API_KEY environment variable:
NYS_LEGISLATION_API_KEY (e.g. export NYS_LEGISLATION_API_KEY="your-api-key"), or pass it in your MCP client's env block — see InstallationWithout a key, the server still starts as long as a local corpus exists, and serves it in local-only mode. Results are labelled with the corpus sync date and a note saying what refreshes them. The 5 tools with no local coverage (get_bill_votes, get_bill_updates, get_committee_meetings, get_updates, search) return a message naming the key rather than failing opaquely, and a lookup that finds nothing in the corpus says so explicitly — offline, "not in the corpus" and "does not exist" are not the same claim.
The server refuses to start only when both the key and the corpus are missing.
Bill URLs returned by this server point to the public nysenate.gov website — no login required.
Requires Node.js 20 or newer.
No global install needed. Add to your Claude Desktop config and npx handles the rest.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"nys-openlegislation": {
"command": "npx",
"args": ["-y", "@betanyc/nys-openlegislation-mcp"],
"env": {
"NYS_LEGISLATION_API_KEY": "your-api-key-here"
}
}
}
}
Restart Claude Desktop. The server starts automatically.
npm install -g @betanyc/nys-openlegislation-mcp
Then in your MCP config:
{
"mcpServers": {
"nys-openlegislation": {
"command": "nys-openlegislation-mcp",
"env": {
"NYS_LEGISLATION_API_KEY": "your-api-key-here"
}
}
}
}
By default the server queries the live NYS Open Legislation API on every request. If you run large workloads — bulk research, repeated searches, or offline use — you can build a local SQLite corpus that the server queries first, falling back to the API only on a cache miss.
The corpus is also what makes the server usable without an API key: with a corpus present and no key, it starts in local-only mode instead of exiting. Building the corpus in the first place does require a key (npm run sync calls the live API), so this is a "borrow a colleague's corpus" or "key expired" path, not a way