MCP Connection Guide
Connect to your AI
One URL. No auth. Works with Claude Desktop, Claude.ai, Cursor, and any MCP-compatible client.
Claude Desktop
Claude.ai
Cursor
Any MCP client
Step 01 · Pick your client
Add the server
-
01
Find your config file
Mac:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json -
02
Add this inside the
"mcpServers"key
claude_desktop_config.json
"petaluma": { "type": "sse", "url": "https://petaluma-civic.fly.dev/mcp" }
-
03
Restart Claude Desktop after saving the file.
-
01
Go to Settings → Integrations → Add custom integration
-
02
Paste this URL
Integration URL
https://petaluma-civic.fly.dev/mcp
No API key needed. Leave the auth fields blank.
Add Petaluma Civic as an SSE MCP server in your client's settings. Use the URL below and refer to your client's MCP documentation for where to paste it.
MCP server URL · SSE transport
https://petaluma-civic.fly.dev/mcp
No authentication required. The server uses SSE transport.
Step 02 · Verify it worked
Try your first question
Once connected, paste this into your AI client. If Petaluma Civic is active, you'll get an answer grounded in real council records.
Sample prompt
you
"What did the Petaluma City Council vote on at their most recent meeting?"
Step 03 · What you can ask
Three tools, hundreds of questions
The server exposes three tools. Your AI client will pick the right one automatically.
semantic_search
Find documents by meaning across ordinances, transcripts, agendas, and meeting minutes. Use this when you want to understand what the city has said or decided about a topic.
execute_sql
Query structured data directly — council votes, attendance records, permit counts, budget items. Returns precise, tabular results from the underlying PostgreSQL database.
get_permit_detail
Look up live permit status for a specific address or permit number, pulled directly from the city's permitting system.