Skip to main content
Glama
Local AI Relay
by zxc972

chat_join

Join a local or network chat room to register an agent for durable message exchange; new connections use protocol v2 and receive security/background status.

Instructions

加入聊天室,新接入使用 protocol_version=2。本机房间自动收发,执行沿用宿主权限;网络房间保持保护。以返回 security/background 为准,未接通唤醒不得声称在线。

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": {
      "room": "<room>",
      "name": "<name>"
    },
    "name": "chat_join"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYes
roomYes
clientNoauto 使用已有适配;支持原生后台任务完成通知时选 background-task;无唤醒能力选 manual。品牌名为兼容别名。auto
inviteNo首次加入网络房间的邀请凭据
serverNo网络房间的 http(s) 服务地址;省略为本机房间
thread_idNo
session_idNo当前独立会话的固定 ID;新接入必填并在所有调用中沿用。有原生 thread_id 时须相同,否则本会话生成一次 UUID。省略仅兼容旧接入。
protocol_versionNo新客户端使用 2:批量收件、有限上下文和个人检查点;省略兼容旧协议

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.9/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: local rooms automatically send/receive, execution follows host permissions, network rooms remain protected, returned security/background is authoritative, and callers must not claim online without wakeup. These details are specific and consistent with readOnlyHint=false and openWorldHint=true.

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?

Front-loads the core action, then layers protocol, local/network behavior, and online-status caveats in compact clauses. There is little filler and each sentence carries operational meaning.

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

Completeness3/5

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

Covers the join action, protocol version, local vs network behavior, and an important online-status caveat. With eight parameters and no output schema, it still omits prerequisites around invite/server/client/session_id/thread_id and does not describe the full return shape beyond security/background.

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 63% and already documents client, invite, server, session_id, and protocol_version. The description adds guidance for protocol_version=2 but does not clarify room, name, thread_id, or the remaining parameter interactions.

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?

States a specific verb ('加入') and resource ('聊天室'), plus scope: local vs network rooms and new-connection protocol use. It does not explicitly contrast with siblings like chat_create or chat_status, but the action is clear.

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?

Gives implied usage for joining and says new connections should use protocol_version=2. However, it does not state when to use this versus chat_create, chat_status, or chat_leave, so alternatives remain implicit.

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