Skip to main content
Glama
@ola/buzz-mcp

@ola/buzz-mcp

Official
by ola-krutrim

buzz_add_member

Idempotent

Add a person to a channel as yourself, subject to your own role permissions. The added user gains access to the channel's prior message history.

Instructions

Add a person to a channel (NIP-29 kind 9000), as you. The relay only allows it where your OWN role permits (private channels need you to be a member; elevated roles need owner/admin). NOTE: the added person can then see the channel's prior history. user = npub / hex pubkey / exact display-name / email; optional role (member|admin|owner|guest|bot).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "channel": "<channel>",
      "user": "<user>"
    },
    "name": "buzz_add_member"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleNomember|admin|owner|guest|bot (default member; elevated needs your owner/admin)
userYesnpub / hex pubkey / exact display name / email
channelYes
dry_runNopreview only: resolve everything and show the exact event that would be signed (auth tags redacted) — nothing is signed, uploaded or sent

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.2.36
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / channel / maxLength
      Added value: +256
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "description": "preview only: resolve everything and show the exact event that would be signed (auth tags redacted) — nothing is signed, uploaded or sent",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / role / maxLength
      Added value: +16
    • addedInput schema / properties / user / maxLength
      Added value: +320
  2. Addedv0.2.7

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the write, idempotent, non-destructive profile, and the description adds real context beyond them: the action is performed under the caller's identity and authority, and the added person gains visibility into the channel's prior history. The dry_run parameter's preview semantics are left to the schema.

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?

Two tight, front-loaded sentences: identity and target first, then permission constraints, then a highlighted side effect, then parameter notes. No filler; the parenthetical NIP reference earns its place for protocol-aware agents.

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?

For a 4-parameter mutation with no output schema, the description covers who acts, what authority is required, and the main side effect (history exposure). Only the dry_run preview path goes unmentioned in prose, and the schema covers it.

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

Parameters3/5

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

Schema coverage is 75% and already documents user formats, role values, and the dry_run preview. The description largely restates the user and role semantics (default member, owner/admin required for elevation) and says nothing about the undocumented `channel` parameter, so it adds only marginal meaning.

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?

States a specific verb and resource (add a person to a channel), ties it to the NIP-29 kind 9000 event, and frames the actor ('as you'), which cleanly separates it from buzz_join_channel (self-join) and buzz_remove_member.

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?

Explains the gating conditions for use: the relay only permits the action where your own role allows it, private channels require your membership, and elevated role assignment requires owner/admin. It does not explicitly name alternative tools (e.g., buzz_channel_members to check membership first), so it stops short of 5.

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