> For the complete documentation index, see [llms.txt](https://support.holidayhero.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.holidayhero.com/api/mcp/activity.md).

# Activity

An Audit Trail for MCP.

<figure><img src="https://3950018645-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbWWiwAsWOs8WeAQ2KJS3%2Fuploads%2FuOQ4b0xOun9SrChF1YiR%2Fmcp-activity.webp?alt=media&amp;token=dd0e4891-4bbe-485a-9e4b-443e7c3c854a" alt="Every tool call made by a connected AI client, newest first"><figcaption></figcaption></figure>

#### What is the activity log? <a href="#what-is-the-activity-log" id="what-is-the-activity-log"></a>

The **Activity** tab on the [MCP](file:///the-basics/workspace/mcp.md) page is the audit trail of your workspace's MCP server. Every tool call a connected AI client makes — a listing it read, a message it sent, a reservation it created — is recorded here, whether it succeeded or failed. Nothing an AI does through MCP happens invisibly.

Open it from **MCP → Activity**, or jump straight to one user's or one connector's calls from the **Settings** tab (see [Filters](http://localhost:63342/markdownPreview/76401390/markdown-preview-index-b0s3ilug1a3tq7bj4h4mo2tv73.html#filters)).

#### The list <a href="#the-list" id="the-list"></a>

Calls are listed newest first, 25 per page. Use the arrows below the table to page through older calls.

| Column       | Description                                                                                                                                                                                                                                                              |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **When**     | When the call was made, shown in your own timezone.                                                                                                                                                                                                                      |
| **Who**      | The MCP user who made the call and, below it, the connector (AI client) they used. A dash means the call came through a token issued directly for the workspace rather than through a user's connector — typically HolidayHero staff helping with onboarding or support. |
| **Tool**     | The tool that was called, e.g. `experience_product_create`. The full list is under **What the AI can do** on the [MCP](file:///the-basics/workspace/mcp.md) page.                                                                                                        |
| **Duration** | How long the tool took to run, in milliseconds.                                                                                                                                                                                                                          |
| **Status**   | <mark style="background-color:green;">OK</mark> when the call succeeded, <mark style="color:red;">**Error**</mark> when the tool rejected the request or failed.                                                                                                         |

#### Viewing a call <a href="#viewing-a-call" id="viewing-a-call"></a>

Click anywhere on a row to open the call in a side panel, or click **View** to open it as its own page (handy for sharing a link with a colleague).

The detail shows everything the list does, plus:

* **Input** — the exact request the AI client sent to the tool, as JSON. This is what the AI *asked for*, so it is the first place to look when a change is not what you expected.
* **Error** — when the status is **Error**, the message the tool returned explaining why.

{% hint style="info" %}
The input can contain guest-facing text, for example the body of a message sent with `conversation_message_send`. It is shown to anyone with the **MCP → Read** permission.&#x20;
{% endhint %}

#### Filters <a href="#filters" id="filters"></a>

Click **+ Filter** above the table to narrow the list. Active filters appear as chips; click the `×` on a chip to remove it.

| Filter            | Description                                                                     |
| ----------------- | ------------------------------------------------------------------------------- |
| **Tool**          | Only calls to one tool.                                                         |
| **Status**        | **Errors only** or **Successful only**.                                         |
| **MCP user**      | Only calls made through any of that user's connectors.                          |
| **Connector**     | Only calls made through one specific connector.                                 |
| **From** / **To** | Only calls on or between these days (in your timezone). Set either one or both. |

Two shortcuts on the **Settings** tab pre-apply a filter for you:

* **View activity** in the `⋮` menu of a row in **Users** opens the log filtered to that user.
* **Activity** at the end of a row in **Connectors** opens the log filtered to that connector.

Use **Sort** to switch between newest and oldest first.

***

#### Frequently Asked Questions <a href="#frequently-asked-questions" id="frequently-asked-questions"></a>

<details open>

<summary>How long is activity kept?</summary>

Calls are kept for a fixed period — **90 days** by default — and then removed automatically. The exact period for your workspace is shown at the bottom of the **Activity** tab. Open a call and note what you need before then if you want a longer record.

</details>

<details open>

<summary>A call shows an error — did anything change?</summary>

No. An **Error** status means the tool rejected the request or failed before completing, so no data was written. Open the call to read the error message; it usually names the missing or invalid field the AI sent.\
\
An error starting with `permission_denied:` means the connected operator's workspace role does not include that permission — see Who can do what

</details>

<details open>

<summary>Who can see the activity log?</summary>

Operators with the **MCP → Read** permission — the same permission that shows the MCP page itself. Workspace owners always have access.

</details>

<details open>

<summary>The "Who" column shows a dash — who made that call?</summary>

The call used a token issued directly for the workspace instead of a user's connector. In practice this is HolidayHero staff who were given temporary access for onboarding or support; those tokens are revoked automatically every night.

</details>

<details open>

<summary>Can I see calls from a revoked user or connector?</summary>

Yes. Revoking stops future calls but does not remove past ones — they stay in the log for the retention period, still attributed to that user and connector.

</details>

***
