Add tool-catalog: 24 hidden tools from desktop app binary analysis

Documents 24 tools found in Claude.app binary (app.asar/index.js) that are
not listed in the deferred tools system-reminder. Organized into 7 categories:

- Widget Tools (2): inline SVG/HTML rendering via @ant/imagine-server
- Preview Tools (13): dev server and browser preview in code tasks
- Computer Use (1, 13 actions): desktop automation via screenshot-then-act
- Terminal & Roots (2): IDE-plugin-only terminal reader and MCP roots
- Office Add-in (5): Excel/Word/PowerPoint integration via Claude add-in
- Conversation (1): internal compaction service, not user-callable
- Feature Flags & Codenames: flags, codenames, Swift APIs, config keys

Each tool includes verification status (CONFIRMED/NOT FOUND/UNTESTED),
parameter schemas, and session-type availability matrix.

Tone cleanup: removed speculative language per CLAUDE.md style guide.
States facts from binary analysis, marks unverified claims explicitly.
This commit is contained in:
DMontgomery40
2026-03-19 19:27:18 -06:00
parent e107865b86
commit efbb13827b
8 changed files with 899 additions and 0 deletions
@@ -0,0 +1,154 @@
# Office Add-in Tools (5 tools)
**Status:** UNTESTED — requires Microsoft Office (Excel/Word/PowerPoint) with the Claude add-in connected. `tool_search` returns nothing for "office", "workbook", or "addin" in any session type, indicating these tools are only registered when the Office add-in WebSocket bridge is active.
**Verified:** 2026-03-19. Could not test (no Office installed). Schemas documented from binary extraction only.
Tools for direct Excel/Word/PowerPoint integration via the Claude add-in panel. Requires the Office add-in to be installed and connected to Claude Desktop.
**Manifest URL:** `https://pivot.claude.ai/manifest.xml`
**Add-in UUID:** `29673e3c-d826-4f00-92ee-162334a52b1a`
**Module ID:** `office-addin`
**OAuth scope (when enabled):** `user:inference user:office`
---
## open_office_file
Opens an Office file in the default application and automatically opens the Claude add-in panel.
On macOS, the add-in is opened using the Accessibility API (requires Accessibility permissions). On Windows, the add-in auto-opens via manifest configuration.
After opening, use `office_addin_run` or `office_addin_get_context` to interact with the file.
### Parameters
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `path` | string | **yes** | Absolute path to the Office file to open |
### Supported file types
- `.xlsx` → Microsoft Excel
- `.docx` → Microsoft Word
- `.pptx` → Microsoft PowerPoint
### Notes
- macOS requires Accessibility permissions for the add-in panel auto-open
- The app-to-application mapping is hardcoded
- Throws `Unknown Office extension` for any other file type
- The tool description mentions `office_addin_task` as an alternative to `office_addin_run` — this name appears in the description text but has no separate tool registration
---
## close_office_file
Closes an Office file that is currently open.
### Parameters
| Param | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `path` | string | **yes** | — | Absolute path to the Office file to close |
| `save_changes` | boolean | no | `true` | If true, saves changes before closing. If false, discards changes. |
### Notes
- Only works with `.xlsx`, `.docx`, `.pptx`
- The file must actually be open in the corresponding Office application
- Default is to save
---
## office_addin_run
Execute Office.js code directly in Excel. Changes appear instantly in the document.
The code runs inside `Excel.run()` with `context` available.
### Parameters
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `code` | string | **yes** | Office.js code to execute. Has `context` object available. Must call `await context.sync()` to apply changes. |
| `display_message` | string | no | Brief user-friendly action label shown in the add-in UI (e.g., "Calculate sum", "Create chart") |
| `workbook` | string | no | Target workbook ID (addinId). If not specified, uses the currently selected workbook. Use `list_connected_workbooks` to see available workbooks. |
### Code examples from description
Write to cell:
```javascript
context.workbook.worksheets.getActiveWorksheet().getRange("A1").values = [["Hello"]];
await context.sync();
```
Read data:
```javascript
const range = context.workbook.worksheets.getActiveWorksheet().getRange("A1:B10");
range.load("values");
await context.sync();
range.values; // Returns the data
```
### Notes
- **Must call `await context.sync()`** after making changes
- User must have the Excel add-in open and connected to Claude Desktop
- Currently only described for Excel, even though `open_office_file` supports Word and PowerPoint
- The `display_message` shows in the add-in UI as a status indicator
---
## office_addin_get_context
Fetch current spreadsheet context: selection, sheets, recent changes, and add-in conversation history.
### Parameters
| Param | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `include_changes` | boolean | no | `true` | Include user change events (edits, inserts, deletes, etc.) |
| `include_conversation` | boolean | no | `true` | Include the add-in conversation history |
| `include_selection` | boolean | no | `true` | Include current cursor/selection and its values |
| `include_sheets` | boolean | no | `true` | Include sheet metadata (names, dimensions, frozen rows/cols) |
| `max_changes` | number | no | `100` | Maximum number of change events to return |
| `max_messages` | number | no | `50` | Maximum number of conversation messages to return |
| `workbook` | string | no | — | Target workbook ID (addinId). If not specified, uses currently selected workbook. |
### Returns
- Current selection address and values
- All sheet names and metadata
- Recent user edits, inserts, deletes
- Prior conversation with the add-in Claude
### Notes
- The "add-in conversation" is a separate conversation the user may have had with the Claude embedded in Excel — this provides context on what was discussed
- All includes default to `true` — pass `false` to reduce response size
---
## list_connected_workbooks
List all Excel workbooks currently connected via the Claude add-in.
### Parameters
None.
### Returns
Connected workbooks with their IDs, document names, and connection details. Use the returned workbook IDs to target specific workbooks in `office_addin_run` and `office_addin_get_context`.
### Notes
- Returns `addinId` values used as the `workbook` parameter in other tools
- Multiple workbooks can be connected simultaneously
- Connection is via WebSocket (`wss://localhost:8766` or configured `OFFICE_ADDIN_BRIDGE_URL`)
- If no workbooks are connected, the other tools default to "currently selected" which may fail
---
## Architecture
The Office add-in system uses:
1. **WebSocket bridge** — connects Claude Desktop to the Excel add-in running inside Office
2. **OAuth authentication** — uses the user's Claude token with `user:office` scope
3. **Office.js API** — code runs in Excel's JavaScript runtime via `Excel.run()`
4. **Accessibility API** (macOS) — used to auto-open the add-in panel when opening files
5. **Profile API** — fetches user's account UUID from `{apiHost}/api/oauth/profile`