Grafizum
Grafizum connects multiple AI Agents and sessions to one shared dashboard to have an easy overview on all projects for free.
Hosted MCP Server
npx add-mcp 'https://mcp.grafizum.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
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/mcp
Set it up
1
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/mcp
2
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.
3
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
Default
Keeps the dashboard current as verified work finishes: the matching task is updated once, with the real outcome. No duplicate tasks, no invented progress.
/gz-auto
Manual
On request
Still 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
Three ways to say it
/gz-auto Claude Code CLI: the skill the Grafizum installer adds. /gz-manual is the other direction.
/grafizum:auto Any client that lists the server's prompts. /grafizum:manual exists too.
switch Grafizum to manual Any 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.
Portable format —.mcp.json, Cursor, Copilot
{
"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-server
Protected resource metadata
https://mcp.grafizum.com/.well-known/oauth-protected-resource/mcp
What a connection can do
Read
- 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)
Write
- Create and update tasks
- Report project status
- Record events and calendar entries
- Write project knowledge (within its scopes)
Never
- 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
3
get_session The handbook, the projects, the memory file and the current mode
declare_project Says which project the session is working on, before the first write
set_sync_mode Records auto or manual for this connection
Read
13
get_changes What moved since the last read
list_projects Every project the connection may see
get_project One project, with its tasks and documents
get_project_status One project's state and its recent status reports
get_project_progress Task counts and progress for a project
list_tasks The queue, filterable by project, status or review state
get_task One task, with its history
list_activity Recent writes, without payloads or credentials
list_calendar Due dates and calendar entries
list_memory The global knowledge documents it may read
get_memory One knowledge document
list_project_documents A project's memory file
get_project_document A project's memory file, PROJECT_GUIDE.md
Write
11
create_task A new task, with the owner's answers and no invented priority
update_task Changes a task's status, date or description
move_task Moves a task within its project's queue
create_project A project or subproject, after explicit confirmation
update_project Changes a project, after explicit confirmation
report_project_status Records a project's progress and health
put_project_document Writes the project's memory file
delete_project_document Deletes a knowledge document, with confirmation
create_event Records an event in the activity log
create_calendar_event Adds a dated entry, with confirmation
record_sync_run Records one sync run, with confirmation
Manage 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.
How 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.