Agents & MCP

Agents are users here, not an integration.

Glattice ships a remote Model Context Protocol server secured by OAuth 2.1. It is not a separate system with its own database access — it is a protocol adapter over the same public REST API our own web app uses. An agent gets exactly the permissions the person who authorized it has, enforced by Postgres row-level security, and everything it does is recorded.

The endpoint

Add this as a remote MCP server in any MCP-compatible client. You will be sent to a browser consent screen, and the client gets a token scoped to your account.

https://qzhnzprxygzrglkwmxws.supabase.co/functions/v1/glattice-mcp

Authorization is OAuth 2.1 with PKCE, discovered via RFC 9728. Protocol version 2025-11-25, negotiated down to 2025-03-26 for older clients.

What an agent can actually do

Every tool that touches your data forwards your own token to a documented REST endpoint. There is no second data path and no service credential — an agent reaches your boards through the same door your browser does. (`check_write_access` is the exception, and it reads nothing: it answers “may I write here?” from the same permission predicates the API uses.)

A tool badged write changes shared board data, and needs the target space on Pro or Team. Reading is available on every plan.

Getting oriented

Where am I, what can I reach, and what am I allowed to change?

search_spaces
List the spaces you can reach.
search_lattices
Search or list boards in a space.
check_write_access
Ask "may I write here?" before spending a step.
get_space_usage
AI quota and rate-limit configuration for a space.

Working with your boards

Boards, facets, facet values, cards, and the assignments that connect them — read and written through the same endpoints the web app calls.

read_lattice_structure
A board's full schema — facets and their values.
search_cards
Search or list cards, with their facet assignments.
read_facets
List the reusable facets in a space, and where they are attached.
write_lattice_structurewrite
Create and update boards, facets and facet values.
write_cardswrite
Create, update, move, soft-delete and bulk-edit cards; set or clear dates.
write_facetswrite
Create, update and delete reusable facets.
write_facet_lifecyclewrite
Promote or reduce a facet's scope, and attach it to a board.
generate_complete_latticewrite
Build a whole board — facets, values, cards, assignments, dates — in one transaction.

Working alongside your team

Comments on the card itself, the change history behind it, and the notification inbox that tells you an agent has been at work.

read_comments
A card's comment thread.
write_commentswrite
Add, edit or remove a card comment.
read_lattice_history
The audit trail — who changed what, from which interface, with before-and-after values.
list_notifications
Your notification inbox.
get_unread_count
Your unread count.
get_notification_preferences
Your effective notification preferences.
mark_notifications_read
Mark your notifications read.
manage_notification_subscription
Watch or mute a board.

Staying in control

Read is free; writes are gated
Any account can read over MCP and REST. A write is refused unless the target space is on Pro or Team, and unless your role in that space allows it — checked before the tool runs, using the same database predicates the API uses.
Every change says where it came from
The board's change history records the interface behind each write — the browser, the REST API, MCP, or the built-in AI bar — alongside who did it. A multi-step agent run is grouped by correlation id, so it reads back as one episode rather than forty rows.
You watch it happen
An agent's writes land on your board while you are looking at it — no reload, no polling. Live sync and agent writes are gated on the same plans, so any space an agent can write to is already streaming. They also raise their own notification category: you are not muted from your own agent the way you are from your own clicks.
Metered, server-side
1,000 API requests and 120 MCP requests a minute, plus a per-space monthly AI budget. Limits return 429 with Retry-After, not a surprise invoice.

Three things you can do today

  1. 1.Build a board from a prompt

    search_spaces, then generate_complete_lattice with a full definition — facets, values, cards, assignments and dates — persisted in one transaction. It is the same bulk path the template picker uses.

  2. 2.Triage and move work

    read_lattice_structure maps "the Blocked column" to a real facet value id, search_cards finds the card, and write_cards updates its facet values. Assigning facet values is the move primitive — there is no separate move call.

  3. 3.Turn a board into a timeline

    Create a date facet with rangeEnabled, set a start and end per card, then read_lattice_history to see the whole run attributed to your agent.

Read the reference, then connect.

Every public endpoint carries a description and worked examples, rendered live against the running spec.