run-lua-in-process
Execute Lua code within a specified process on the Flux MCP server, enabling dynamic script execution and interaction with AO systems without manual coding.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| processId | Yes | ||
| tags | No |
Implementation Reference
- src/lib/runLua.ts:4-29 (handler)Core handler logic for executing Lua code in an AO process by sending an 'Eval' message and retrieving the output.export async function runLuaCode( code: string, processId: string, signer: any, tags?: { name: string; value: string }[] ) { const messageId = await message({ process: processId, signer, data: code, tags: [{ name: "Action", value: "Eval" }, ...(tags || [])], }); await sleep(100); const outputResult = await result({ message: messageId, process: processId, }); if (outputResult.Error) { return JSON.stringify(outputResult.Error); } return JSON.stringify(outputResult.Output.data); }
- src/mcp.ts:169-190 (registration)Registers the 'run-lua-in-process' tool on the MCP server, including input schema and thin wrapper handler.this.server.tool( "run-lua-in-process", "run a lua script in an existing AO process", { code: z.string(), processId: z.string(), tags: z .array( z.object({ name: z.string(), value: z.string(), }) ) .optional(), }, async ({ code, processId, tags }) => { const result = await runLuaCode(code, processId, this.signer, tags); return { content: [{ type: "text", text: cleanOutput(result) }], }; } );
- src/mcp.ts:172-183 (schema)Zod input schema for the tool parameters: code, processId, and optional tags.{ code: z.string(), processId: z.string(), tags: z .array( z.object({ name: z.string(), value: z.string(), }) ) .optional(), },
- src/local/index.js:243-268 (registration)Alternative registration of the 'run-lua-in-process' tool in the local server script.server.tool( "run-lua-in-process", { code: z.string(), processId: z.string(), tags: z .array( z.object({ name: z.string(), value: z.string(), }) ) .optional(), }, async ({ code, processId, tags }) => { const result2 = await runLuaCode(code, processId, tags); return { content: [ { type: "text", text: cleanOutput(result2), }, ], }; } );