Your agent, meet your command center
The MCP server is the bridge between your AI client — Claude Code, or anything else that speaks MCP — and the dashboard. Sign in once, approve the connection, and the agent works on the projects you can see, with the access you granted, and a receipt for every write.
No API key to paste, so there is also nothing for an agent to leak into your shell history.
Server endpoint
https://mcp.grafizum.com/mcpSet it up
Add the server
In Claude Code, run the command below. Any MCP client: use the endpoint above as the server URL (Streamable HTTP, OAuth 2.1). If it speaks MCP, it finds its way here.
claude mcp add --transport http grafizum https://mcp.grafizum.com/mcphttps://mcp.grafizum.com/mcp
Approve the connection
Your client opens a one-card approval page on the dashboard. Sign in, choose the agent it acts as, and authorize. Projects and access default to the whole agent and stay editable afterwards.
Work
The agent can now read projects, tasks, calendar and memory — and write within its scopes. Every write lands in the activity log.
Switching sync mode
One setting on the connection decides whether the agent keeps the board current as it works or waits for you to ask. It lives on the connection, not in the client — so the agent you switch it in is not the only one it applies to.
Auto
DefaultKeeps the dashboard current as verified work finishes: the matching task is updated once, with the real outcome. No duplicate tasks, no invented progress.
/gz-autoManual
On requestStill reads freely — reading is how it answers you — but writes only when you ask in that turn. Otherwise it says what it would sync and waits.
/gz-manual/gz-autoClaude Code CLI: the skill the Grafizum installer adds. /gz-manual is the other direction./grafizum:autoAny client that lists the server's prompts. /grafizum:manual exists too.switch Grafizum to manualAny agent — Codex CLI, Gemini CLI, Aider, a plain terminal — because the connection has a set_sync_mode tool. Say "back to auto" to return.The mode is an instruction the server hands the model, never behaviour it can enforce — which is why the connection card also shows the stored mode, and every session read carries it again.
Add a custom MCP client
Claude Code is the shortest path. Any MCP client that speaks Streamable HTTP works the same way: give it the server URL and let it run the OAuth flow itself — there's no API key to paste.
{
"mcpServers": {
"grafizum": { "type": "http", "url": "https://mcp.grafizum.com/mcp" }
}
}VS Code keeps the same two fields under a top-level "servers" object in .vscode/mcp.json.
Discovery
A client that speaks remote MCP needs nothing else: it reads the 401, then these two documents, and registers itself.
OAuth server metadata
https://mcp.grafizum.com/.well-known/oauth-authorization-serverProtected resource metadata
https://mcp.grafizum.com/.well-known/oauth-protected-resource/mcpWhat a connection can do
- Projects, status and progress
- Tasks and to-do lists
- Calendar and due dates
- Project memory and the global handbook
- Activity summaries (never raw secret payloads)
- Create and update tasks
- Report project status
- Record events and calendar entries
- Write project knowledge (within its scopes)
- Vault secrets, GitHub tokens or SSH keys
- Projects the connection wasn't granted
- Your review decisions
The tools it exposes
The exact names your client lists, and what each one does. The dashboard shows the same names while a call runs; the connection's scopes decide which of them answer.
Session
3get_sessionThe handbook, the projects, the memory file and the current modedeclare_projectSays which project the session is working on, before the first writeset_sync_modeRecords auto or manual for this connectionRead
13get_changesWhat moved since the last readlist_projectsEvery project the connection may seeget_projectOne project, with its tasks and documentsget_project_statusOne project's state and its recent status reportsget_project_progressTask counts and progress for a projectlist_tasksThe queue, filterable by project, status or review stateget_taskOne task, with its historylist_activityRecent writes, without payloads or credentialslist_calendarDue dates and calendar entrieslist_memoryThe global knowledge documents it may readget_memoryOne knowledge documentlist_project_documentsA project's memory fileget_project_documentA project's memory file, PROJECT_GUIDE.mdWrite
11create_taskA new task, with the owner's answers and no invented priorityupdate_taskChanges a task's status, date or descriptionmove_taskMoves a task within its project's queuecreate_projectA project or subproject, after explicit confirmationupdate_projectChanges a project, after explicit confirmationreport_project_statusRecords a project's progress and healthput_project_documentWrites the project's memory filedelete_project_documentDeletes a knowledge document, with confirmationcreate_eventRecords an event in the activity logcreate_calendar_eventAdds a dated entry, with confirmationrecord_sync_runRecords one sync run, with confirmationManage connections
Every connection shows up under MCP in the dashboard, named after the agent it acts as. Rename it, narrow it to fewer projects, drop write access, or revoke it — changes apply to the next request, no reconnect needed. A connection lasts 30 days before it needs approving again; access tokens last 15 minutes and refresh on their own.
Open the MCP tabHow it's kept safe
- OAuth 2.1 authorization code with PKCE. Tokens are stored hashed, access tokens last 15 minutes, and refresh tokens rotate — a reused one revokes the whole connection.
- A connection is a ceiling, never a widening: it can never carry more scopes or projects than the acting agent already has, and vault, GitHub and delete scopes are never available.
- Registration and authorization are rate-limited, and every write is checked against the connection's scopes and project list before it's accepted.
- Approving shows the exact address the authorization code goes to, so a familiar-sounding client name can't hide where your access is heading.
Troubleshooting
The client says MCP login required (401)
The token expired or the connection was revoked. Re-run the client's authentication — approving it again takes one click.
The approval page says the request expired
A pending authorization is valid for 10 minutes and can be used once. Start authentication again from the client. Ten minutes is a window, not a personality test.
A tool call is refused
The connection may lack that scope or project. Check the MCP tab, then narrow or widen the connection there.