Skip to main content
Glama

AgentBus

Test Python License: MIT

SQLite 기반 MCP 이벤트 버스 및 이기종 에이전트 스웜을 위한 컨트롤 서피스.

Cursor, Claude, Antigravity, 그리고 Terminal Agents(Hermes 등)가 같은 워크스페이스를 공유할 때, 그들은 보통 취약한 append-only 파일(log.md)로 협력합니다. SLA 타임아웃, HITL(Human-in-the-Loop) 인터셉트, 엄격한 스키마 검증, 암호화 RBAC가 필요해지기 전까지는 그 방식이 통하죠.

AgentBus는 "전화기 게임"을 로컬호스트 사이드카로 대체합니다: SQLite로 구동되는 Python MCP 서버입니다. 오케스트레이터 런타임에 얽매이지 않습니다. 무거운 클라우드 대시보드도 없습니다. 최상위 AI 오케스트레이션을 위해 만들어진 초고속 로컬 pub/sub일 뿐입니다.

v0.18.0(2026년 8월): v0.12-v0.16에서 도입된 headless runner, async suspend/resume, wake-plane, resilient-delivery 작업에 이어 MCP Python SDK v2로 마이그레이션했습니다. 자세한 내용은 변경 로그를 참조하세요.

참고: okf-agentbus 로 설치하세요(CLI 명령어는 여전히 agentbus). 추가 옵션: [obs,devex,jupyter,sdk].

⚡ "아하" 순간: 재시작 없는 통합

이미 Aider, OpenHands 또는 커스텀 에이전트를 tmux panes에서 실행 중이신가요? 세션을 종료하지 마세요. AgentBus는 이중 인터페이스 아키텍처(MCP + CLI)를 갖추고 있습니다. 오늘 바로 테스트하기 위해 JSON 설정을 연결할 필요가 없습니다. 실행 중인 에이전트에게 이렇게 요청하기만 하면 됩니다:

"터미널에서 agentbus publish --topic okf/handoff --payload '{\"from\":\"grok\",\"to\":\"hermes\",\"summary\":\"Write tests\"}' 를 실행하세요."

SQLite 버스가 MCP 서버 없이도 즉시 캡처합니다. Mission Control TUI에 확신이 생기면 다음 부팅 시 강력한 타입을 지닌 MCP 서버를 연결할 수 있습니다.

Related MCP server: Hivemind

Why AgentBus?

대안

제약사항

AgentBus

log.md 블랙보드

스키마 없음, 전원 조건

타이핑된 주제, 단조 ID, 조언 잠금

LangGraph / CrewAI

같은 런타임에만 국한

이종 아웃오브프로세스 클라이언트 (IDE + CLI)

LangSmith

클라우드 전용, 과거 지향

로컬 SQLite, 미래 지향 실행 TUI

Redis pub / sub

추가 데몬, 복잡한 설정

제로 설정 SQLite, 네이티브 STDIO MCP

Feature Arsenal (v0.3 - v0.18)

  • MCP Python SDK v2 (v0.18): 기존 이벤트 저장소 계약을 유지하면서 stdio MCP 서버를 마이그레이션.

  • Resilient delivery (v0.16.4): 지터가 있는 with bounded retry, 마지막 재시도 시 dead letters 및 SQLite 동시성을 위한 파일 유출.

  • Async suspend/resume (v0.16): durable waits 및 correlated wake events로 headless agents가 busy polling 없이 yield할 수 있습니다.

  • Headless runners (v0.15): 다양한 CLI 에이전트를 위한 opt-in adapters로서 with bounded chain behavior and structured acknowledgements.

  • Wake plane and Go helpers (v0.12-v0.13): platform-packaged workers, role leases, wake ingress, webhook delivery.

  • Jupyter async client (v0.11): from agentbus.jupyter import AsyncAgentBus + %agentbus start — 논블로킹 폴이 노트북 이벤트 루프에 양보합니다.

  • TypeScript client (v0.11): packages/js/agentbus-client — Node EventEmitter + MCP stdio spawn(@agentbus/agentbus-client, 지금은 경로 설치).

  • God View Mesh (v0.9): Passive OS + MCP 관측으로 조용한 에이전트가 여전히 버스에 발자국을 남깁니다 (system/mcp, system/fs, system/shell, system/monologue).

  • Mission Control TUI (v0.8+): 키보드로 조작하는 풍부한 Textual 대시보드(agentbus monitor). Trace waterfall, HITL, Wiretap pane, Dark Agent 경고.

  • Pluggable Pydantic Schemas (v0.7): 코드 우선 @bus.topic 데코레이터로 삽입 계층에서 엄격한 JSON 스키마를 강제합니다.

  • Distributed Context (v0.6): --attach 로 대용량 컨텍스트(예: git diff)를 전달하세요. 1MB 하드 페이로드 제한으로 컨텍스트 창 폭발을 방지합니다.

  • Agentic Observability (v0.5): 네이티브 OpenTelemetry 스타일의 trace_id 및 parent_span_id 계통.

  • SLA Timeouts & Dead-Letter (v0.4): 유령 데드락 방지. 에이전트가 스웜을 유령처럼 방황하면 SLA 지연이 스웜을 유령처럼 흐려, 라우터가 페이로드를 okf/dead-letter 로 보냅니다.

  • Swarm RBAC & Droid Proofs (v0.3): 암호화 JWT/UUID 토큰으로 인증된 에이전트만 제한된 주제에 를 발행할 수 있습니다.

  • HITL Intercepts (v0.3): 위험한 페이로드(예: DROP TABLE) 를 잡아내고 TUI를 통해 위험을 확인합니다.

설치

가장 빠른 방법 (IGID 사용 함 및 자동 연결):

curl -sSL https://raw.githubusercontent.com/onicarps/agentbus/main/install.sh | bash

또는 pip를 통해 수동 설치:

pip install -U "okf-agentbus[devex,sdk]"
agentbus init --apply --producer-id my-agent

Jupyter 노트북에서의 설정:

pip install -U "okf-agentbus[jupyter]"
%load_ext agentbus.jupyter
%agentbus start
# or
from agentbus.jupyter import AsyncAgentBus
bus = AsyncAgentBus()  # AGENTBUS_WORKSPACE or cwd
bus.on_event(print)
await bus.start_background(interval=1.0)

TypeScript (monorepo 체크아웃에서 ):

cd packages/js/agentbus-client && npm install && npm test
# set AGENTBUS_WORKSPACE + agentbus on PATH, then use createStdioMcpClient / AgentBus

빠른 시작 및 예제

AgentBus를 이해하는 가장 좋은 방법은 복사-붙여넣기 가능한 예제를 읽는 것입니다.

기본 Pub/Sub부터 Pydantic 스키마 및 SLA 타임아웃까지 모든 기능을 포함하는 7개봉어러운 격리된 Python 스크립트가 있는 examples/ 디렉토리를 참조하세요.

# Terminal A — Launch the Mission Control TUI
agentbus monitor

# Terminal B — Publish a handoff
agentbus publish \
  --topic okf/handoff \
  --payload '{"from":"cursor","to":"hermes","summary":"Write tests"}'

** god View Observability (v0.9.0):**

조용한 에이전트를 도청해 추적하세요:

# Intercept MCP tool calls
mcp-serve --wiretap

# Watch file edits and command executions
agentbus watch

# Tail internal agent reasoning logs
agentbus tail

이벤트는 system/mcp, system/fs, system/shell, system/monologue 주제에 대해 TUI의 Wiretap 사용자 정의 창으로 흘러 들어갑니다.

📦 워크스페이스 격리 (.agentbus 디렉토리)

AgentBus는 워크스페이스 격리 개념으로 작동합니다(.git 대비 docker-compose.yml 대비 docker-compose.yml 과 유사).

버스와 그 이벤트는 실행 중인 디렉터리에 물리적으로 범위가 제한됩니다. 스웜이 전체 운영 체제를 추적하거나 다른 프로젝트를 서로 오염시키는 것을 방지합니다.

특정 프로젝트 폴더로 이동하여 agentbus init 또는 agentbus up 을 실행하면 해당 디렉토리에 대해 특별히 로컬 .agentbus/events.db SQLite 데이터베이스가 생성됩니다.

1-Click Swarm Orchestration (v0.10.0)

5개의 tmux panes를 직접 열어 에이전트와 관측 데몬을 실행하는 대신 새 오케스트레이터를 사용하세요:

cd /path/to/my-project

# 1. Generate a boilerplate .agentbus/swarm.yaml
agentbus up --init

# 2. Boot the swarm (Watchers, Agents, and TUI) in one click
agentbus up

# 3. View running background agents
agentbus ps

# 4. Safely kill the entire swarm
agentbus down

문서

전체 아키텍처 문서는 docs/ 디렉토리를 참조하세요.

라이선스

MIT — LICENSE 참조.

Available Tools

10 tools
agentbus_approveC

Approve a pending event so agents can see it on poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
auth_tokenNo
reviewer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must fully disclose behavior. It reveals that the tool changes state (approval) and makes events visible on poll, but omits critical details like required permissions, idempotency, reversibility, or side effects. Mutation tools need richer behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence), which is efficient but arguably too brief given the tool's complexity (3 parameters, no schema coverage, mutation). A few more sentences would improve clarity without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a mutation with no annotations and an output schema (not described). The description does not cover what constitutes a 'pending event', the approval workflow, or the response structure. The context is insufficient for an agent to use the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description adds no parameter meaning. It does not explain event_id, auth_token, or reviewer_id, leaving the agent to infer from names alone. The description must compensate for missing schema descriptions but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Approve' and the resource 'pending event', and clarifies the effect 'so agents can see it on poll'. This clearly distinguishes it from sibling tools like agentbus_review, suggesting a specific approval step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not provide prerequisites, conditions for use, or exclusions. The sibling tools list is given but not leveraged to explain selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_lock_acquireC

Acquire an exclusive advisory lease on a workspace resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
owner_idYes
resourceYes
auth_tokenNo
ttl_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only states that the lease is 'exclusive' and 'advisory,' but lacks details on what happens if the lock is already held, side effects, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is under-specified for a tool with four parameters and an output schema; it sacrifices necessary detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, output schema, no annotations), the description fails to cover return values, failure modes, or how to use the parameters, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain any of the four parameters (owner_id, resource, auth_token, ttl_seconds), providing no added meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Acquire' and clearly identifies the resource as 'exclusive advisory lease on a workspace resource,' which distinguishes it from siblings like lock_release, lock_renew, and lock_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like lock_release or lock_renew, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_lock_releaseB

Release a held lease (idempotent if already expired).

ParametersJSON Schema
NameRequiredDescriptionDefault
lease_idYes
owner_idYes
resourceYes
auth_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions idempotency if the lease is already expired, which is a useful behavioral trait. However, with no annotations, the description carries the full burden and fails to disclose authentication requirements, side effects, or what happens if the lease is not held.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no wasted words. It could arguably add more detail without becoming verbose, but it is efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has four parameters and no parameter descriptions in the schema, the description should compensate but does not. The existence of an output schema mitigates the need to explain return values, but overall completeness is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for parameters, and the tool description does not explain any of the four parameters (lease_id, owner_id, resource, auth_token). This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Release a held lease', with a specific verb and resource. The sibling tools include acquire and renew, so the purpose is distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and description, but there is no explicit guidance on when to use this tool versus alternatives like agentbus_lock_acquire or agentbus_lock_renew. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_lock_renewC

Extend TTL on an active lease (heartbeat).

ParametersJSON Schema
NameRequiredDescriptionDefault
lease_idYes
owner_idYes
resourceYes
auth_tokenNo
ttl_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the basic function (extending TTL) without mentioning side effects, error cases, or required permissions (e.g., auth_token needed).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is concise and front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 params, 0% schema coverage, and a locking context), the description is insufficient. It fails to explain parameters or output, leaving significant gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the 5 parameters. It adds no meaning beyond their names, leaving the agent to infer their purposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Extend TTL on an active lease (heartbeat)' clearly specifies the verb (extend) and resource (active lease), and the heartbeat terminology distinguishes it from sibling tools like lock_acquire, lock_release, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only states the action without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_lock_statusB

Check lock state without acquiring (no auth required).

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description discloses an important behavioral trait ('no auth required'), but omits other aspects like idempotency, side effects, or what the lock state entails. Minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with no filler. However, the brevity sacrifices clarity on parameter semantics. Front-loaded with key differentiating info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite low complexity and presence of output schema (not shown), the description fails to explain the sole required parameter. Leaves agent guessing about 'resource'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and description does not mention the 'resource' parameter at all. No guidance on its meaning, format, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Check' and resource 'lock state', distinguishing it from sibling tools like lock_acquire, lock_release, and lock_renew. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly indicates when to use ('without acquiring') and notes no auth required, but does not explicitly list alternatives or when not to use. Context from sibling names helps, but description lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_pollA

Fetch events after cursor (at-least-once delivery).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
topicYes
since_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses 'at-least-once delivery', a meaningful behavioral trait indicating possible duplicate deliveries and implied consumption semantics. With no annotations provided, this adds value beyond the schema, though it omits other details like read-only vs. side-effect on the cursor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with two short phrases that are front-loaded and contain no redundant information. Every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description is too sparse to fully understand the tool's mechanics. It omits parameter semantics, ordering, and error behavior, making it incomplete for correct invocation, especially with no annotations to fill gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only hints at a 'cursor' without explicitly mapping to the since_id parameter. It does not explain the meaning of limit or topic, so the description fails to compensate for the lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches events after a cursor, using the verb 'Fetch' and resource 'events'. This distinguishes it from sibling tools like agentbus_publish (writing) and agentbus_status (status checks), and the cursor aspect adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and sibling context (polling for events after a cursor), but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_publishC

Append one event to the workspace event log.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
actionNo
payloadYes
trace_idNo
auth_tokenNo
producer_idNo
causation_idNo
parent_span_idNo
schema_versionNo1.0
idempotency_keyNo
sla_timeout_minutesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Append' implies a durable mutation, but the description says nothing about authentication (despite an auth_token parameter), idempotency/deduplication behavior (despite an idempotency_key parameter), ordering guarantees, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single clean, front-loaded sentence with no filler, which is structurally good. But for an 11-parameter mutation tool the extreme brevity reflects under-specification rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, but the description leaves the auth requirement, idempotency semantics, and event-schema/versioning behavior unspecified for a complex write tool with no annotations and no parameter docs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, and the description adds no parameter meaning at all. Critical parameters such as auth_token, idempotency_key, causation_id, parent_span_id, and sla_timeout_minutes are entirely undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Append'), resource ('event log'), and scope ('one event', 'workspace'), so an agent can tell this is a write/publish operation. It does not, however, differentiate itself from siblings like agentbus_poll or agentbus_review, which an agent must distinguish on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions selecting this over agentbus_poll or any other sibling, and no stated prerequisites. The agent must infer the entire usage context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_rejectB

Reject a pending event and notify the originating agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNorejected by human reviewer
event_idYes
auth_tokenNo
reviewer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavioral traits. It does mention the notification side effect, but it omits critical information such as whether the rejection is permanent, how the event state changes, or any authentication requirements. This is a significant gap for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately communicates the primary action and key side effect. It is front-loaded and contains no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters, no annotations, and zero schema description coverage, this description is insufficiently complete. It does not explain the lifecycle of the event, the meaning of reviewer_id, or any prerequisites, leaving the agent to rely on the output schema which does not cover these behavioral aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no parameter details. While event_id and reason may be self-evident from their names, auth_token and reviewer_id are not explained, forcing the agent to guess their purpose and required format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Reject', the resource 'a pending event', and the side effect 'notify the originating agent.' It is specific and distinguishable from sibling tools like approve and review, which have contrary or different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: use this tool when rejecting a pending event. However, it does not explicitly mention alternatives or when not to use it, nor does it contrast with approve or review, so the guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_reviewA

List events pending human approval (hidden from standard poll).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
topicNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the basic purpose (listing pending events) but does not clarify whether the operation is read-only, any side effects, authentication requirements, or behavior under different conditions (e.g., empty results). The description is too minimal for a tool without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the core purpose. Every word is necessary; there is no redundancy or extraneous information. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema (which covers return values) and the tool's straightforward nature (listing pending events), the description provides the essential context. However, missing details such as filtering behavior or relationship to sibling tools (like agentbus_approve) could be added for completeness, even though the tool is simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. However, the description does not mention the parameters 'limit' or 'topic' at all. While the parameter names are somewhat self-explanatory, the description adds no additional context or usage guidance, which is insufficient given the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and clearly identifies the resource as 'events pending human approval', making the purpose immediately clear. It also distinguishes the tool from siblings by noting these events are 'hidden from standard poll', implying that other tools like agentbus_status show standard events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool—to view events that are not visible through the standard poll. It does not explicitly state when not to use it or mention alternatives, but the context of sibling tools (e.g., agentbus_approve for approvals) provides implicit guidance. A higher score would require explicit when/when-not statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentbus_statusB

Workspace bus health and topic list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It only states that the tool returns health and topic list, implying a read-only operation but doesn't mention side effects, authorization needs, or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, but it's a noun phrase rather than a complete sentence. It is efficient but could be improved with a verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and the presence of an output schema, the description adequately explains the tool's purpose and return value. It is sufficiently complete for a simple status-check tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds meaning by specifying what the output covers (health and topic list), which goes beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns workspace bus health and topic list, distinguishing it from sibling tools like agentbus_review or agentbus_approve. However, it lacks a verb like 'get' or 'retrieve', making it slightly less directive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings. The sibling names suggest different purposes (review, approve, lock operations), but no explicit conditions or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.23.0
    • Changedagentbus_publish1 field changed
      • addedInput schema / properties / action
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Action"
        +}
  2. 3 tool updatesv0.18.0
    • Addedagentbus_poll
    • Addedagentbus_publish
    • Addedagentbus_reject
  3. 8 tool updatesv0.17.0
    • Addedagentbus_approve
    • Addedagentbus_lock_acquire
    • Addedagentbus_lock_release
    • Addedagentbus_lock_renew
    • Addedagentbus_lock_status
    • Removedagentbus_publish
    • Addedagentbus_review
    • Addedagentbus_status
  4. 3 tool updatesv0.16.3
    • Removedagentbus_poll
    • Addedagentbus_publish
    • Removedagentbus_reject
  5. 8 tool updatesv0.16.3
    • Removedagentbus_approve
    • Removedagentbus_lock_acquire
    • Removedagentbus_lock_release
    • Removedagentbus_lock_renew
    • Removedagentbus_lock_status
    • Removedagentbus_publish
    • Removedagentbus_review
    • Removedagentbus_status
  6. 1 tool updatev0.6.0
    • Changedagentbus_publish2 fields changed
      • addedInput schema / properties / parent_span_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Parent Span Id"
        +}
      • addedInput schema / properties / trace_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Trace Id"
        +}
  7. 4 tool updatesv0.4.0
    • Addedagentbus_approve
    • Changedagentbus_publish1 field changed
      • addedInput schema / properties / sla_timeout_minutes
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Sla Timeout Minutes"
        +}
    • Addedagentbus_reject
    • Addedagentbus_review
  8. 4 tool updatesv0.2.0
    • Addedagentbus_lock_acquire
    • Addedagentbus_lock_release
    • Addedagentbus_lock_renew
    • Addedagentbus_lock_status
  9. 3 tool updatesv0.1.0
    • First observedagentbus_poll
    • First observedagentbus_publish
    • First observedagentbus_status

TDQS

B3.3/5.0

Scored across 10 tools

Disambiguation4/5

Tools are mostly distinct: publish vs poll vs review vs approve/reject are clearly separated, and lockdown tools (acquire/status/release/renew) are distinguishable. Minor potential overlap between poll and review for fetching events, but descriptions clarify that review shows hidden pending events.

Naming Consistency4/5

Consistent 'agentbus_' prefix with verb_noun patterns for most tools (e.g., lock_acquire, lock_release, lock_renew). Deviations like 'approve' and 'reject' use a single verb, but they remain readable and fit the domain.

Tool Count5/5

10 tools are well-scoped for an agent bus handling event approval, polling, publishing, and lock leasing. Each tool appears to serve a distinct purpose with no redundancy.

Completeness5/5

Covers the full lifecycle: publish, poll, review, approve/reject, status, and lock management (acquire, status, renew, release). No obvious gaps for the stated event bus and lock leasing domain.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    SQLite-backed MCP server for Claude Code session persistence and multi-agent coordination. Provides tools for session management, event logging, decision tracking, file locking, agent registry, and plan tracking.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Local-first, auditable memory for AI agents. Provides durable context for MCP hosts with SQLite storage, CLI, and MCP tools for memory management.
    2
    Apache 2.0