---
title: Tools Reference
description: Reference for the Explorer MCP tools exposed by the Thru explorer.
source_url:
  html: https://thru.org/docs/api-ref/explorer-mcp/tools-reference/
  md: https://thru.org/docs/api-ref/explorer-mcp/tools-reference.md
---

# Tools Reference

Use this page when you already know you want Explorer MCP and need the exact tool to call.

## Tool Map

| Tool | Inputs | Best for |
| - | - | - |
| `get_block` | `slot` | Inspecting a specific block, its producer, timestamps, and transaction rows. |
| `get_transaction` | `signature` | Debugging a single transaction, including accounts, instructions, and events. |
| `get_account` | `address` | Looking up account metadata, balance, owner, and flags. |
| `list_account_transactions` | `address`, optional `pageSize`, optional `pageToken` | Walking an account’s recent history without fetching each tx manually. |
| `list_recent_blocks` | optional `limit` | Recent network activity and slot-level monitoring. |
| `list_recent_transactions` | optional `limit` | Recent chain-wide transaction activity. |
| `search` | `query` | Resolving whether an unknown value is a slot, transaction signature, or account address. |
| `get_program_abi` | `program` | Fetching the on-chain ABI that explorer tooling uses for reflection. |

## Shared Input Notes

- Account addresses should use `thrufmt` addresses like `ta...`
- Transaction signatures should use `thrufmt` signatures like `ts...`
- Block slots are non-negative integers
- `list_recent_blocks` and `list_recent_transactions` accept `limit` values from `1` to `50`
- `list_account_transactions` accepts `pageSize` values from `1` to `100`

## Returned Shape

Every tool returns explorer output in an LLM-oriented text format generated from the same underlying API response model.

In practice, that means:

- you get a natural-language summary
- you get the structured data represented in a tool-friendly text format
- the response is better for agent reasoning than HTML scraping

## Tool Details

### `get_block`

Use when you already know the slot and want block-level context.

```json
{ "slot": 12345 }
```

Best follow-up tools:

- `get_transaction` for a specific signature found in the block
- `list_recent_blocks` if you were only trying to inspect the latest chain activity

### `get_transaction`

Use when you want the full execution picture for a known transaction signature.

```json
{ "signature": "ts..." }
```

This is usually the best tool for:

- checking execution status
- inspecting read/write accounts
- inspecting instruction bytes
- inspecting emitted events

### `get_account`

Use when you need current account metadata by address.

```json
{ "address": "ta..." }
```

This is the fastest way to inspect:

- owner
- balance
- flags like program / compressed / ephemeral
- data size and sequence metadata

### `list_account_transactions`

Use when one account is the center of the investigation and you need transaction history.

```json
{ "address": "ta...", "pageSize": 25 }
```

Use `pageToken` from a previous response when you need to continue pagination.

### `list_recent_blocks`

Use when you need a quick view of recent slots.

```json
{ "limit": 10 }
```

### `list_recent_transactions`

Use when you want a chain-wide recent transaction feed.

```json
{ "limit": 10 }
```

### `search`

Use when you do not yet know whether a value is a slot, signature, or address.

```json
{ "query": "ta..." }
```

This is often the best first tool in an agent workflow because it routes ambiguous identifiers into the correct explorer entity.

### `get_program_abi`

Use when you need the ABI currently published for a deployed program.

```json
{ "program": "ta..." }
```

This is especially useful when:

- verifying that the deployed ABI matches the expected program seed
- debugging reflection mismatches
- inspecting event and instruction definitions without leaving the agent workflow

## Recommended Usage Pattern

If the task is deployed-program debugging:

1. `search` if the identifier is ambiguous
2. `get_transaction` for a failing or surprising tx
3. `get_program_abi` if the payload may be reflected against the wrong ABI
4. `get_account` or `list_account_transactions` for account-level follow-up

If the task is recent network inspection:

1. `list_recent_blocks` or `list_recent_transactions`
2. `get_block` or `get_transaction` for the specific item worth inspecting
