Format Conversion
将 REST/GraphQL 返回的 JSON 自动分页并映射写入 Excel Sheet
用三种语言从你的代码中调用此工具。
curl -X POST 'https://api.elysiatools.com/zh/api/tools/xlsx-api-to-sheet' \
-H 'Content-Type: application/json' \
-d '{"sourceType":"rest","url":"https://elysiatools.com/zh/api/tools","method":"GET","headers":"{\"Authorization\":\"Bearer xxx\"}","queryParams":"{\"status\":\"active\"}","body":"{\"filters\":{\"status\":\"active\"}}","graphqlQuery":"query($page:Int,$limit:Int){ items(page:$page,limit:$limit){ id name } }","graphqlVariables":"{\"status\":\"active\"}","dataPath":"tools","paginationType":"none","maxPages":50,"pageParam":"page","pageStart":1,"pageSizeParam":"limit","pageSize":100,"offsetParam":"offset","offsetStart":0,"cursorParam":"cursor","cursorStart":"","hasMorePath":"data.pageInfo.hasNextPage","nextCursorPath":"pageInfo.endCursor","totalPagesPath":"meta.totalPages","fieldMapping":"{\n \"id\": \"id\",\n \"name\": \"name\",\n \"category\": \"category\",\n \"result_type\": \"resultType\",\n \"featured\": \"featured\",\n \"last_updated\": \"lastUpdated\"\n}","sheetName":"Tools API","outputFileName":"api-export"}'以 JSON 形式 POST 提交输入参数。文件类型参数需先单独上传。
POST https://api.elysiatools.com/zh/api/tools/xlsx-api-to-sheet| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sourceType | select | 否 | — |
| url | text | 是 | — |
| method | select | 否 | — |
| headers | textarea | 否 | — |
| queryParams | textarea | 否 | — |
| body | textarea | 否 | — |
| graphqlQuery | textarea | 否 | — |
| graphqlVariables | textarea | 否 | — |
| dataPath | text | 否 | — |
| paginationType | select | 否 | — |
| maxPages | number | 否 | — |
| pageParam | text | 否 | — |
| pageStart | number | 否 | — |
| pageSizeParam | text | 否 | — |
| pageSize | number | 否 | — |
| offsetParam | text | 否 | — |
| offsetStart | number | 否 | — |
| cursorParam | text | 否 | — |
| cursorStart | text | 否 | — |
| hasMorePath | text | 否 | — |
| nextCursorPath | text | 否 | — |
| totalPagesPath | text | 否 | — |
| fieldMapping | textarea | 否 | — |
| sheetName | text | 否 | — |
| outputFileName | text | 否 | — |
文件结果
{
"filePath": "/public/processing/randomid.ext",
"fileName": "output.ext",
"contentType": "application/octet-stream",
"size": 1024,
"metadata": {
"key": "value"
},
"error": "Error message (optional)",
"message": "Notification message (optional)"
}将此工具加入你的 Model Context Protocol 服务,让 AI 智能体可以列出并调用它。
将以下内容加入你的 MCP 客户端配置:
{
"mcpServers": {
"elysiatools-xlsx-api-to-sheet": {
"name": "xlsx-api-to-sheet",
"description": "将 REST/GraphQL 返回的 JSON 自动分页并映射写入 Excel Sheet",
"baseUrl": "https://api.elysiatools.com/mcp/sse?toolId=xlsx-api-to-sheet",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}连接到 SSE 端点后,列出已开放的工具:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}通过工具 id 调用,参数由其参数表构建:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "xlsx-api-to-sheet",
"arguments": {
"sourceType": "rest",
"url": "https://elysiatools.com/zh/api/tools",
"method": "GET",
"headers": "{\"Authorization\":\"Bearer xxx\"}",
"queryParams": "{\"status\":\"active\"}",
"body": "{\"filters\":{\"status\":\"active\"}}",
"graphqlQuery": "query($page:Int,$limit:Int){ items(page:$page,limit:$limit){ id name } }",
"graphqlVariables": "{\"status\":\"active\"}",
"dataPath": "tools",
"paginationType": "none",
"maxPages": 50,
"pageParam": "page",
"pageStart": 1,
"pageSizeParam": "limit",
"pageSize": 100,
"offsetParam": "offset",
"offsetStart": 0,
"cursorParam": "cursor",
"cursorStart": "",
"hasMorePath": "data.pageInfo.hasNextPage",
"nextCursorPath": "pageInfo.endCursor",
"totalPagesPath": "meta.totalPages",
"fieldMapping": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"category\": \"category\",\n \"result_type\": \"resultType\",\n \"featured\": \"featured\",\n \"last_updated\": \"lastUpdated\"\n}",
"sheetName": "Tools API",
"outputFileName": "api-export"
}
}
}有问题或反馈?请联系 [email protected]