{
  "schemaVersion": "1.0",
  "item": {
    "slug": "pane",
    "name": "Pane",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/darnfish/pane",
    "canonicalUrl": "https://clawhub.ai/darnfish/pane",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/pane",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=pane",
    "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/pane"
    },
    "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/pane",
    "agentPageUrl": "https://openagent3.xyz/skills/pane/agent",
    "manifestUrl": "https://openagent3.xyz/skills/pane/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/pane/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": "Pane MCP",
        "body": "Access a user's linked financial accounts via Pane, a hosted MCP server powered by Plaid. Query bank accounts, transactions, balances, spending summaries, recurring payments, investments, liabilities, and crypto holdings. Write persistent annotations to remember context across conversations."
      },
      {
        "title": "Setup",
        "body": "The user must have a Pane account with linked financial accounts and an API key from pane.money/dashboard/connect.\n\nSet the PANE_API_KEY environment variable (do not paste the key directly into shell commands):\n\n# Add to your shell profile (.zshrc, .bashrc, etc.)\nexport PANE_API_KEY=\"pane_sk_live_...\"\n\nThen configure mcporter:\n\n# Add Pane as an MCP server using the env var\nmcporter config add pane --url https://mcp.pane.money --header \"Authorization: Bearer $PANE_API_KEY\"\n\n# Verify connection\nmcporter list pane --schema"
      },
      {
        "title": "Financial data (read-only)",
        "body": "get_accounts — List linked accounts with balances\n\nmcporter call pane.get_accounts type=all\nmcporter call pane.get_accounts type=checking\n\nget_transactions — Search and filter transactions\n\nmcporter call pane.get_transactions search=Starbucks limit:50\nmcporter call pane.get_transactions category=FOOD_AND_DRINK start_date=2026-01-01 end_date=2026-01-31\nmcporter call pane.get_transactions account_id=<uuid> min_amount:50\n\nParameters: account_id (UUID), start_date/end_date (YYYY-MM-DD), category (Plaid category), search (max 200 chars), min_amount/max_amount, limit (1-500, default 50), offset.\n\nget_balances — Current balances with net worth summary (triggers live Plaid refresh)\n\nmcporter call pane.get_balances type=all\n\nReturns per-account balances plus summary: total_cash, total_credit_debt, total_investments, total_loans, total_crypto, net_worth.\n\nget_spending_summary — Spending grouped by category, merchant, week, or month\n\nmcporter call pane.get_spending_summary period=this_month group_by=category\nmcporter call pane.get_spending_summary period=last_30d group_by=merchant\nmcporter call pane.get_spending_summary start_date=2026-01-01 end_date=2026-01-31 group_by=week\n\nPeriod shortcuts: last_7d, last_30d, this_week, last_week, this_month, last_month, this_year. Use either period OR start_date+end_date, not both.\n\nget_recurring — Subscriptions, bills, and income streams\n\nmcporter call pane.get_recurring type=all\nmcporter call pane.get_recurring type=subscriptions\n\nReturns arrays for subscriptions/bills/income with monthly totals. Frequency conversion: weekly x4.33, biweekly x2.17, monthly x1, annually /12.\n\nget_investments — Investment holdings and portfolio value\n\nmcporter call pane.get_investments\nmcporter call pane.get_investments account_id=<uuid>\n\nCached 15 minutes. Returns holdings with symbol, quantity, currentValue, costBasis.\n\nget_liabilities — Credit, student loan, and mortgage details\n\nmcporter call pane.get_liabilities type=all\nmcporter call pane.get_liabilities type=credit\n\nCached 1 hour. Returns APRs, payment amounts, due dates.\n\nget_crypto — Crypto holdings across exchange accounts and on-chain wallets\n\nmcporter call pane.get_crypto blockchain=all\nmcporter call pane.get_crypto wallet_id=<uuid> blockchain=ethereum\n\nRequires crypto feature enabled. Triggers live wallet refresh."
      },
      {
        "title": "Annotations (read/write)",
        "body": "Annotations are persistent notes attached to transactions, merchants, accounts, or the user's profile. They appear in future tool results automatically.\n\nwrite_annotation — Save a note\n\nmcporter call pane.write_annotation scope=profile content=\"Freelancer, budgets $3k/month for essentials\"\nmcporter call pane.write_annotation scope=merchant target_id=WeWork content=\"Business expense — coworking\"\nmcporter call pane.write_annotation scope=account target_id=<uuid> content=\"Joint account with partner\"\nmcporter call pane.write_annotation scope=transaction target_id=<uuid> content=\"Reimbursable expense\"\n\nScopes: profile (no target_id), merchant (case-insensitive name), account (UUID), transaction (UUID). Max 2,000 chars, max 50 per target.\n\nlist_annotations — List saved annotations\n\nmcporter call pane.list_annotations\nmcporter call pane.list_annotations scope=profile limit:10\n\ndelete_annotation — Delete by ID\n\nmcporter call pane.delete_annotation annotation_id=<uuid>"
      },
      {
        "title": "Resources",
        "body": "mcporter call pane.read_resource uri=pane://profile     # Text summary: accounts, net worth, income, model notes\nmcporter call pane.read_resource uri=pane://accounts    # JSON list of accounts with names and types\nmcporter call pane.read_resource uri=pane://insights    # JSON: net worth breakdown, unusual spending, low balance warnings, upcoming bills\n\nStart with pane://profile for a quick overview, then drill in with tools."
      },
      {
        "title": "Privacy scopes",
        "body": "Each account has a privacy scope set by the user. The server enforces these automatically:\n\nScopeBalancesTransactionsMerchantsfullVisibleVisibleVisiblebalances_and_redactedVisibleVisible\"Redacted\"balances_onlyVisibleHiddenHiddenhiddenHiddenHiddenHidden\n\nIf transactions return empty for an account that exists, it's privacy-scoped — not missing data."
      },
      {
        "title": "Rate limits",
        "body": "30 requests/minute, 1,000/day per user. Prefer get_spending_summary over iterating get_transactions. Read resources first to plan tool calls."
      },
      {
        "title": "Common patterns",
        "body": "Net worth: get_balances type=all — check summary.net_worth\n\nMonthly spending: get_spending_summary period=this_month group_by=category then group_by=merchant for detail\n\nSubscription audit: get_recurring type=subscriptions — check total_monthly_subscriptions\n\nTransaction search: get_transactions search=\"merchant name\" or category=FOOD_AND_DRINK min_amount:50\n\nPlaid categories: FOOD_AND_DRINK, TRANSPORTATION, ENTERTAINMENT, RENT_AND_UTILITIES, GENERAL_MERCHANDISE, PERSONAL_CARE, TRAVEL, MEDICAL, EDUCATION, INCOME, TRANSFER_IN, TRANSFER_OUT, LOAN_PAYMENTS, BANK_FEES"
      },
      {
        "title": "Notes",
        "body": "Amounts: positive = debits (spending), negative = credits (income)\nDates: YYYY-MM-DD format, UTC\nPagination: limit + offset on get_transactions and list_annotations\nErrors return isError: true — common: rate limit (wait + retry), subscription inactive (402), crypto not enabled\nAnnotations are persistent and server-side — never store passwords, full account numbers, or secrets in annotation content\nPrefer --output json for machine-readable results"
      }
    ],
    "body": "Pane MCP\n\nAccess a user's linked financial accounts via Pane, a hosted MCP server powered by Plaid. Query bank accounts, transactions, balances, spending summaries, recurring payments, investments, liabilities, and crypto holdings. Write persistent annotations to remember context across conversations.\n\nSetup\n\nThe user must have a Pane account with linked financial accounts and an API key from pane.money/dashboard/connect.\n\nSet the PANE_API_KEY environment variable (do not paste the key directly into shell commands):\n\n# Add to your shell profile (.zshrc, .bashrc, etc.)\nexport PANE_API_KEY=\"pane_sk_live_...\"\n\n\nThen configure mcporter:\n\n# Add Pane as an MCP server using the env var\nmcporter config add pane --url https://mcp.pane.money --header \"Authorization: Bearer $PANE_API_KEY\"\n\n# Verify connection\nmcporter list pane --schema\n\nTools\nFinancial data (read-only)\n\nget_accounts — List linked accounts with balances\n\nmcporter call pane.get_accounts type=all\nmcporter call pane.get_accounts type=checking\n\n\nget_transactions — Search and filter transactions\n\nmcporter call pane.get_transactions search=Starbucks limit:50\nmcporter call pane.get_transactions category=FOOD_AND_DRINK start_date=2026-01-01 end_date=2026-01-31\nmcporter call pane.get_transactions account_id=<uuid> min_amount:50\n\n\nParameters: account_id (UUID), start_date/end_date (YYYY-MM-DD), category (Plaid category), search (max 200 chars), min_amount/max_amount, limit (1-500, default 50), offset.\n\nget_balances — Current balances with net worth summary (triggers live Plaid refresh)\n\nmcporter call pane.get_balances type=all\n\n\nReturns per-account balances plus summary: total_cash, total_credit_debt, total_investments, total_loans, total_crypto, net_worth.\n\nget_spending_summary — Spending grouped by category, merchant, week, or month\n\nmcporter call pane.get_spending_summary period=this_month group_by=category\nmcporter call pane.get_spending_summary period=last_30d group_by=merchant\nmcporter call pane.get_spending_summary start_date=2026-01-01 end_date=2026-01-31 group_by=week\n\n\nPeriod shortcuts: last_7d, last_30d, this_week, last_week, this_month, last_month, this_year. Use either period OR start_date+end_date, not both.\n\nget_recurring — Subscriptions, bills, and income streams\n\nmcporter call pane.get_recurring type=all\nmcporter call pane.get_recurring type=subscriptions\n\n\nReturns arrays for subscriptions/bills/income with monthly totals. Frequency conversion: weekly x4.33, biweekly x2.17, monthly x1, annually /12.\n\nget_investments — Investment holdings and portfolio value\n\nmcporter call pane.get_investments\nmcporter call pane.get_investments account_id=<uuid>\n\n\nCached 15 minutes. Returns holdings with symbol, quantity, currentValue, costBasis.\n\nget_liabilities — Credit, student loan, and mortgage details\n\nmcporter call pane.get_liabilities type=all\nmcporter call pane.get_liabilities type=credit\n\n\nCached 1 hour. Returns APRs, payment amounts, due dates.\n\nget_crypto — Crypto holdings across exchange accounts and on-chain wallets\n\nmcporter call pane.get_crypto blockchain=all\nmcporter call pane.get_crypto wallet_id=<uuid> blockchain=ethereum\n\n\nRequires crypto feature enabled. Triggers live wallet refresh.\n\nAnnotations (read/write)\n\nAnnotations are persistent notes attached to transactions, merchants, accounts, or the user's profile. They appear in future tool results automatically.\n\nwrite_annotation — Save a note\n\nmcporter call pane.write_annotation scope=profile content=\"Freelancer, budgets $3k/month for essentials\"\nmcporter call pane.write_annotation scope=merchant target_id=WeWork content=\"Business expense — coworking\"\nmcporter call pane.write_annotation scope=account target_id=<uuid> content=\"Joint account with partner\"\nmcporter call pane.write_annotation scope=transaction target_id=<uuid> content=\"Reimbursable expense\"\n\n\nScopes: profile (no target_id), merchant (case-insensitive name), account (UUID), transaction (UUID). Max 2,000 chars, max 50 per target.\n\nlist_annotations — List saved annotations\n\nmcporter call pane.list_annotations\nmcporter call pane.list_annotations scope=profile limit:10\n\n\ndelete_annotation — Delete by ID\n\nmcporter call pane.delete_annotation annotation_id=<uuid>\n\nResources\nmcporter call pane.read_resource uri=pane://profile     # Text summary: accounts, net worth, income, model notes\nmcporter call pane.read_resource uri=pane://accounts    # JSON list of accounts with names and types\nmcporter call pane.read_resource uri=pane://insights    # JSON: net worth breakdown, unusual spending, low balance warnings, upcoming bills\n\n\nStart with pane://profile for a quick overview, then drill in with tools.\n\nPrivacy scopes\n\nEach account has a privacy scope set by the user. The server enforces these automatically:\n\nScope\tBalances\tTransactions\tMerchants\nfull\tVisible\tVisible\tVisible\nbalances_and_redacted\tVisible\tVisible\t\"Redacted\"\nbalances_only\tVisible\tHidden\tHidden\nhidden\tHidden\tHidden\tHidden\n\nIf transactions return empty for an account that exists, it's privacy-scoped — not missing data.\n\nRate limits\n\n30 requests/minute, 1,000/day per user. Prefer get_spending_summary over iterating get_transactions. Read resources first to plan tool calls.\n\nCommon patterns\n\nNet worth: get_balances type=all — check summary.net_worth\n\nMonthly spending: get_spending_summary period=this_month group_by=category then group_by=merchant for detail\n\nSubscription audit: get_recurring type=subscriptions — check total_monthly_subscriptions\n\nTransaction search: get_transactions search=\"merchant name\" or category=FOOD_AND_DRINK min_amount:50\n\nPlaid categories: FOOD_AND_DRINK, TRANSPORTATION, ENTERTAINMENT, RENT_AND_UTILITIES, GENERAL_MERCHANDISE, PERSONAL_CARE, TRAVEL, MEDICAL, EDUCATION, INCOME, TRANSFER_IN, TRANSFER_OUT, LOAN_PAYMENTS, BANK_FEES\n\nNotes\nAmounts: positive = debits (spending), negative = credits (income)\nDates: YYYY-MM-DD format, UTC\nPagination: limit + offset on get_transactions and list_annotations\nErrors return isError: true — common: rate limit (wait + retry), subscription inactive (402), crypto not enabled\nAnnotations are persistent and server-side — never store passwords, full account numbers, or secrets in annotation content\nPrefer --output json for machine-readable results"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/darnfish/pane",
    "publisherUrl": "https://clawhub.ai/darnfish/pane",
    "owner": "darnfish",
    "version": "1.0.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/pane",
    "downloadUrl": "https://openagent3.xyz/downloads/pane",
    "agentUrl": "https://openagent3.xyz/skills/pane/agent",
    "manifestUrl": "https://openagent3.xyz/skills/pane/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/pane/agent.md"
  }
}