From an empty terminal to a published change in five steps. Every snippet here works against your real tenant — no sandbox, no toy keys.
Open the CMS, go to Settings → API, click New key, name it (e.g. laptop-quickstart), and copy the gib_live_… value. It is shown once; after that we keep only the SHA-256 hash. Revoke any key from the same screen — revocation is immediate.
export GIBEON_API_KEY=gib_live_xxxxxxxxxxxxxxxxxxxxxxxx
Every request goes to https://api.gibeon.io/v1 as Authorization: Bearer $GIBEON_API_KEY. The same key works for the hosted MCP at https://api.gibeon.io/mcp.
Get the screens in your tenant and their online state.
curl https://api.gibeon.io/v1/players \ -H "Authorization: Bearer $GIBEON_API_KEY"
The Node/Deno equivalent:
const res = await fetch('https://api.gibeon.io/v1/players', {
headers: { Authorization: `Bearer ${process.env.GIBEON_API_KEY}` },
})
const { data } = await res.json()
console.log(`${data.length} screens, ${data.filter(p => p.status === 'online').length} online`)Pick one and grab its id — you will use it in the next step.
Point a screen at a different playlist. The PATCH responds with publish_required: true for content-changing fields — until you publish, the player keeps showing the old assignment.
curl -X PATCH https://api.gibeon.io/v1/players/<player_id> \
-H "Authorization: Bearer $GIBEON_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "playlist_id": "<playlist_id>" }'
curl -X POST https://api.gibeon.io/v1/players/<player_id>/publish \
-H "Authorization: Bearer $GIBEON_API_KEY"The player picks up the new snapshot on its next heartbeat — typically within 10 seconds. Publish a single screen via /v1/players/<id>/publish or every screen in the tenant via /v1/players/publish.
Paste this into your MCP host config to expose the 13 Gibeon tools to Claude Desktop, Claude Code, or Cursor:
{
"mcpServers": {
"gibeon": {
"url": "https://api.gibeon.io/mcp",
"headers": {
"Authorization": "Bearer gib_live_xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}Restart your client. Ask it "how many screens are online in my Gibeon tenant?" — the agent will call list_players and report back. Same auth surface, no separate install.
Hit a rough edge? The repo is private during the dev-portal launch — for now, mail [email protected] and we will fix it in the same day where we can.