Skip to main content
Glama

run-handler-using-handler-name

Execute specific handlers on Flux MCP server by providing process ID, handler name, and data, enabling automated code and handler management within the Arweave Operating System.

Input Schema

NameRequiredDescriptionDefault
dataYes
handlerNameYes
processIdYes

Input Schema (JSON Schema)

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

Implementation Reference

  • src/mcp.ts:257-279 (registration)
    Registers the MCP tool 'run-handler-using-handler-name' with input schema, description, and a thin async handler that delegates to the runHandler helper function from helpers/handlers.ts.
    this.server.tool( "run-handler-using-handler-name", "run a handler using its name in an existing AO process", { processId: z.string(), handlerName: z.string(), data: z.string() }, async ({ processId, handlerName, data }) => { const result = await runHandler( processId, handlerName, data, this.signer ); if (result.Error) { return { content: [{ type: "text", text: cleanOutput(result.Error) }], }; } return { content: [ { type: "text", text: cleanOutput(result.Messages[0].Data) }, ], }; } );
  • Zod schema defining the input parameters for the tool: processId, handlerName, and data.
    { processId: z.string(), handlerName: z.string(), data: z.string() },
  • Core helper function that implements the logic to run a named handler in an AO process by sending a message with 'Action' tag set to handlerName and the provided data, then retrieving the result using aoconnect APIs.
    export async function runHandler( processId: string, handlerName: string, data: string, signer: any ) { const messageId = await message({ process: processId, signer, data, tags: [{ name: "Action", value: handlerName }], }); await sleep(100); const outputResult = await result({ message: messageId, process: processId, }); return outputResult; }
  • Alternative registration of the same tool in the local development server (src/local/index.js), using an inline runHandler implementation.
    server.tool( "run-handler-using-handler-name", { processId: z.string(), handlerName: z.string(), data: z.string() }, async ({ processId, handlerName, data }) => { const result2 = await runHandler(processId, handlerName, data); if (result2.Error) { return { content: [{ type: "text", text: cleanOutput(result2.Error) }], }; } return { content: [{ type: "text", text: cleanOutput(result2.Messages[0].Data) }], }; } );
  • Inline helper function runHandler in local/index.js, identical logic to the exported one in helpers/handlers.ts.
    async function runHandler(processId, handlerName, data) { const messageId = await message({ process: processId, signer, data, tags: [{ name: "Action", value: handlerName }], }); await sleep(100); const outputResult = await result({ message: messageId, process: processId, }); return outputResult; }

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