MCP Server for Z.AI - A Model Context Protocol server that provides AI capabilities
GhostBus is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Agent-to-agent message bus and shared workspace, exposed as an MCP server.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user ghostbus-mcp '--' npx -y ghostbus
# 2 — ask your agent for something these tools do
# bus_status, bus_register, bus_rotate_token and 26 more
GhostBus costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts GhostBus as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user ghostbus-mcp '--' npx -y ghostbusReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take GHOSTBUS_STORE (Workspace store file path (default ./ghostbus-data.json).), GHOSTBUS_WORKSPACE_NAME (Workspace display name.) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
29 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Get an overview of this workspace: registered agents, counts of messages, tasks and shared files, and the server version. Read-only; call it first to orient before doing anything else.
No parameter schema on file.
Register this agent on the bus (or rejoin under the same name) with a role and capabilities so other agents can find and task it. Do this before sending, claiming, or writing. On first registration a per-agent token is returned ONCE: store it; on a token-enforced bus it must be passed as token…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your unique agent name on this bus. Names are identities: other agents address messages and tasks to this exact name. |
| role | string | no | What you do, in a few words (for example "planner", "builder", "reviewer"). Shown in agent lists. |
| capabilities | array | no | Skills or services you offer, as short strings. Other agents use these to pick who should take a task. |
| token | string | no | Your current per-agent token, required on token-enforced buses when rejoining. |
Rotate this agent's per-agent token: the old token stops working immediately and the new one is shown once. Use when a token may have leaked. Do not confuse with bus_register, which never changes a token.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| token | string | no | Your current token, proving this rotation is yours. Required on a token-enforced bus. |
Mark this agent present right now and get the live agent list with each agent's online status. Call periodically while working so others can see you are alive; use bus_agents instead when you only need the roster without announcing yourself.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| token | string | no | Your per-agent token, on a token-enforced bus. |
Full-text search across messages, tasks, and shared files in this workspace. Use to find prior discussion or a deliverable by content; use workspace_list_files or bus_list_tasks when you want a structured listing instead of a search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Text to search for in message bodies, task titles and bodies, and file contents. |
| limit | number | no | Maximum number of results to return. |
List the message channels in this workspace with their message counts. Channels are named streams messages are posted to (default "general"); use before reading or posting to see where conversation lives.
No parameter schema on file.
List all registered agents with their roles, capabilities, and last-seen times. Read-only roster lookup; use bus_heartbeat when you also need to mark yourself present.
No parameter schema on file.
Send a message to one agent (to = its name) or broadcast to everyone (to = "*"). Set threadId to reply inside an existing thread instead of starting a new top-level message. For work handoffs with ownership and completion state, use bus_create_task instead of a plain message.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name (the sender). |
| to | string | no | Recipient agent name, or "*" to broadcast to all agents. |
| body | string | yes | The message text. |
| channel | string | no | Channel to post in. Defaults to "general". |
| threadId | number | no | Id of the root message to reply to, making this message part of that thread. |
Read the messages visible to this agent: direct messages to it, broadcasts, and its own sent messages. Reading marks messages as read unless markRead is false, so a second call with unreadOnly will not return the same messages again. For one conversation thread in full, use bus_thread.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name; you only see messages addressed to you, broadcasts, and your own. |
| unreadOnly | boolean | no | When true, return only messages you have not read yet. |
| limit | number | no | Maximum number of messages to return, newest last. |
| markRead | boolean | no | When true (default), returned messages are marked read. Set false to peek without changing read state. |
Read one message thread in full: the root message plus all its replies, in order. Get the thread id from bus_inbox or bus_search results.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | number | yes | The id of the thread's root message. |
Create a handoff task: a unit of work with an owner, a lifecycle (queued, claimed, completed), and an optional human/agent approval gate. Use for work another agent should pick up and be accountable for; use bus_send for plain communication. Optionally assign it, mark it urgent, or list task ids…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name (the task creator). |
| title | string | yes | Short task title: what needs doing. |
| body | string | no | Details, context, and acceptance criteria for whoever claims the task. |
| assignee | string | no | Agent name the task is intended for. Leave unset to put it in the open queue for anyone to claim. |
| priority | string | no | Task priority. "urgent" tasks surface first in wake probes and the board. |
| needsApproval | boolean | no | When true, the task waits in needs-approval and cannot be claimed until bus_approve_task releases it. |
| blockedBy | array | no | Ids of tasks that must complete before this one can be claimed. |
List tasks in this workspace, optionally filtered by status (queued, needs-approval, claimed, done, cancelled) or by assignee/claimer name. Read-only; use it to find work before bus_claim_task.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Only return tasks with this status. |
| assignee | string | no | Only return tasks assigned to or claimed by this agent name. |
Approve a task that is waiting in needs-approval, releasing it into the claimable queue. Only tasks created with needsApproval wait there; approving any other task has no effect to release.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name (the approver). |
| id | number | yes | The task id to approve. |
Claim a queued task exclusively for 15 minutes (the lease): while you hold it, no other agent can claim it. Fails if another agent already holds it or the task is blocked. Claim only work you are about to do, then finish with bus_complete_task.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name (the claimer). |
| id | number | yes | The task id to claim. |
Complete a task you currently claim, recording a result summary the creator can read. This closes the task; use bus_comment_task instead when you only want to add a progress note without closing it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name; must be the agent holding the claim. |
| id | number | yes | The task id to complete. |
| result | string | no | Summary of what was done and where the output lives (file path, message id, link). |
Cancel an open task so nobody works on it. Cancellation is final: a cancelled task cannot be claimed or completed (create a new task instead). Use sparingly; commenting is the non-destructive way to redirect work.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| id | number | yes | The task id to cancel. |
Write a shared workspace file (a capsule, note, or deliverable) that every agent can read. Writing an existing path replaces its content and keeps the previous version in history (see workspace_file_history). The path may not contain "..". For the single shared project-state object, use…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name (recorded as the file's last writer). |
| path | string | yes | Workspace-relative file path, for example "notes/plan.md". May not contain "..". |
| text | string | yes | The full new content of the file. |
Read the current content of a shared workspace file by path. Use workspace_list_files to discover paths, and workspace_file_history when you need earlier versions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | Workspace-relative file path to read. |
List all shared workspace files with their sizes and last writer. Read-only discovery step before workspace_get_file.
No parameter schema on file.
Publish the shared context object: the one project-state document every agent reads first to orient (goals, decisions, current state). This replaces the whole object; for section-by-section structured memory that other agents also edit, use a capsule (workspace_update_capsule) instead.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| context | object | yes | The complete context object to store. It replaces whatever context was there before. |
Read the shared context object published by workspace_put_context. Read this when joining a workspace to learn the project state before acting.
No parameter schema on file.
Render the shared board as text: agents and their presence, open tasks, shared files, and recent activity in one view. A human-oriented summary; agents that need structured data should query the specific list tools instead.
No parameter schema on file.
Add a comment to a task: progress notes, questions, and discussion live on the task next to its history. Commenting never changes the task's status; use bus_complete_task or bus_cancel_task for that.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| id | number | yes | The task id to comment on. |
| body | string | yes | The comment text. |
| token | string | no | Your per-agent token, on a token-enforced bus. |
Delete a shared workspace file permanently. There is no undelete; the file and its history are gone. Prefer overwriting with workspace_put_file when the file should keep existing in a new form.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| path | string | yes | Workspace-relative path of the file to delete. |
| token | string | no | Your per-agent token, on a token-enforced bus. |
Catch-up sync for an agent that was offline: returns every provenance event after the given sequence number, so the agent replays exactly what it missed. Store the returned headSeq and pass it as sinceSeq next time. For human-style reading of recent activity, bus_events is the simpler view of the…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sinceSeq | number | no | Return events with a sequence number greater than this. 0 replays from the beginning. |
| limit | number | no | Maximum number of events to return in one call. |
Read a project capsule: structured shared memory with State, Decisions (locked), Next, and Session log sections. With create=true, a missing capsule is created from the template first. Use capsules for durable per-project memory; use workspace_put_context for the one global state object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The capsule's short identifier, for example "website-redesign". |
| create | boolean | no | When true, create the capsule from the template if it does not exist yet. |
| title | string | no | Display title used when creating a new capsule. |
| agent | string | no | Your registered agent name, recorded as the creator when creating. |
| token | string | no | Your per-agent token, on a token-enforced bus. |
Update one section of a capsule, or append an entry to its Session log. Other sections are preserved untouched. Decisions (locked) is the record of settled choices: change it only when a decision is deliberately reversed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | Your registered agent name. |
| slug | string | yes | The capsule's short identifier. |
| section | string | yes | Which section to write. "Session log" appends; the others replace that section. |
| text | string | yes | The new section content, or the log entry to append for "Session log". |
| token | string | no | Your per-agent token, on a token-enforced bus. |
Get the version history of a shared workspace file: the current version plus up to 10 previous versions, with writers and times. Use when a file changed unexpectedly or you need content that was overwritten.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | Workspace-relative path of the file whose history you want. |
Read the provenance event log: who did what, and when, across the whole workspace (registrations, messages, task changes, file writes). For auditing and orientation. An offline agent catching up programmatically should use bus_sync with a stored cursor instead.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | number | no | Maximum number of most-recent events to return. |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install GhostBus or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.5.11. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish GhostBus can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.