> ## Documentation Index
> Fetch the complete documentation index at: https://pomeroy.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool reference

> Every MCP tool Pomeroy serves, in wire order: its name, what it does, the app whose toggle gates it, and whether it reads or writes.

Pomeroy serves 27 tools. This is all of them, in the order an assistant sees
them in `tools/list`.

**Read** means the tool only reads your data. **Write** means it can change
something. Every write is listed here, and there are six.

## Allowance

| Tool            | App  | Kind | What it does                                                                                                                                                     |
| --------------- | ---- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `pomeroy_usage` | None | Read | How much of this week's allowance is left: the limit, calls used, calls remaining, and when the count refills. Asking is free and never counts against the limit |

## Calendar

| Tool                    | Kind  | What it does                                                                                                  |
| ----------------------- | ----- | ------------------------------------------------------------------------------------------------------------- |
| `calendar_today`        | Read  | Today's events. No arguments; "today" resolves in your Mac's local time zone                                  |
| `calendar_events`       | Read  | Events across whole local days, `from` through `to` inclusive                                                 |
| `calendar_create_event` | Write | Creates an event and returns it as saved, with its id                                                         |
| `calendar_update_event` | Write | Updates fields of an event by id. Only the fields sent change; a recurring event changes only that occurrence |

## Reminders

| Tool                 | Kind  | What it does                                                                          |
| -------------------- | ----- | ------------------------------------------------------------------------------------- |
| `reminders_list`     | Read  | Reminders, incomplete only by default, soonest due first. Can be filtered to one list |
| `reminders_create`   | Write | Creates a reminder and returns it as saved, with its id                               |
| `reminders_complete` | Write | Marks a reminder done by id. Safe to repeat                                           |

## Contacts

| Tool              | Kind | What it does                                                                             |
| ----------------- | ---- | ---------------------------------------------------------------------------------------- |
| `contacts_search` | Read | Searches by name, organisation, email address or phone-number fragment. Case-insensitive |

## Notes

| Tool           | Kind  | What it does                                        |
| -------------- | ----- | --------------------------------------------------- |
| `notes_list`   | Read  | Every note's id and name, sorted. Bodies excluded   |
| `notes_read`   | Read  | One note in full, by id, as plain text              |
| `notes_create` | Write | Creates a note and returns it as saved, with its id |

## Mail

| Tool             | Kind | What it does                                                                    |
| ---------------- | ---- | ------------------------------------------------------------------------------- |
| `mail_mailboxes` | Read | Every mailbox with account, message count and unread count                      |
| `mail_list`      | Read | Messages in one mailbox, newest first, with ids. Bodies excluded                |
| `mail_read`      | Read | One message in full, by id. Cut at 4,000 characters, and says so                |
| `mail_search`    | Read | Searches headers (default) or bodies via the local index. All tokens must match |
| `mail_unread`    | Read | Unread messages, newest first, with the total unread count                      |
| `mail_index`     | Read | Builds the local body index now and reports what it covered                     |

## Messages

| Tool                     | Kind | What it does                                                     |
| ------------------------ | ---- | ---------------------------------------------------------------- |
| `messages_conversations` | Read | Recent conversations, most recently active first, with ids       |
| `messages_search`        | Read | Searches message text, newest match first. Plain text, no syntax |
| `messages_read`          | Read | One conversation's recent messages, newest first, by id          |

## Maps

| Tool                 | Kind | What it does                                                           |
| -------------------- | ---- | ---------------------------------------------------------------------- |
| `maps_search_places` | Read | Places near a named place. Both arguments are names, never coordinates |
| `maps_directions`    | Read | Routes between two named places. Driving or walking                    |

## Weather

| Tool               | Kind | What it does                                                    |
| ------------------ | ---- | --------------------------------------------------------------- |
| `weather_current`  | Read | Current conditions for a named place, with the instant measured |
| `weather_forecast` | Read | Daily forecast for a named place: highs, lows, chance of rain   |

## Location

| Tool               | Kind | What it does                                                              |
| ------------------ | ---- | ------------------------------------------------------------------------- |
| `location_current` | Read | Where this Mac is, with the accuracy in metres and when the fix was taken |

## Shortcuts

| Tool             | Kind  | What it does                                                     |
| ---------------- | ----- | ---------------------------------------------------------------- |
| `shortcuts_list` | Read  | The shortcuts on this Mac, by name, sorted                       |
| `shortcuts_run`  | Write | Runs one shortcut by its exact name and returns what it produced |

## The six writes, in one place

Everything Pomeroy can change on your Mac:

| Tool                    | What it changes                       | Can it destroy anything?             |
| ----------------------- | ------------------------------------- | ------------------------------------ |
| `calendar_create_event` | Adds an event                         | No                                   |
| `calendar_update_event` | Changes fields on one event you named | It overwrites the fields it was sent |
| `reminders_create`      | Adds a reminder                       | No                                   |
| `reminders_complete`    | Marks one reminder done               | No                                   |
| `notes_create`          | Adds a note                           | No                                   |
| `shortcuts_run`         | Whatever your shortcut does           | Whatever you built it to do          |

There is no tool that deletes anything, in any app. There is no tool that
sends mail or a message. There is no tool that edits a contact or an existing
note.

## What gates a call

Two things, both of which must be open:

1. **The toggle** for the tool's app, in Pomeroy's settings.
2. **The grant** macOS holds for that app.

A tool whose app is switched off returns a refusal naming the switch to flip,
and never touches your data. `pomeroy_usage` sits above both gates, because it
reads nothing but Pomeroy's own bookkeeping.

<Card title="What Pomeroy can do" icon="grid-2" href="/docs/features/overview">
  The same information per app, with what each refuses to do.
</Card>
