# Where a proposal stands (`mttr_proposal`)

Updated October 24, 2026.

## What does mttr_proposal do?

Says where one proposal stands: pending, approved, declined or expired. It says deploy only once you approved it, and gives your reason when you declined. A key may make this call on the sites it has claimed.

Who may call it: Your claimed sites.

## When to use it

- The assistant is waiting to deploy a proposed change.

## What you ask

You might say: “Has my proposal for example.com been approved?”

```
mttr_proposal({ id: 4242 })
```

| Argument | Type | Needed | What it is |
| --- | --- | --- | --- |
| `id` | Number | Yes | The proposal id that mttr_propose returned. |

## What comes back

- Where it stands, and whether to deploy.
- Your reason, when you declined it.

A sample, with made-up sites and figures:

1. Proposed
2. Emailed to you
3. Approved (here)
4. Deployed

Approved. Deploy is now true.

## Over HTTP

```
curl "https://mttr.si/api/v1/account/proposal?id=4242" \
  -H "Authorization: Bearer $MTTR_KEY"
```

## When it fails

| When | Status | What to do |
| --- | --- | --- |
| Your assistant has no key yet | 401 over MCP | Sign up with `mttr_signup`, then connect again with the key it gives. |

## Sources

- [Model Context Protocol: tools](https://modelcontextprotocol.io/specification/2025-06-18/server/tools), Model Context Protocol: How an assistant calls a tool.

The call in full: [mttr_proposal in the API reference](https://mttr.si/docs/reference#mttr_proposal).

## Goes with

- [Propose a change](https://mttr.si/docs/tools/propose.md)
- [Every proposal](https://mttr.si/docs/tools/proposals.md)
