json_to_excel_mcp_from_url
Convert JSON data from public URLs to CSV format for analysis and reporting. Supports nested JSON with configurable formatting options.
Instructions
Convert JSON data from publicly accessible URL(.json format) to CSV data. If you do not have a Pro Code, please pass only the url parameter, and do not pass the options parameter.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible URL of the JSON file | |
| options | No | If you do not have a Pro Code, please do not pass the options parameter in the request. |
Implementation Reference
- src/index.ts:28-40 (handler)MCP tool handler that processes the URL using processURLJ2E helper, handles errors, and returns JSON stringified result as text content.async ({ url, options }) => { if (options && !options.proCode) { options.proCode = process.env.proCode || '' } let result = await processURLJ2E(url, options) if (result.isError) { result['data'] = '' result['msg'] = result['msg'] + ' ||| Refer to Documentation at ' + URLs.mcpJ2E } else { result['msg'] = 'success' } return { content: [{ type: "text", text: JSON.stringify(result) }] }; }
- src/index.ts:18-26 (schema)Zod-based input schema for the tool, defining required 'url' and optional 'options' object with formatting parameters and proCode.inputSchema: { url: z.string().nonempty().describe("Publicly accessible URL of the JSON file"), options: z.object({ jsonMode: z.enum(['nested', 'flat']).optional().describe("Format mode for JSON output: “nested”, or “flat”"), delimiter: z.enum(['.', '_', '__', '/']).optional().describe("Delimiter character for nested JSON keys when using jsonMode: “nested”, acceptable delimiters are “.”, “_”, “__”, “/”."), maxDepth: z.enum(['unlimited', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20']).optional().describe("Maximum depth for nested JSON objects when using jsonMode: “nested”. For maxDepth, “unlimited”, “1” ~ “20” acceptable."), proCode: z.string().optional().describe("Pro Code for JSON to Excel MCP by WTSolutions. If you do not have a Pro Code, please do not pass this parameter."), }).optional().describe("If you do not have a Pro Code, please do not pass the options parameter in the request."), }
- src/index.ts:13-41 (registration)Full registration of the 'json_to_excel_mcp_from_url' tool with McpServer, including name, metadata/schema, and handler function.server.registerTool( "json_to_excel_mcp_from_url", { title: "JSON to Excel MCP by WTSolutions - from url", description: "Convert JSON data from publicly accessible URL(.json format) to CSV data. If you do not have a Pro Code, please pass only the url parameter, and do not pass the options parameter.", inputSchema: { url: z.string().nonempty().describe("Publicly accessible URL of the JSON file"), options: z.object({ jsonMode: z.enum(['nested', 'flat']).optional().describe("Format mode for JSON output: “nested”, or “flat”"), delimiter: z.enum(['.', '_', '__', '/']).optional().describe("Delimiter character for nested JSON keys when using jsonMode: “nested”, acceptable delimiters are “.”, “_”, “__”, “/”."), maxDepth: z.enum(['unlimited', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20']).optional().describe("Maximum depth for nested JSON objects when using jsonMode: “nested”. For maxDepth, “unlimited”, “1” ~ “20” acceptable."), proCode: z.string().optional().describe("Pro Code for JSON to Excel MCP by WTSolutions. If you do not have a Pro Code, please do not pass this parameter."), }).optional().describe("If you do not have a Pro Code, please do not pass the options parameter in the request."), } }, async ({ url, options }) => { if (options && !options.proCode) { options.proCode = process.env.proCode || '' } let result = await processURLJ2E(url, options) if (result.isError) { result['data'] = '' result['msg'] = result['msg'] + ' ||| Refer to Documentation at ' + URLs.mcpJ2E } else { result['msg'] = 'success' } return { content: [{ type: "text", text: JSON.stringify(result) }] }; } );