Skip to main content
Glama

send-message-to-process

Send a message containing data and optional tags to a specific process on the Flux MCP server for streamlined interaction with the Arweave Operating System.

Input Schema

NameRequiredDescriptionDefault
dataYes
processIdYes
tagsNo

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "type": "string" }, "processId": { "type": "string" }, "tags": { "items": { "additionalProperties": false, "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "processId", "data" ], "type": "object" }

Implementation Reference

  • The core handler function for the 'send-message-to-process' tool. It sends a message to the specified AO process using the `message` function from `@permaweb/aoconnect`, waits briefly with `sleep(100)`, retrieves the output using `result`, handles errors, cleans the output with `cleanOutput`, and formats the response as MCP content.
    async ({ processId, data, tags }) => { const messageId = await message({ process: processId, signer: this.signer, data, tags, }); await sleep(100); const output = await result({ message: messageId, process: processId, }); if (output.Error) { return { content: [{ type: "text", text: cleanOutput(output.Error) }], }; } return { content: [ { type: "text", text: cleanOutput(output.Messages[0].Data) }, ], }; }
  • Zod input schema for the tool: required `processId` (string), `data` (string), optional `tags` (array of objects with `name` and `value` strings). Defines validation for tool parameters.
    { processId: z.string(), data: z.string(), tags: z .array( z.object({ name: z.string(), value: z.string(), }) ) .optional(), },
  • src/mcp.ts:86-126 (registration)
    Registration of the 'send-message-to-process' tool on the McpServer instance within the FluxServer class's registerTools method. Includes name, description, schema, and inline handler function.
    this.server.tool( "send-message-to-process", "send a message to an existing AO process", { processId: z.string(), data: z.string(), tags: z .array( z.object({ name: z.string(), value: z.string(), }) ) .optional(), }, async ({ processId, data, tags }) => { const messageId = await message({ process: processId, signer: this.signer, data, tags, }); await sleep(100); const output = await result({ message: messageId, process: processId, }); if (output.Error) { return { content: [{ type: "text", text: cleanOutput(output.Error) }], }; } return { content: [ { type: "text", text: cleanOutput(output.Messages[0].Data) }, ], }; } );
  • Helper function used by the tool (and others) to clean ANSI escape codes and normalize newlines in JSON-stringified output before returning to the user.
    function cleanOutput(result: any): string { if (!result) return ""; return JSON.stringify(result, null, 2) .replace(/\\u001b\[\d+m/g, "") .replace(/\\n/g, "\n"); }

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/asrvd/flux'

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