BERGSONNE

HTTP API

A read-only API over the tile catalog, the driver reference, and the lookup tables. No authentication, CORS open to any origin, responses cached at the edge.

Basics

Tiles are identified as Family.Name — for example Sense.BP — optionally pinned to a revision as Family.Name@rev. That identifier is stable across the catalog, the driver reference, Studio and the datasheets.

Responses reflect the public tier. A tile that isn’t publicly available returns 404, exactly as it does in the catalog — this API is not a side door around that.

Errors always take the shape { error: { code, message, hint? } }. Branch on code; hint is for humans.

Machine-readable description: /api/openapi.json (OpenAPI 3.1). For the whole site, see /llms.txt; for the entire generated documentation corpus in one request, /llms-full.txt.

MCP server

The same knowledge is available as a Model Context Protocol server at https://bergsonne.io/mcp — JSON-RPC 2.0 over HTTP POST. Read-only and unauthenticated: it performs no writes, spends nothing, and reads no session, so an agent can attach it without any grant.

Point an MCP client at it with a config entry like { "bergsonne": { "url": "https://bergsonne.io/mcp" } }, then call initialize followed by tools/list. Tile definitions and driver references are also addressable as resources — tile://sense/tof, driver://sense/bp.

ToolPurpose
search_bergsonneSearch everything Bergsonne publishes: tiles, tile drivers, individual driver functions, SDK symbols (core_/hal_/ll_), documentation pages, and the I²C/pad lookup tables.
list_tilesEvery publicly available Bergsonne tile, with package, interfaces, primary part and links.
get_tileThe full definition of one tile: package and real dimensions, onboard components with their vendor part numbers, power rails with voltage and current limits, every pad and its functions, and the interfaces with their I²C addresses.
get_driverA tile driver's complete C API: every public function with its signature, parameters and return value, plus enums, structs and defines.
list_driversEvery documented tile driver with its API size and — usefully — its count of declared capability gaps.
lookup_referenceThe two lookup tables, generated from the canonical tile definitions.
list_shared_designsReal projects whose authors chose to publish them, showing which tiles get used together and how they are wired.
get_documentation_indexWhere to read more, as URLs.

These serve the same projections as the HTTP endpoints below, so the two surfaces never disagree. The distinct one to know about is get_driver: alongside a driver’s C API it returns the chip capabilities that driver does not expose, tagged hardware-gated or driver-deferred.

Tiles

The tile catalog — what exists, and each tile’s definition.

get/api/tiles

Every tile visible to the public tier, with package, interfaces, primary part, and links to its other representations. Filters combine with AND.

ParameterInDescription
familyqueryExact family, case-insensitive. e.g. Sense
interfacequeryTile exposes this interface. e.g. I2C
packagequeryPackage type. e.g. T44
qquerySubstring match over id, headline and primary part. e.g. pressure
get/api/tiles/{id}

A single tile with its full definition. `Family.Name` resolves the newest publicly visible revision; `Family.Name@rev` pins one.

ParameterInDescription
id*pathTile identifier: `Family.Name` or `Family.Name@rev`. e.g. Sense.TOF

A tile that is not publicly visible returns 404, exactly as the catalog does. This API is not a side door around tier gating.

The digital-twin simulator source and internal database ids are withheld; `twin.score` and `twin.status` are returned instead.

Drivers

Tile driver reference, including the capabilities each driver does NOT expose.

get/api/drivers

Every documented driver with its API size and its count of declared capability gaps.

get/api/drivers/{tile}

The parsed driver header: every public function with signature, parameters and return, plus enums, structs, defines, and the declared gaps.

ParameterInDescription
tile*pathTile identifier, e.g. `Sense.BP`. e.g. Sense.BP

`driver.studio_unsupported` lists chip capabilities this driver does NOT expose, tagged hardware-gated or driver-deferred. Prefer it over inferring an API from the chip datasheet.

Reference

Lookup tables: I²C addresses and pad assignments.

get/api/reference/{table}

Generated from the canonical tile definitions. `i2c` returns default and alternate addresses; `pads` returns each pad’s default function and alternates.

ParameterInDescription
table*pathEither `i2c` or `pads`. e.g. i2c

Tier-gated and fail-closed: if tile visibility cannot be determined the table is withheld with 503 rather than over-published.

Commons

Compositions shared by their authors — real designs showing which tiles get used together and how they are wired.

get/api/commons

Projects whose authors set their visibility to `commons`. Each carries the tiles used (with per-tile configuration and behaviour), and the netlist connecting them.

Only projects explicitly shared as `commons` appear. Private and internal projects are never published.

Author identity, originating prompts, and model-generated design narrative are withheld — sharing a composition is not the same as sharing who made it or what they asked for.