Skip to main content
Glama

spawn

Automate code and handler creation, testing, and execution within the Arweave Operating System using natural language, eliminating the need for manual coding.

Input Schema

NameRequiredDescriptionDefault
needsSqliteNo
tagsYes

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "needsSqlite": { "type": "boolean" }, "tags": { "items": { "additionalProperties": false, "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" } }, "required": [ "tags" ], "type": "object" }

Implementation Reference

  • src/mcp.ts:59-84 (registration)
    Full registration of the 'spawn' MCP tool, including inline Zod schema for parameters and the async handler function that spawns an AO process using the imported 'spawn' from @permaweb/aoconnect, selecting module based on 'needsSqlite' flag.
    this.server.tool( "spawn", "spawn a new AO process", { tags: z.array( z.object({ name: z.string(), value: z.string(), }) ), needsSqlite: z.boolean().optional(), }, async ({ tags, needsSqlite }) => { const processId = await spawn({ module: needsSqlite ? "33d-3X8mpv6xYBlVB-eXMrPfH5Kzf6Hiwhcv0UA10sw" : "JArYBF-D8q2OmZ4Mok00sD2Y_6SYEQ7Hjx-6VZ_jl3g", signer: this.signer, scheduler: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA", tags, }); return { content: [{ type: "text", text: processId }], }; } );
  • The core handler logic for the 'spawn' tool: calls the external 'spawn' function with process module (SQLite or standard), signer, scheduler, and tags; returns the processId as text content.
    const processId = await spawn({ module: needsSqlite ? "33d-3X8mpv6xYBlVB-eXMrPfH5Kzf6Hiwhcv0UA10sw" : "JArYBF-D8q2OmZ4Mok00sD2Y_6SYEQ7Hjx-6VZ_jl3g", signer: this.signer, scheduler: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA", tags, }); return { content: [{ type: "text", text: processId }], }; }
  • Zod schema for 'spawn' tool inputs: array of name-value tags and optional boolean for SQLite needs.
    { tags: z.array( z.object({ name: z.string(), value: z.string(), }) ), needsSqlite: z.boolean().optional(), },
  • Duplicate registration of the 'spawn' tool in the local standalone script, identical implementation to the main server.
    server.tool( "spawn", { tags: z.array( z.object({ name: z.string(), value: z.string(), }) ), needsSqlite: z.boolean().optional(), }, async ({ tags, needsSqlite }) => { const processId = await spawn({ module: needsSqlite ? "33d-3X8mpv6xYBlVB-eXMrPfH5Kzf6Hiwhcv0UA10sw" : "JArYBF-D8q2OmZ4Mok00sD2Y_6SYEQ7Hjx-6VZ_jl3g", signer, scheduler: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA", tags, }); return { content: [{ type: "text", text: processId }], }; } );

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