# workbook_evaluate

Feeds a set of A1-style cells (formulas and/or literals) through the SAME headless evaluator the tools/554 browser workbook uses -- topo-sorted dependency graph, ~20 functions (SUM AVG MIN MAX COUNT COUNTIF IF AND OR NOT ROUND ABS CONCAT LEN LEFT RIGHT TRIM UPPER LOWER SUMIF), cycles resolve to "#CYCLE!" and any non-finite result to "#NUM!" rather than propagating. Returns the computed value of every supplied cell -- pure, no digest, no receipt -- unless as_artifact is true, in which case it returns a full OCG v0.4 artifact instead (see as_artifact).

Agent View of the PolicyLayer registry record for `workbook_evaluate`. HTML page: https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/workbook-evaluate

## Facts

- Tool: `workbook_evaluate`
- Server: Ainumbers Mcp Apps (`postoaklabs/ainumbers-mcp-apps`) — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps.md
- Homepage: https://github.com/PostOakLabs/ainumbers-mcp-apps
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: https://ainumbers.co
- Server rate-limited: no
- Parameters: 3 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `cells` | object | yes | Map of A1-style cell ref (e.g. "B2") to raw value -- a formula string starts with "=" (e.g. "=SUM(A1:A3)"), anything else is a literal. |
| `provenance` | object | no | Optional provenance metadata, only used when as_artifact is true. Never affects execution_hash. |
| `as_artifact` | boolean | no | When true, returns a full OpenChainGraph v0.4 artifact (policy_parameters/output_payload/execution_hash/provenance) via the same exportArtifact() path as the to |

Parameters from the server's own tool schema.

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

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

## Why workbook_evaluate is rated High

This tool executes formula evaluation logic (a computation engine) against user-supplied input, analogous to running a script or query. While it is described as 'pure, no digest, no receipt' and read-only in terms of side effects, it actively executes arbitrary formula expressions through an evaluator, placing it in the Execute category.

From the tool's own definition: "'Feeds a set of A1-style cells (formulas and/or literals) through the SAME headless evaluator... topo-sorted dependency graph, ~20 functions... Returns the computed value of every supplied cell'"

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents invoke workbook_evaluate to trigger actions in Ainumbers Mcp Apps. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Ainumbers Mcp Apps:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "workbook_evaluate": {
      "limits": [
        {
          "counter": "workbook_evaluate_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Ainumbers Mcp Apps (687)

- `agentic_mandate_sandbox` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/agentic-mandate-sandbox.md
- `allocate_ihb_interest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/allocate-ihb-interest.md
- `amortize_asc606_commissions` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/amortize-asc606-commissions.md
- `anchor_document_integrity` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/anchor-document-integrity.md
- `apply_climate_scenario` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/apply-climate-scenario.md
- `assemble_aiuc1_evidence_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/assemble-aiuc1-evidence-pack.md
- `assemble_ocg_evidence_bundle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/assemble-ocg-evidence-bundle.md
- `attest_bulk_disbursement_integrity` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-bulk-disbursement-integrity.md
- `attest_calc_agent_independence` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-calc-agent-independence.md
- `attest_daily_reconciliation` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-daily-reconciliation.md
- `attest_margin_call_lifecycle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-margin-call-lifecycle.md
- `bind_attested_subject` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/bind-attested-subject.md
- `build_226j_response_evidence_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-226j-response-evidence-pack.md
- `build_agent_test_evidence` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-agent-test-evidence.md
- `build_agent_traffic_policy` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-agent-traffic-policy.md
- `build_ai_conformity_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ai-conformity-pack.md
- `build_ai_workpaper_record` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ai-workpaper-record.md
- `build_allocation_decision_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-allocation-decision-receipt.md
- `build_amortization_schedule` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-amortization-schedule.md
- `build_ap2_cartmandate_hashchain` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ap2-cartmandate-hashchain.md
- `build_cbcr_report` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-cbcr-report.md
- `build_chaingraph` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-chaingraph.md
- `build_claim_dispute_bundle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-claim-dispute-bundle.md
- `build_conditional_relief_collateral_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-conditional-relief-collateral-receipt.md
- `build_conversion_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-conversion-receipt.md
- `build_digest_manifest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-digest-manifest.md
- `build_disclosure_manifest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-disclosure-manifest.md
- `build_dora_roi_register` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-dora-roi-register.md
- `build_dual_control_certification` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-dual-control-certification.md
- `build_etr_possession_chain` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-etr-possession-chain.md
- …and 657 more: https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps.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=postoaklabs-ainumbers-mcp-apps · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/postoaklabs-ainumbers-mcp-apps
