# numbers_read_cells

Read a range of cells from a sheet. Uses 0-based row/column indices.

Agent View of the PolicyLayer registry record for `numbers_read_cells`. HTML page: https://policylayer.com/tools/heznpc-airmcp/numbers-read-cells

## Facts

- Tool: `numbers_read_cells`
- Server: AirMCP (`airmcp`) — https://policylayer.com/tools/heznpc-airmcp.md
- Install: `npx -y airmcp`
- Homepage: https://github.com/heznpc/AirMCP
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Allowed

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "numbers_read_cells",
    "arguments": {}
  }
}
```

## Why numbers_read_cells is rated Low

This tool retrieves data from a Numbers spreadsheet without creating, modifying, or deleting any content. It has no side effects and poses minimal risk—worst case, an AI agent could exfiltrate data already stored in spreadsheets the user granted access to. The operation is inherently safe and reversible.

From the tool's own definition: "Tool name is 'numbers_read_cells' and description states 'Read a range of cells from a sheet'. The verb 'read' and explicit statement that it retrieves cell values with no modification capability confirm this is a query/retrieval operation."

## Use case

AI agents call numbers_read_cells to retrieve information from AirMCP without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches AirMCP:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "numbers_read_cells": {}
  }
}
```

## Other tools on AirMCP (278)

- `close_tab` — Destructive — https://policylayer.com/tools/heznpc-airmcp/close-tab.md
- `delete_contact` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-contact.md
- `delete_event` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-event.md
- `delete_note` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-note.md
- `delete_photos` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-photos.md
- `delete_playlist` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-playlist.md
- `delete_reminder` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-reminder.md
- `delete_reminder_list` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-reminder-list.md
- `delete_shortcut` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-shortcut.md
- `memory_forget` — Destructive — https://policylayer.com/tools/heznpc-airmcp/memory-forget.md
- `move_note` — Destructive — https://policylayer.com/tools/heznpc-airmcp/move-note.md
- `quit_app` — Destructive — https://policylayer.com/tools/heznpc-airmcp/quit-app.md
- `remove_from_playlist` — Destructive — https://policylayer.com/tools/heznpc-airmcp/remove-from-playlist.md
- `semantic_clear` — Destructive — https://policylayer.com/tools/heznpc-airmcp/semantic-clear.md
- `semantic_index` — Destructive — https://policylayer.com/tools/heznpc-airmcp/semantic-index.md
- `spotlight_clear` — Destructive — https://policylayer.com/tools/heznpc-airmcp/spotlight-clear.md
- `system_power` — Destructive — https://policylayer.com/tools/heznpc-airmcp/system-power.md
- `trash_file` — Destructive — https://policylayer.com/tools/heznpc-airmcp/trash-file.md
- `activate_tab` — Execute — https://policylayer.com/tools/heznpc-airmcp/activate-tab.md
- `ai_agent` — Execute — https://policylayer.com/tools/heznpc-airmcp/ai-agent.md
- `ai_chat` — Execute — https://policylayer.com/tools/heznpc-airmcp/ai-chat.md
- `ai_plan_metrics` — Execute — https://policylayer.com/tools/heznpc-airmcp/ai-plan-metrics.md
- `connect_bluetooth` — Execute — https://policylayer.com/tools/heznpc-airmcp/connect-bluetooth.md
- `disconnect_bluetooth` — Execute — https://policylayer.com/tools/heznpc-airmcp/disconnect-bluetooth.md
- `drop_pin` — Execute — https://policylayer.com/tools/heznpc-airmcp/drop-pin.md
- `duplicate_shortcut` — Execute — https://policylayer.com/tools/heznpc-airmcp/duplicate-shortcut.md
- `edit_shortcut` — Execute — https://policylayer.com/tools/heznpc-airmcp/edit-shortcut.md
- `event_subscribe` — Execute — https://policylayer.com/tools/heznpc-airmcp/event-subscribe.md
- `generate_image` — Execute — https://policylayer.com/tools/heznpc-airmcp/generate-image.md
- `generate_structured` — Execute — https://policylayer.com/tools/heznpc-airmcp/generate-structured.md
- …and 248 more: https://policylayer.com/tools/heznpc-airmcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=heznpc-airmcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/heznpc-airmcp
