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
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"processId": {
"type": "string"
}
},
"required": [
"processId"
],
"type": "object"
}
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) }], }; }
- src/helpers/handlers.ts:4-29 (handler)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; }
- src/local/index.js:307-315 (registration)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) }], }; } );
- src/local/index.js:187-212 (helper)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; }