AgentRQ
OFFICIAL SERVERTask board, chat and approvals between people and coding agents, served to them over MCP
Query and manage local AI coding-assistant usage data, costs and a task board from agentistics
Official · Agentistics JavaScript Local · stdio Data and analyticsDeveloper toolsProductivity
62 popularity score ★ 48 ↓ 11k/wk
Opens the app, which asks before it adds the server.
claude mcp add agentistics -- npx -y @agentistics/mcp{
"mcpServers": {
"agentistics": {
"command": "npx",
"args": [
"-y",
"@agentistics/mcp"
]
}
}
}{
"mcpServers": {
"agentistics": {
"command": "npx",
"args": [
"-y",
"@agentistics/mcp"
]
}
}
}{
"servers": {
"agentistics": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@agentistics/mcp"
]
}
}
}[mcp_servers.agentistics]
command = "npx"
args = ["-y", "@agentistics/mcp"]gemini mcp add --scope user agentistics npx -- -y @agentistics/mcpAGENTISTICS_API |
Optional: Base URL of the running agentistics API. |
|---|
agentistics is a local app that reads the session logs AI coding assistants leave on disk (Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, Antigravity and Kimi Code) and works out tokens, estimated cost, sessions and activity from them. This MCP server is a thin stdio front end to that app's HTTP API. It never opens the log folders itself. It asks a running agentistics server, which is http://localhost:47291 unless AGENTISTICS_API points elsewhere.
On the reporting side an assistant can get all-time totals, compare harnesses, and break spend down by project, repository, model or session. It can also read saved tags and check subscription windows, where it gets a hint about which harness or model to use next. The rest of the tools change things. They edit custom dashboard layouts, return a link to a PDF report, run a beta task board where agents create, claim, comment on and delete tasks, and file sessions into groups. A leader session can set roles, switch away mode, message other managed sessions or move a session to another account when one hits its usage limit.
Count the tools in the source rather than trusting the docs. The current release's agentistics-mcp.ts registers 48. docs/mcp.md says 38 and still names two team tools the code no longer has, and the npm package README says 13. Two of the 48, agentistics_flow_run and agentistics_flow_status, only show up when the server reports its experimental flows switched on.
You can launch it two ways. The npm package @agentistics/mcp runs under npx. The agentop binary also carries a copy as `agentop mcp`, and `agentop server` registers that copy for Claude Code, Codex, Gemini and Copilot every time it starts.
| Runtime | Node.js |
|---|---|
| Runs on | macOS, Windows, Linux |
| Also |
|
Start agentistics first. The one-line installer (`curl -fsSL https://agentop.openvibes.tech/cli | sh`) fetches the agentop binary for Linux x86_64 or macOS on x86_64 or arm64, while `npm i -g @agentistics/agentop` brings the Linux x86_64 binary only. Windows uses the .msi or .exe from the releases page. At the end the installer offers to start the server and to start it at login. Without a terminal it asks nothing, and AGENTOP_INSTALL_START=yes|no and AGENTOP_INSTALL_AUTOSTART=yes|no answer for it. Node.js runs the npx launch.
Each time `agentop server` starts it removes other registrations of this MCP from ~/.claude.json, such as a hand-added @agentistics/mcp entry under another name or a project-scope entry, and writes its own `agentop mcp` entry instead. Sessions already open keep the copy they started with until restarted.
Developers who already run agentistics and want an assistant to answer questions about their own token spend, sessions and projects across several coding assistants, or to coordinate a group of agent sessions through its task board. With no agentistics server running it does nothing. Linux on ARM has no server build. If you only want read access, note that delete, account-switch and messaging tools are all exposed, so lean on your client's approval prompts.
20 only read, 23 change things, 5 can delete or overwrite. A ? marks an optional parameter.
agentistics_summaryharness?: enumagentistics_harnessesagentistics_plan_limitskind?: enumauthorHarness?: stringagentistics_projectsharness?: enumagentistics_sessionslimit?: numberharness?: enumagentistics_costsharness?: enumagentistics_reposharness?: enumagentistics_tagsagentistics_tag_detailtag: stringagentistics_component_catalogcategory?: stringagentistics_get_layoutsagentistics_build_layout changesname: stringcomponentIds: arrayactivate?: booleanagentistics_add_component changeslayoutName?: stringcomponentId: stringx?: numbery?: numberw?: numberh?: numberagentistics_remove_component changeslayoutName?: stringitemId: stringagentistics_create_layout changesname: stringagentistics_set_active_layout changesname: stringagentistics_delete_layout deletesname: stringagentistics_export_pdfrange?: enumagentistics_tasksagentistics_taskref: stringagentistics_task_create changestitle: stringdetail?: stringagentistics_task_edit changesref: stringtitle?: stringdetail?: stringpriority?: enumdueDate?: stringstartDate?: stringlabels?: arrayactor?: stringagentistics_task_status changesref: stringstatus: stringactor?: stringreason?: stringblockedBy?: arrayagentistics_task_statusesagentistics_task_status_edit deletesid?: stringlabel?: stringcolor?: stringremove?: booleanagentistics_task_typesagentistics_task_type_edit deletesid?: stringlabel?: stringcolor?: stringremove?: booleanagentistics_task_comment changesref: stringbody?: stringauthor?: stringsubtaskId?: stringthreadId?: stringthreadTitle?: stringthreadKind?: enumkind?: enumattachments?: arrayagentistics_task_subtask changesref: stringtitle?: stringid?: stringdone?: booleanstatus?: enumdueDate?: stringstartDate?: stringblockedBy?: arrayisGroup?: booleanparentGroupId?: stringagentistics_task_link changesref: stringurl?: stringlabel?: stringkind?: stringremove?: stringagentistics_task_blocked_by changesref: stringblockedBy: arrayagentistics_task_nextactor?: stringlimit?: numberagentistics_task_claim changesref: stringby: stringrelease?: booleanleaseMs?: numbersessionId?: stringnote?: stringtakeover?: booleanforce?: booleanagentistics_task_activityref?: stringlimit?: numberagentistics_task_session changesref?: stringsessionId?: stringconversationId?: stringharness?: stringnote?: stringsubtaskId?: stringdetach?: stringagentistics_task_delete deletesref: stringagentistics_checkin_report changesstate: enumsummary: stringheadline?: stringdelivered?: arrayinProgress?: arraynext?: arrayhealth?: arrayactions?: arrayneeds?: arrayagentistics_session_groupsagentistics_session_group_create changesname: stringsessions?: arrayagentistics_session_group_edit deletesaction: enumgroup?: stringsession?: stringname?: stringagentistics_session_role changesref?: stringrole?: enumretirePredecessor?: stringagentistics_session_notify changesref: stringnotify?: enumagentistics_session_message changesto: stringkind: enumbody: stringagentistics_session_switch_account changesref: stringaccountId?: stringharness?: stringresendPending?: booleanagentistics_session_away changeson?: booleanuntil?: stringauthorised?: arraynote?: stringmaxWorkers?: numbertopCaps?: objecttarget?: stringnotice?: stringagentistics_wait changesaction: enumcondition?: objectdeadlineAt?: stringlabel?: stringrequestId?: stringreopen?: booleanwaitId?: stringgeneration?: numberfrom?: stringall?: booleanagentistics_flow_run changesname: stringinputs?: objectagentistics_flow_statusrunId: string