# PorchQ MCP server

PorchQ runs a [Model Context Protocol](https://modelcontextprotocol.io) server at `https://porchq.com/mcp`. Assistants such as Claude and ChatGPT, and tools you build, use it to read and change what a person can read and change in PorchQ: their community's announcements, calendar, maintenance requests, documents, ballots and meeting notes.

The person stays in charge. They sign in to PorchQ, see what the app is asking for, choose which of their communities it reaches and whether it may make changes. They can take that back at any time.

| | |
|---|---|
| Endpoint | `https://porchq.com/mcp` |
| Transport | Streamable HTTP: `POST` only, JSON responses |
| Protocol revisions | `2026-07-28`, plus `2025-11-25`, `2025-06-18` and `2025-03-26` |
| Sign-in | OAuth 2.1 with PKCE (`S256`), discovered from the server |
| Tools | 14 ([reference](/developers/mcp/tools)) |
| Server | PorchQ MCP Server 1.5.0 |

## Who it's for

- **People in an HOA community** who want to ask Claude or ChatGPT about it, or have the assistant file a maintenance request for them. They add PorchQ to their assistant; nothing here is needed for that.
- **Developers** connecting their own MCP client, agent or script to PorchQ on a person's behalf.
- **Assistant platforms** listing PorchQ in their directories.

## How PorchQ is organised

- **Communities.** Each HOA community is a property in PorchQ's data, and tools name it with `property_id`, its public id (it looks like `prop_web4k2m9q7x1v8c3n5b6z0a2s4d`). A person can belong to more than one.
- **Roles.** A person has one role in each community: `owner` (a board member), `manager` (a community manager) or `tenant` (a resident). Owners and managers run the community; residents see what concerns them. The owners and managers of a management company count as managers in every community it runs.
- **What an app sees.** Every call acts as the person who connected, in one community, with their role there. An app sees exactly what that person sees in PorchQ, never more: a resident sees the maintenance requests they submitted, the documents shared with residents and the events and ballots meant for them. Some tools, such as the resident directory, answer only owners and managers.
- **What a connection reaches.** Only the communities the person ticked when they connected, and only the [permissions](/developers/mcp/permissions) they allowed.

## What changes through MCP

Changes go through the same paths as PorchQ's own website and phone apps, with the same checks and notifications:

- A maintenance request a resident files through an assistant notifies the community's staff, as one filed in PorchQ does.
- An announcement written through an assistant is saved as a **draft**. A person publishes it in PorchQ, and only then does it reach residents.
- A calendar event residents can see reaches them (reminders, the community website), so it waits for the person to confirm it on a PorchQ page. A staff-only event is created at once.
- No tool moves money.

Every tool call is recorded with who made it, through which app and with what [effect](/developers/mcp/tools#effects). Changes are limited per person, and every tool that changes something accepts an idempotency key so a retry never acts twice. See [Errors and limits](/developers/mcp/errors-and-limits).

## Where to go next

- [Quickstart](/developers/mcp/quickstart): connect a client and make your first calls in a few minutes.
- [Clients](/developers/mcp/clients): Claude, Claude Code, ChatGPT, the MCP Inspector and your own code.
- [Sign-in and tokens](/developers/mcp/authorization): every step of the OAuth flow, with requests and responses.
- [Tools](/developers/mcp/tools): what each tool does, who can use it, its arguments and what it returns.

These pages are also available as Markdown: add `.md` to any address, or start from [/developers/llms.txt](/developers/llms.txt).
