Skip to main content
Glama

list-available-handlers

Retrieve all available AO system handlers for a specific process using Flux MCP server. Simplify handler management and integration without manual coding.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
processIdYes

Implementation Reference

  • src/mcp.ts:233-242 (registration)
    Registration of the 'list-available-handlers' MCP tool, including schema (processId: string), description, and thin handler wrapper that invokes the listHandlers helper and formats the output.
    this.server.tool(
      "list-available-handlers",
      "list all available handlers in an existing AO process",
      { processId: z.string() },
      async ({ processId }) => {
        const handlers = await listHandlers(processId, this.signer);
        return {
          content: [{ type: "text", text: cleanOutput(handlers) }],
        };
      }
  • The core handler logic that lists available handlers in an AO process by sending a Lua evaluation message to inspect and serialize the Handlers.list array.
    export async function listHandlers(processId: string, signer: any) {
      const messageId = await message({
        process: processId,
        signer,
        data: `
            local handlers = Handlers.list
            local result = {}
            for i, handler in ipairs(handlers) do
              table.insert(result, {
                name = handler.name,
                type = type(handler.pattern),
              })
            end
            return result
          `,
        tags: [{ name: "Action", value: "Eval" }],
      });
      const outputResult = await result({
        message: messageId,
        process: processId,
      });
      if (outputResult.Error) {
        return outputResult.Error;
      }
      return outputResult.Output.data;
    }
  • Alternative registration of the 'list-available-handlers' tool in the local stdio server script, using the inline listHandlers function.
      "list-available-handlers",
      { processId: z.string() },
      async ({ processId }) => {
        const handlers = await listHandlers(processId);
        return {
          content: [{ type: "text", text: cleanOutput(handlers) }],
        };
      }
    );
  • Inline helper function implementing the handler listing logic in the local index.js script, identical to the one in helpers/handlers.ts except using global signer.
    async function listHandlers(processId) {
      const messageId = await message({
        process: processId,
        signer,
        data: `
          local handlers = Handlers.list
          local result = {}
          for i, handler in ipairs(handlers) do
            table.insert(result, {
              name = handler.name,
              type = type(handler.pattern),
            })
          end
          return result
        `,
        tags: [{ name: "Action", value: "Eval" }],
      });
      const outputResult = await result({
        message: messageId,
        process: processId,
      });
      if (outputResult.Error) {
        return outputResult.Error;
      }
      return outputResult.Output.data;
    }

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