{
  "schemaVersion": "1.0",
  "item": {
    "slug": "coupler-io",
    "name": "Coupler.io",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/nika-is-nika/coupler-io",
    "canonicalUrl": "https://clawhub.ai/nika-is-nika/coupler-io",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/coupler-io",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=coupler-io",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/coupler-io"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/coupler-io",
    "agentPageUrl": "https://openagent3.xyz/skills/coupler-io/agent",
    "manifestUrl": "https://openagent3.xyz/skills/coupler-io/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/coupler-io/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Coupler.io",
        "body": "Read-only data access via Coupler.io's MCP server.\n\nAuthor: Coupler.io Team\nHomepage: coupler.io"
      },
      {
        "title": "Prerequisites",
        "body": "mcporter CLI installed and on PATH\nCoupler.io account with at least one data flow configured to OpenClaw destination"
      },
      {
        "title": "Quick Reference",
        "body": "mcporter call mcp-coupler-io-mcp.list-dataflows\nmcporter call mcp-coupler-io-mcp.get-dataflow dataflowId=<uuid>\nmcporter call mcp-coupler-io-mcp.get-schema executionId=<exec-id>\nmcporter call mcp-coupler-io-mcp.get-data executionId=<exec-id> query=\"SELECT * FROM data LIMIT 10\""
      },
      {
        "title": "Connection Setup",
        "body": "Endpoint verification: This skill connects to auth.coupler.io (OAuth) and mcp.coupler.io (MCP data). These are official Coupler.io endpoints. You can verify them via your Coupler.io account (AI integrations page).\n\nTransport: This MCP uses streamable HTTP, not SSE. If you see \"SSE error\" in output, ignore the misleading label — it's still HTTP."
      },
      {
        "title": "1. Authenticate and add server in one step",
        "body": "Do not use mcporter config add followed by mcporter auth separately — this creates a config entry without auth metadata and causes a 401 loop. Instead, do it all in one command:\n\nmcporter auth --http-url https://mcp.coupler.io/mcp --persist config/mcporter.json\n\nThis auto-detects OAuth, opens the browser for Coupler.io login (PKCE flow), and saves the server definition + tokens on success.\n\nTo re-authenticate or clear stale tokens:\n\nmcporter auth --http-url https://mcp.coupler.io/mcp --persist config/mcporter.json --reset"
      },
      {
        "title": "2. Ensure \"auth\": \"oauth\" is in config",
        "body": "After auth, check config/mcporter.json. mcporter won't use cached tokens unless the entry has \"auth\": \"oauth\". It should look like:\n\n{\n  \"mcpServers\": {\n    \"mcp-coupler-io-mcp\": {\n      \"baseUrl\": \"https://mcp.coupler.io/mcp\",\n      \"auth\": \"oauth\"\n    }\n  }\n}\n\nIf \"auth\": \"oauth\" is missing, add it manually."
      },
      {
        "title": "3. Verify",
        "body": "mcporter list mcp-coupler-io-mcp\n\nShould return 4 tools: get-data, get-schema, list-dataflows, get-dataflow.\n\nNote: The server name is auto-generated as mcp-coupler-io-mcp from the URL. Use this name in all subsequent commands."
      },
      {
        "title": "Token Refresh",
        "body": "mcporter handles token refresh automatically on 401 errors. No manual intervention needed.\n\nIf you need to force a fresh token: mcporter auth mcp-coupler-io-mcp --reset"
      },
      {
        "title": "list-dataflows",
        "body": "List all data flows with OpenClaw destination.\n\nmcporter call mcp-coupler-io-mcp.list-dataflows --output json"
      },
      {
        "title": "get-dataflow",
        "body": "Get flow details including lastSuccessfulExecutionId.\n\nmcporter call mcp-coupler-io-mcp.get-dataflow dataflowId=<uuid> --output json"
      },
      {
        "title": "get-schema",
        "body": "Get column definitions. Column names are in columnName (e.g., col_0, col_1).\n\nmcporter call mcp-coupler-io-mcp.get-schema executionId=<exec-id>"
      },
      {
        "title": "get-data",
        "body": "Run SQL on flow data. Table is always data.\n\nmcporter call mcp-coupler-io-mcp.get-data executionId=<exec-id> query=\"SELECT col_0, col_1 FROM data WHERE col_2 > 100 LIMIT 50\"\n\nAlways sample first (LIMIT 5) to understand structure before larger queries."
      },
      {
        "title": "Typical Workflow",
        "body": "# 1. List flows, find ID\nmcporter call mcp-coupler-io-mcp.list-dataflows --output json\n\n# 2. Get execution ID\nmcporter call mcp-coupler-io-mcp.get-dataflow dataflowId=<id> --output json\n\n# 3. Check schema\nmcporter call mcp-coupler-io-mcp.get-schema executionId=<exec-id>\n\n# 4. Query\nmcporter call mcp-coupler-io-mcp.get-data executionId=<exec-id> query=\"SELECT * FROM data LIMIT 10\""
      },
      {
        "title": "Constraints",
        "body": "Read-only: cannot modify flows, sources, or data\nOnly flows with OpenClaw destination are visible\nTokens expire in 2 hours (mcporter refreshes automatically)"
      }
    ],
    "body": "Coupler.io\n\nRead-only data access via Coupler.io's MCP server.\n\nAuthor: Coupler.io Team Homepage: coupler.io\n\nPrerequisites\nmcporter CLI installed and on PATH\nCoupler.io account with at least one data flow configured to OpenClaw destination\nQuick Reference\nmcporter call mcp-coupler-io-mcp.list-dataflows\nmcporter call mcp-coupler-io-mcp.get-dataflow dataflowId=<uuid>\nmcporter call mcp-coupler-io-mcp.get-schema executionId=<exec-id>\nmcporter call mcp-coupler-io-mcp.get-data executionId=<exec-id> query=\"SELECT * FROM data LIMIT 10\"\n\nConnection Setup\n\nEndpoint verification: This skill connects to auth.coupler.io (OAuth) and mcp.coupler.io (MCP data). These are official Coupler.io endpoints. You can verify them via your Coupler.io account (AI integrations page).\n\nTransport: This MCP uses streamable HTTP, not SSE. If you see \"SSE error\" in output, ignore the misleading label — it's still HTTP.\n\n1. Authenticate and add server in one step\n\nDo not use mcporter config add followed by mcporter auth separately — this creates a config entry without auth metadata and causes a 401 loop. Instead, do it all in one command:\n\nmcporter auth --http-url https://mcp.coupler.io/mcp --persist config/mcporter.json\n\n\nThis auto-detects OAuth, opens the browser for Coupler.io login (PKCE flow), and saves the server definition + tokens on success.\n\nTo re-authenticate or clear stale tokens:\n\nmcporter auth --http-url https://mcp.coupler.io/mcp --persist config/mcporter.json --reset\n\n2. Ensure \"auth\": \"oauth\" is in config\n\nAfter auth, check config/mcporter.json. mcporter won't use cached tokens unless the entry has \"auth\": \"oauth\". It should look like:\n\n{\n  \"mcpServers\": {\n    \"mcp-coupler-io-mcp\": {\n      \"baseUrl\": \"https://mcp.coupler.io/mcp\",\n      \"auth\": \"oauth\"\n    }\n  }\n}\n\n\nIf \"auth\": \"oauth\" is missing, add it manually.\n\n3. Verify\nmcporter list mcp-coupler-io-mcp\n\n\nShould return 4 tools: get-data, get-schema, list-dataflows, get-dataflow.\n\nNote: The server name is auto-generated as mcp-coupler-io-mcp from the URL. Use this name in all subsequent commands.\n\nToken Refresh\n\nmcporter handles token refresh automatically on 401 errors. No manual intervention needed.\n\nIf you need to force a fresh token: mcporter auth mcp-coupler-io-mcp --reset\n\nMCP Tools\nlist-dataflows\n\nList all data flows with OpenClaw destination.\n\nmcporter call mcp-coupler-io-mcp.list-dataflows --output json\n\nget-dataflow\n\nGet flow details including lastSuccessfulExecutionId.\n\nmcporter call mcp-coupler-io-mcp.get-dataflow dataflowId=<uuid> --output json\n\nget-schema\n\nGet column definitions. Column names are in columnName (e.g., col_0, col_1).\n\nmcporter call mcp-coupler-io-mcp.get-schema executionId=<exec-id>\n\nget-data\n\nRun SQL on flow data. Table is always data.\n\nmcporter call mcp-coupler-io-mcp.get-data executionId=<exec-id> query=\"SELECT col_0, col_1 FROM data WHERE col_2 > 100 LIMIT 50\"\n\n\nAlways sample first (LIMIT 5) to understand structure before larger queries.\n\nTypical Workflow\n# 1. List flows, find ID\nmcporter call mcp-coupler-io-mcp.list-dataflows --output json\n\n# 2. Get execution ID\nmcporter call mcp-coupler-io-mcp.get-dataflow dataflowId=<id> --output json\n\n# 3. Check schema\nmcporter call mcp-coupler-io-mcp.get-schema executionId=<exec-id>\n\n# 4. Query\nmcporter call mcp-coupler-io-mcp.get-data executionId=<exec-id> query=\"SELECT * FROM data LIMIT 10\"\n\nConstraints\nRead-only: cannot modify flows, sources, or data\nOnly flows with OpenClaw destination are visible\nTokens expire in 2 hours (mcporter refreshes automatically)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nika-is-nika/coupler-io",
    "publisherUrl": "https://clawhub.ai/nika-is-nika/coupler-io",
    "owner": "nika-is-nika",
    "version": "1.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/coupler-io",
    "downloadUrl": "https://openagent3.xyz/downloads/coupler-io",
    "agentUrl": "https://openagent3.xyz/skills/coupler-io/agent",
    "manifestUrl": "https://openagent3.xyz/skills/coupler-io/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/coupler-io/agent.md"
  }
}