Skip to main content
Glama

w3_space_info

Retrieve information about a specific or current storage space on the MCP-IPFS server. Verify login status and specify a space DID to access detailed space metadata in JSON format.

Instructions

Tool for w3_space_info operation. NOTE: no current space and no space given or {"spaces":[]} first make sure you are logged in before using other tools.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jsonNoFormat output as newline delimited JSON (default: true).
spaceDidNoOptional DID of the space to get info for (defaults to current space).

Implementation Reference

  • The main handler function for the 'w3_space_info' tool. It validates input arguments using the schema, constructs the appropriate 'w3 space info' CLI command based on optional spaceDid and json flags, executes it via runW3Command, parses the output (handling both NDJSON and single JSON), and returns a structured MCP response.
    const handleW3SpaceInfo: ToolHandler = async (args) => { const parsed = Schemas.W3SpaceInfoArgsSchema.safeParse(args); if (!parsed.success) throw new Error( `Invalid arguments for w3_space_info: ${parsed.error.message}` ); const { spaceDid, json } = parsed.data; let command = "space info"; if (spaceDid) command += ` --space ${spaceDid}`; if (json) command += " --json"; const { stdout } = await runW3Command(command); if (json) { try { const info = parseNdJson(stdout); return { content: [ { type: "text", text: JSON.stringify({ spaceInfo: info.length > 0 ? info[0] : {} }), }, ], }; } catch (e) { try { const singleInfo = JSON.parse(stdout); return { content: [ { type: "text", text: JSON.stringify({ spaceInfo: singleInfo }) }, ], }; } catch (e2) { logger.warn( `w3_space_info: Failed to parse output as NDJSON or JSON: ${stdout}` ); throw new Error( `Failed to parse JSON output for w3_space_info. Raw output: ${stdout}` ); } } } else { return { content: [ { type: "text", text: JSON.stringify({ output: stdout.trim() }) }, ], }; } };
  • Zod schema defining the input parameters for the w3_space_info tool: optional spaceDid (must start with 'did:key:') and optional json boolean (defaults to true). This schema is used for validation in the handler.
    export const W3SpaceInfoArgsSchema = z.object({ spaceDid: z .string() .startsWith("did:key:") .optional() .describe( "Optional DID of the space to get info for (defaults to current space)." ), json: z .boolean() .optional() .default(true) .describe("Format output as newline delimited JSON (default: true)."), });
  • The toolHandlers map registers 'w3_space_info' (line 953) with its handler function handleW3SpaceInfo. This map is imported and used in src/index.ts to route CallTool requests to the appropriate handler.
    export const toolHandlers: Record<string, ToolHandler> = { w3_login: handleW3Login, w3_space_ls: handleW3SpaceLs, w3_space_use: handleW3SpaceUse, w3_space_create: handleW3SpaceCreate, w3_up: handleW3Up, w3_ls: handleW3Ls, w3_rm: handleW3Rm, w3_open: handleW3Open, w3_space_info: handleW3SpaceInfo, w3_space_add: handleW3SpaceAdd, w3_delegation_create: handleW3DelegationCreate, w3_delegation_ls: handleW3DelegationLs, w3_delegation_revoke: handleW3DelegationRevoke, w3_proof_add: handleW3ProofAdd, w3_proof_ls: handleW3ProofLs, w3_key_create: handleW3KeyCreate, w3_bridge_generate_tokens: handleW3BridgeGenerateTokens, w3_can_blob_add: handleW3CanBlobAdd, w3_can_blob_ls: handleW3CanBlobLs, w3_can_blob_rm: handleW3CanBlobRm, w3_can_index_add: handleW3CanIndexAdd, w3_can_upload_add: handleW3CanUploadAdd, w3_can_upload_ls: handleW3CanUploadLs, w3_can_upload_rm: handleW3CanUploadRm, w3_plan_get: handleW3PlanGet, w3_account_ls: handleW3AccountLs, w3_space_provision: handleW3SpaceProvision, w3_coupon_create: handleW3CouponCreate, w3_usage_report: handleW3UsageReport, w3_can_access_claim: handleW3CanAccessClaim, w3_can_store_add: handleW3CanStoreAdd, w3_can_store_ls: handleW3CanStoreLs, w3_can_store_rm: handleW3CanStoreRm, w3_can_filecoin_info: handleW3CanFilecoinInfo, w3_reset: handleW3Reset, };
  • src/index.ts:94-125 (registration)
    The MCP server's CallTool request handler in index.ts that looks up the tool name in the imported toolHandlers map and invokes the corresponding handler function.
    server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; logger.info(`Handling CallTool request for: ${name}`); const handler = toolHandlers[name]; if (!handler) { logger.error(`Unknown tool requested: ${name}`); return { content: [ { type: "text", text: JSON.stringify({ error: `Unknown tool: ${name}` }), }, ], isError: true, }; } try { const result = await handler(args); return result; } catch (error: any) { logger.error(`Error handling tool '${name}':`, error); return { content: [ { type: "text", text: JSON.stringify({ error: error.message }) }, ], isError: true, }; } });

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/alexbakers/mcp-ipfs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server