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

# Event schema

> Full specification of the TapEvent data model

Every captured event follows the `TapEvent` schema.

## Core fields

| Field             | Type      | Description                                            |
| ----------------- | --------- | ------------------------------------------------------ |
| `event_id`        | `string`  | Unique ID (`evt_<hex>`)                                |
| `parent_event_id` | `string?` | Links child `tool_call` events to parent `llm_request` |
| `project_id`      | `string`  | API key / project identifier                           |
| `session_id`      | `string`  | Session grouping ID (`ses_<hex>`)                      |
| `user_id`         | `string?` | User identifier (from `init()`)                        |
| `type`            | `string`  | `"tool_call"`, `"llm_request"`, or `"mcp_lifecycle"`   |
| `tool_name`       | `string`  | Tool or model name                                     |
| `model`           | `string?` | LLM model name                                         |
| `timestamp`       | `number`  | Unix epoch seconds                                     |

## Request and response fields

| Field        | Type      | Description                                                                                                         |
| ------------ | --------- | ------------------------------------------------------------------------------------------------------------------- |
| `inputs`     | `object?` | Tool arguments or request parameters                                                                                |
| `output`     | `object?` | Tool result or response summary                                                                                     |
| `error`      | `string?` | Error message if the call failed                                                                                    |
| `latency_ms` | `number?` | Wall-clock time in milliseconds                                                                                     |
| `source`     | `string`  | Origin: `"anthropic"`, `"openai"`, `"mcp_sdk"`, `"composio_sdk"`, `"http_intercept"`, `"mcp_proxy"`, `"mcp_server"` |

## LLM-specific fields

| Field              | Type      | Description                                            |
| ------------------ | --------- | ------------------------------------------------------ |
| `system_prompt`    | `string?` | System prompt (LLM requests only)                      |
| `request_messages` | `array?`  | Serialized conversation history                        |
| `response_content` | `array?`  | Serialized response blocks                             |
| `thinking`         | `array?`  | Thinking/reasoning blocks                              |
| `token_usage`      | `object?` | Token counts (input, output, cache, reasoning)         |
| `stop_reason`      | `string?` | Why the LLM stopped (`"end_turn"`, `"tool_use"`, etc.) |

## AARM fields

These fields are only present when [cryptographic receipts](/guides/aarm-receipts) are enabled.

| Field          | Type      | Description                 |
| -------------- | --------- | --------------------------- |
| `context_hash` | `string?` | AARM hash chain value       |
| `output_hash`  | `string?` | SHA-256 of canonical output |
| `signature`    | `object?` | AARM Ed25519 signature      |
