Skip to main content
Glama

twining_post

Post coordination messages to a shared blackboard for agent collaboration. Share findings, needs, warnings, status updates, and other information with other agents during development tasks.

Instructions

Post an entry to the shared blackboard. Use this to share findings, needs, warnings, status updates, and other coordination messages with other agents. Does NOT accept entry_type 'decision' — use twining_decide instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
entry_typeYesType of blackboard entry
summaryYesOne-line summary (max 200 chars)
detailNoFull context and details
tagsNoDomain tags for filtering
scopeNoFile path, module name, or "project"
relates_toNoIDs of related entries
agent_idNoIdentifier for the posting agent

Implementation Reference

  • Registration of the 'twining_post' tool, which handles the definition of its schema and invokes the 'engine.post' method.
    // twining_post — Post an entry to the shared blackboard
    server.registerTool(
      "twining_post",
      {
        description:
          "Post an entry to the shared blackboard. Use this to share findings, needs, warnings, status updates, and other coordination messages with other agents. Does NOT accept entry_type 'decision' — use twining_decide instead.",
        inputSchema: {
          entry_type: z.enum(ENTRY_TYPES).describe("Type of blackboard entry"),
          summary: z
            .string()
            .max(200)
            .describe("One-line summary (max 200 chars)"),
          detail: z.string().optional().describe("Full context and details"),
          tags: z
            .array(z.string())
            .optional()
            .describe("Domain tags for filtering"),
          scope: z
            .string()
            .optional()
            .describe('File path, module name, or "project"'),
          relates_to: z
            .array(z.string())
            .optional()
            .describe("IDs of related entries"),
          agent_id: z
            .string()
            .optional()
            .describe("Identifier for the posting agent"),
        },
      },
      async (args) => {
        try {
          const result = await engine.post(args);
          return toolResult(result);
        } catch (e) {
          if (e instanceof TwiningError) {
            return toolError(e.message, e.code);
          }
          return toolError(
            e instanceof Error ? e.message : "Unknown error",
            "INTERNAL_ERROR",
          );
        }
      },
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/daveangulo/twining-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server