# get_signing_status

A compact answer to "who has signed, and who is next?", cheaper for the model to read than the full pact.

MCP tool at `https://api.signwithsigil.com/mcp`. Read-only. Idempotent.

## Description (what the model sees)

> A short status for one pact: its state, each signer with signed/pending/declined and when, and who is next.

## Arguments

- `uid` (string, required): The pact's uid (8 characters).

## Returns

A short status. This shape is MCP only; the REST API has the full pact instead. Returned as one `text` content item holding JSON.

- `uid` (string): The pact's id.
- `title` (string): Its title.
- `status` (string): The pact's status. One of: `draft`, `sent`, `sealed`, `declined`, `voided`, `lapsed`.
- `signed` (integer): Signers who have signed.
- `signers` (integer): Signers in total.
- `next` (object | null): The signer whose turn it is, while the pact is out. `null` otherwise.
  - `order` (integer): Their position.
  - `name` (string): Their name.
  - `email` (string): Their address.
  - `opened` (boolean): Whether they have opened their link.
- `recipients` (array of objects): Everyone, in order.
  - `order` (integer): Position.
  - `role` (string): Role. One of: `signer`, `cc`.
  - `name` (string): Name.
  - `email` (string): Address.
  - `status` (string): Status. One of: `pending`, `viewed`, `signed`, `declined`.
  - `date_signed` (string (date-time) | null): When they signed.
  - `decline_reason` (string | null): Why they declined.
- `date_lapses` (string (date-time) | null): When it lapses.
- `date_sealed` (string (date-time) | null): When it was sealed.

## Errors

Returned as a tool result with `isError: true` whose text is `An error occurred invoking 'get_signing_status': ` followed by one of:

- `No pact '{uid}'.`

## Example call

```json
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "get_signing_status",
    "arguments": {
      "uid": "K4TQ7MZE"
    }
  }
}
```

## Example result

```json
{
  "uid": "K4TQ7MZE",
  "title": "Consulting agreement with Acme",
  "status": "sent",
  "signed": 1,
  "signers": 2,
  "next": {
    "order": 2,
    "name": "Sam Ortiz",
    "email": "sam@example.com",
    "opened": false
  },
  "recipients": [
    {
      "order": 1,
      "role": "signer",
      "name": "Avery Lane",
      "email": "avery@example.com",
      "status": "signed",
      "date_signed": "2026-10-20T15:31:40Z",
      "decline_reason": null
    },
    {
      "order": 2,
      "role": "signer",
      "name": "Sam Ortiz",
      "email": "sam@example.com",
      "status": "pending",
      "date_signed": null,
      "decline_reason": null
    },
    {
      "order": 3,
      "role": "cc",
      "name": "Records",
      "email": "records@example.com",
      "status": "pending",
      "date_signed": null,
      "decline_reason": null
    }
  ],
  "date_lapses": "2026-11-03T14:05:01Z",
  "date_sealed": null
}
```
