Agents
The wall an AI agent can build, and read
Dashwall ships an MCP server, the open protocol AI assistants use for tools. An agent can create a board, add tiles, push live readings and ask what the wall currently shows, then hand you a link you can put on a screen.
What an agent can do
Not a write-only integration
Most tools an assistant can reach only accept instructions. A wall an agent cannot read is a wall it cannot reason about, so all four of these matter.
Build the board
From one prompt: a board, its tiles, their units and decimals, a target on the ones that have a goal, a milestone on the ones worth celebrating. It hands back the public display link, so you can put it on the screen straight away.
Feed it
Every tile it creates comes with its own webhook, and the agent can push readings itself: a number, a leaderboard, or a red/amber/green status. The wall animates to the new value in under a second.
Read it back
This is the part most integrations skip. An agent can ask what a board shows right now, down to the latest reading of every tile, how it sits against its target and how it moved since last week, then use the answer to decide what to do next.
Notice when a feed dies
Tell a tile how often it will be fed and the wall stops pretending an old number is current: it dims, says how long ago it was updated, and a status tile falls back to "No data". The agent sees the same thing, so it can notice its own feed has stopped.
Connecting
Two ways in, from whichever client you use
The hosted server speaks OAuth, so a client can register itself and ask you for permission. If you would rather hold a credential yourself, the same server runs locally on an API key. Claude Code, Claude Desktop, Cursor and Codex are all one config entry.
Hosted, over OAuth
The client discovers where to authorize, registers itself, and opens a Dashwall consent screen in your browser. Nothing is copied or pasted.
# Hosted server: the client asks you to approve it
claude mcp add --transport http dashwall \
https://mcp.dashwall.io/mcpLocal, with an API key
dashwall-mcp is on npm and runs on your own machine, with a key you create in the dashboard and can scope or expire.
# Or run it locally with an API key from the dashboard
claude mcp add dashwall \
-e DASHWALL_API_KEY=dw_your_key_here \
-- npx -y dashwall-mcpCursor
Drop it in ~/.cursor/mcp.json. A url entry makes it a remote server and Cursor handles the approval itself.
// ~/.cursor/mcp.json
{
"mcpServers": {
"dashwall": { "url": "https://mcp.dashwall.io/mcp" }
}
}Codex
Codex keeps its servers in ~/.codex/config.toml, and codex mcp login opens the consent screen.
# ~/.codex/config.toml
[mcp_servers.dashwall]
url = "https://mcp.dashwall.io/mcp"
# then, once: codex mcp login dashwallAny other MCP client works too. The server is one codebase with two transports, so the same tools show up whether it runs locally or hosted.
Optional: the Dashwall skill
The tools tell an agent what it can do. The skill tells it what makes a good wall: keep the webhook token, say how often a tile will be fed so a dead feed is visible, and read the board back before reporting it done. It is open source, and it works even for an assistant that speaks no MCP at all, which falls back to the plain REST API.
# Claude Code, Cursor, Codex, Windsurf
npx skills add dashwall-io/dashwall-agent
# or, as a Claude Code plugin
/plugin marketplace add dashwall-io/dashwall-agentThe tools
What the agent actually sees
Ten tools, described so an assistant knows which one to reach for without being told.
| Tool | What it does |
|---|---|
| create_board | Create a board and get its public display URL |
| list_boards | List the account's boards with their display URLs |
| get_board | One board with its tiles and their webhook tokens |
| get_board_state | What the wall shows right now: readings, targets, deltas, history |
| get_tile_history | One tile's recent readings, oldest first |
| update_board | Change a board's name, theme or accent color |
| add_tile | Add a number, chart, leaderboard or status tile |
| update_tile | Change a tile's label, type, target, milestone or interval |
| delete_tile | Remove a tile and its recorded history |
| push_metric | Push a reading; every connected screen updates live |
Tiles come in four types (number, chart, leaderboard and status) and an agent can create any of them. A board holds up to 12 tiles on Pro; see pricing.
Staying in control
An agent gets what you gave it, and no more
Letting software act on your account is a reasonable thing to be careful about. These are the three answers that matter.
You approve on a screen you can see
An application asking for access sends you to a Dashwall consent screen that names it and lists exactly what it is asking for. Nothing happens until you say yes.
Read-only is a real option
A credential can be limited to reading boards, tiles and readings. An agent that only has to look at the wall never gets the ability to change it.
Access can end by itself
Give an API key an expiry of 30 days, 90, or a year, and the worst case ends without you remembering to clean up. Connected applications can be disconnected at any time.
Want the longer version?
We wrote up what it looks like to hand an assistant a prompt and get a wall back, and what changed once agents could read the board instead of only writing to it.
Put your numbers on the wall
Create a free account, put your first KPI on a screen, and upgrade when the wall fills up. No credit card required.