Skip to main content
Glama

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
NameRequiredDescriptionDefault
codeYes
processIdYes
tagsNo

Implementation Reference

  • 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) }],
        };
      }
    );
  • 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(),
    },
  • 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),
            },
          ],
        };
      }
    );

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