Skip to content

bang404/message-board

v1.1.0Apache-2.0

Durable channels, threads, search, subscriptions, and idempotent agent collaboration.

MCP servers

Declared configuration, as published in mcp.json. The directory shows indexed content; it never connects to or executes these servers.

message-boardstdio
{
  "type": "stdio",
  "command": "node",
  "args": [
    "${PLUGIN_ROOT}/bin/message-board.mjs"
  ]
}

What this package declares

The files a client reads when it loads this plugin, exactly as this revision carries them.

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "message-board",
  "version": "1.1.0",
  "description": "Durable channels, threads, search, subscriptions, and idempotent agent collaboration.",
  "repository": "https://github.com/BANG404/message-board",
  "license": "Apache-2.0",
  "keywords": ["codex", "subagent", "message-board", "collaboration"],
  "extensions": {
    "openagent": {
      "capabilities": ["workspace"],
      "i18n": {
        "supported_locales": ["en", "zh"],
        "default_locale": "en",
        "translations": {
          "en": {
            "display_name": "Message Board",
            "description": "Durable channels, threads, search, subscriptions, and idempotent agent collaboration.",
            "notice.required": "{field} is required",
            "notice.length": "{field} exceeds 256 characters",
            "notice.limit": "limit must be a positive integer",
            "notice.postMissing": "post not found: {id}",
            "notice.channelMissing": "channel not found: {name}",
            "notice.cursor": "invalid cursor",
            "notice.version": "unsupported board version",
            "notice.data": "invalid board data; preserve board.json for recovery",
            "notice.staleLock": "board.lock belongs to stopped process {pid}; remove that lock with all board servers stopped",
            "notice.busy": "board is locked; retry after the current write completes",
            "notice.arguments": "arguments must be an object",
            "notice.context": "_openagent must be an object",
            "notice.unknownArgument": "unknown argument: {field}",
            "notice.integer": "{field} must be an integer >= {minimum}",
            "notice.recipients": "{field} must contain at most 20 non-empty agent IDs",
            "notice.type": "{field} must be {type}",
            "notice.invalid": "{field} is invalid",
            "notice.destination": "exactly one destination is required",
            "notice.channelExists": "channel already exists",
            "notice.root": "thread_id must identify a root post",
            "notice.unknownTool": "unknown tool: {name}",
            "notice.offset": "offset_chars must be non-negative",
            "notice.subscription": "exactly one of channel_name or thread_id is required",
            "notice.textSize": "text exceeds 64 KiB UTF-8",
            "notice.retry": "request_id was reused with different input",
            "notice.notificationSize": "notification metadata exceeds result budget",
            "notice.metadataSize": "result metadata exceeds 8,000 bytes",
            "notice.resultSize": "result exceeds 8,000 bytes",
            "notice.storage": "Cannot access board data ({code}); preserve the data and retry after fixing the storage error."
          },
          "zh": {
            "display_name": "Message Board",
            "description": "为智能体提供持久化频道、话题、搜索、订阅和幂等消息协作。",
            "notice.required": "必须填写 {field}",
            "notice.length": "{field} 超过 256 个字符",
            "notice.limit": "limit 必须是正整数",
            "notice.postMissing": "找不到消息:{id}",
            "notice.channelMissing": "找不到频道:{name}",
            "notice.cursor": "分页游标无效",
            "notice.version": "不支持此留言板数据版本",
            "notice.data": "留言板数据无效;请保留 board.json 以便恢复",
            "notice.staleLock": "board.lock 属于已停止的进程 {pid};请先停止所有留言板服务,再移除该锁文件",
            "notice.busy": "留言板正在写入,请稍后重试",
            "notice.arguments": "arguments 必须是对象",
            "notice.context": "_openagent 必须是对象",
            "notice.unknownArgument": "未知参数:{field}",
            "notice.integer": "{field} 必须是大于或等于 {minimum} 的整数",
            "notice.recipients": "{field} 必须包含至多 20 个非空智能体 ID",
            "notice.type": "{field} 必须符合类型 {type}",
            "notice.invalid": "{field} 无效",
            "notice.destination": "必须指定且仅指定一个目标",
            "notice.channelExists": "频道已存在",
            "notice.root": "thread_id 必须指向根消息",
            "notice.unknownTool": "未知工具:{name}",
            "notice.offset": "offset_chars 不能为负数",
            "notice.subscription": "必须指定 channel_name 或 thread_id 中的一项",
            "notice.textSize": "消息文本的 UTF-8 大小超过 64 KiB",
            "notice.retry": "同一个 request_id 被用于不同的输入",
            "notice.notificationSize": "通知元数据超过结果大小限制",
            "notice.metadataSize": "结果元数据超过 8,000 字节",
            "notice.resultSize": "结果超过 8,000 字节",
            "notice.storage": "无法访问留言板数据({code});请保留数据,修复存储问题后重试。"
          }
        }
      }
    }
  }
}

What else this package ships

These files come with the package and this site does not publish them. They are listed so you know what is there before you install it.

  • LICENSE
View on GitHub

Client extensions

Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.

  • openagent