# AX Check: bonnard.ai
Checked 2026-09-22.

Agents can install, price, and query Bonnard without a hitch
21 of 23 checklist items pass: docs, install commands, OpenAPI spec, and all four pricing tiers are stated openly with clear usage limits.

## End-to-end onboarding not demonstrated

## Coding sessions
Two of three independent sessions (DeepSeek V4 Pro, Kimi K3) completed the task and both correctly extracted all four pricing tiers with per-call limits and overage rates from the pricing page. The third session (Qwen 3.8 Max) did not complete.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/e4140e36-0fce-4ebd-9612-2139adbfa22a) · [Read transcript](https://www.ax-check.com/bonnard.ai/sessions/deepseek.json)
Pricing quoted with per-tier basis (Free $0/3k calls then $0.95/100, Growth $150/20k calls, Business $600/100k calls, Enterprise custom) sourced from bonnard.dev/pricing (seq 39-50), with explicit note pricing tracks call volume only, no seat minimum.
Session findings unavailable.

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/f139470e-0ed8-4773-aaec-c555870b3db5) · [Read transcript](https://www.ax-check.com/bonnard.ai/sessions/kimi.json)
Final output lists four plans with concrete assumptions (Free $0, Growth $150/mo incl. 3,000 calls then $0.95/100, Business $600/mo incl. 20,000 calls, Enterprise 100,000 calls incl. then $0.60/100), scraped live from bonnard.ai/pricing (seq 36-64), tying each price to plan tier and included usage volume.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: The agent never signed up for or authenticated against the hosted Bonnard BI platform (app.bonnard.ai). It only installed the open-source, unauthenticated npm package @bonnard/mcp-charts and ran a fully local, in-process demo (an in-memory MCP server + client + an in-memory JS array as the 'warehouse'). No credentials were obtained, no network call was made to any Bonnard-hosted API, and no authenticated operation occurred. This satisfies the prompt's own instruction to stay light/local, but it does not meet the bar for verified self-service onboarding.
  Event 105:

  ```text
  const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
  ```
  Event 124:

  ```text
  text fallback: line chart "Revenue by month and region": 3 row(s), x=month, series=[West, East]
  ```
  Event 64:

  ```text
  Bonnard is live with self-serve signup: start free at https://app.bonnard.ai/sign-up, no card required.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
None identified in this transcript.

#### Suggested Changes
- **Fix the buildChartData example in the mcp-charts docs**: The docs quickstart implies buildChartData(rows, {fields:[...]}), but the real signature needs {rows, columns, mapKind}. The agent's first attempt using the documented-looking shape threw a runtime error and only succeeded after reading the .d.ts file directly. Update the getting-started guide's example to match the real signature and verify by running it standalone.
  Event 109:

  ```text
  text fallback: visualize failed: Cannot read properties of undefined (reading 'map')
  ```
  Event 113:

  ```text
  declare function buildChartData({ rows, columns, mapKind, normalizeCell, }: BuildChartDataOptions): ChartData;
  ```
- **Add ESM-only note to the mcp-charts README**: Running require('@bonnard/mcp-charts') fails because the package has no CommonJS export defined, forcing a switch to ESM import syntax. Add a note in the README/getting-started page stating the package is ESM-only, verified by re-running the require() call and confirming it no longer errors.
  Event 49:

  ```text
  Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /sandbox/repo/bonnard-example/node_modules/@bonnard/mcp-charts/package.json
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/c387f733-0e64-4bef-8ed8-872e53d89036) · [Read transcript](https://www.ax-check.com/bonnard.ai/sessions/qwen.json)

#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: The session transcript ends immediately after basic environment reconnaissance (checking repo contents, environment variables, confirming pip/npm/curl availability, and a network check to pypi.org). No search for a product called 'Bonnard' returned any real findings (the grep for 'bonnard' turned up nothing in the shown output), no credentials for an actual Bonnard product were obtained, and no authenticated API/SDK call to a hosted product was made or shown. The transcript is truncated before any real onboarding attempt occurs.
  Event 9:

  ```text
  grep -ri bonnard / --include=* -l 2>/dev/null | head
  ```
  Event 11:

  ```text
  PI_GATEWAY_API_KEY=<redacted>
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Bonnard product not found in environment**: The agent searched the filesystem for any reference to 'Bonnard' and no matching files or docs were surfaced in the results shown, suggesting the product may not be installed, documented, or discoverable in this sandbox. This appears to be either a test environment limitation (product not pre-loaded) or an early-stage investigation that was cut short before further web/API discovery steps could run.
  Event 9:

  ```text
  grep -ri bonnard / --include=* -l 2>/dev/null | head
  ```

#### Suggested Changes
None identified in this transcript.

### Task given to each agent
Help me build a simple example using Bonnard. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: A · 100/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Pass** — Homepage answers Markdown requests

  ```text
  Homepage returned text/markdown with 200 when requested with Accept: text/markdown.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt links docs, OpenAPI spec, agents manifest, and AI catalog with organized sections.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt groups content under Product, Security, Pricing, Developer resources, Contact, Company headings.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt lists OpenAPI spec, agents.json action manifest, and MCP-compatible client support.
  ```

- **Pass** — A compact guide representation exists

  ```text
  Homepage returns text/markdown via content negotiation; llms.txt is a standalone Markdown guide.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  llms.txt and docs.bonnard.dev/mcp-charts/getting-started are directly retrievable with concrete steps.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  llms.txt is 1461 tokens, well under the 8000-token budget.
  ```

- **Pass** — Product-docs links survive format changes

  ```text
  Homepage Markdown retains product-docs links to docs.bonnard.dev and openapi.json.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  Getting Started gives install, quickstart code, adapters, and security guidance for @bonnard/mcp-charts.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Fetched install and next-step links (sign-up, docs, API reference, preview CLI) all returned 200.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  MCP Charts Getting Started gives concrete quickstart: npm install and addCharts code sample.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install command 'npm install @bonnard/mcp-charts' and npx CLI invocations are extractable.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Code examples shown inline: addCharts, runSql, and CLI preview commands.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Docs state read-only least-privilege role and OAuth 2.1 PKCE auth boundaries.
  ```


### Pricing
- **Pass** — Pricing is readable without interaction

  ```text
  Homepage pricing section lists Free, Growth, Business and Enterprise tiers with prices visible without interaction.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Prices stated openly: Free $0/mo, Growth $150/mo, Business $600/mo; Enterprise custom.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Each tier states included monthly calls and extra-usage rate per 100 calls.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  2 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4 Pro: Pricing quoted with per-tier basis (Free $0/3k calls then $0.95/100, Growth $150/20k calls, Business $600/100k calls, Enterprise custom) sourced from bonnard.dev/pricing (seq 39-50), with explicit note pricing tracks call volume only, no seat minimum. Kimi K3: Final output lists four plans with concrete assumptions (Free $0, Growth $150/mo incl. 3,000 calls then $0.95/100, Business $600/mo incl. 20,000 calls, Enterprise 100,000 calls incl. then $0.60/100), scraped live from bonnard.ai/pricing (seq 36-64), tying each price to plan tier and included usage volume. This behavioural item does not affect the fast grade.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  OpenAPI 3.1 spec at bonnard.ai/openapi.json fetched successfully, describing the Bonnard API surface.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  llms.txt describes MCP OAuth clients but no MCP server setup/endpoint documentation was fetched.
  ```

- **Pass** — A CLI install path is documented

  ```text
  mcp-charts CLI documented: npx @bonnard/mcp-charts preview with flags and modes.
  ```

- **Pass** — SDK packages resolve on their registries

  ```text
  npm registry lookup for @bonnard/mcp-charts returned HTTP 200.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills documentation or skill package was found in the fetched evidence.
  ```



[Full report data](https://www.ax-check.com/bonnard.ai/report.json)
