Pane MCP
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.
Setup
The user must have a Pane account with linked financial accounts and an API key from pane.money/dashboard/connect.
Set the PANE_API_KEY environment variable (do not paste the key directly into shell commands):
CODEBLOCK0
Then configure mcporter:
CODEBLOCK1
Tools
Financial data (read-only)
get_accounts — List linked accounts with balances
CODEBLOCK2
get_transactions — Search and filter transactions
CODEBLOCK3
Parameters: 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.
get_balances — Current balances with net worth summary (triggers live Plaid refresh)
CODEBLOCK4
Returns per-account balances plus summary: total_cash, total_credit_debt, total_investments, total_loans, total_crypto, net_worth.
getspendingsummary — Spending grouped by category, merchant, week, or month
CODEBLOCK5
Period 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.
get_recurring — Subscriptions, bills, and income streams
CODEBLOCK6
Returns arrays for subscriptions/bills/income with monthly totals. Frequency conversion: weekly x4.33, biweekly x2.17, monthly x1, annually /12.
get_investments — Investment holdings and portfolio value
CODEBLOCK7
Cached 15 minutes. Returns holdings with symbol, quantity, currentValue, costBasis.
get_liabilities — Credit, student loan, and mortgage details
CODEBLOCK8
Cached 1 hour. Returns APRs, payment amounts, due dates.
get_crypto — Crypto holdings across exchange accounts and on-chain wallets
CODEBLOCK9
Requires crypto feature enabled. Triggers live wallet refresh.
Annotations (read/write)
Annotations are persistent notes attached to transactions, merchants, accounts, or the user's profile. They appear in future tool results automatically.
write_annotation — Save a note
CODEBLOCK10
Scopes: profile (no target_id), merchant (case-insensitive name), account (UUID), transaction (UUID). Max 2,000 chars, max 50 per target.
list_annotations — List saved annotations
CODEBLOCK11
delete_annotation — Delete by ID
CODEBLOCK12
Resources
CODEBLOCK13
Start with pane://profile for a quick overview, then drill in with tools.
Privacy scopes
Each account has a privacy scope set by the user. The server enforces these automatically:
| Scope | Balances | Transactions | Merchants |
|---|
| INLINECODE31 | Visible | Visible | Visible |
| INLINECODE32 |
Visible | Visible | "Redacted" |
|
balances_only | Visible | Hidden | Hidden |
|
hidden | Hidden | Hidden | Hidden |
If transactions return empty for an account that exists, it's privacy-scoped — not missing data.
Rate limits
30 requests/minute, 1,000/day per user. Prefer get_spending_summary over iterating get_transactions. Read resources first to plan tool calls.
Common patterns
Net worth: get_balances type=all — check INLINECODE38
Monthly spending: get_spending_summary period=this_month group_by=category then group_by=merchant for detail
Subscription audit: get_recurring type=subscriptions — check INLINECODE42
Transaction search: get_transactions search="merchant name" or INLINECODE44
Plaid categories: FOOD_AND_DRINK, TRANSPORTATION, ENTERTAINMENT, RENT_AND_UTILITIES, GENERAL_MERCHANDISE, PERSONAL_CARE, TRAVEL, MEDICAL, EDUCATION, INCOME, TRANSFER_IN, TRANSFER_OUT, LOAN_PAYMENTS, INLINECODE58
Notes
- - Amounts: positive = debits (spending), negative = credits (income)
- Dates:
YYYY-MM-DD format, UTC - Pagination:
limit + offset on get_transactions and INLINECODE63 - Errors return
isError: true — common: rate limit (wait + retry), subscription inactive (402), crypto not enabled - Annotations are persistent and server-side — never store passwords, full account numbers, or secrets in annotation content
- Prefer
--output json for machine-readable results
Pane MCP
通过Pane(一个由Plaid提供支持的托管MCP服务器)访问用户的关联金融账户。查询银行账户、交易记录、余额、支出摘要、定期付款、投资、负债和加密货币持仓。编写持久化注释以在对话间保留上下文。
设置
用户必须拥有一个已关联金融账户的Pane账户,并从pane.money/dashboard/connect获取API密钥。
设置PANEAPIKEY环境变量(请勿将密钥直接粘贴到shell命令中):
bash
添加到你的shell配置文件(.zshrc, .bashrc等)
export PANE
APIKEY=pane
sklive_...
然后配置mcporter:
bash
使用环境变量将Pane添加为MCP服务器
mcporter config add pane --url https://mcp.pane.money --header Authorization: Bearer $PANE
APIKEY
验证连接
mcporter list pane --schema
工具
金融数据(只读)
get_accounts — 列出已关联账户及其余额
bash
mcporter call pane.get_accounts type=all
mcporter call pane.get_accounts type=checking
get_transactions — 搜索和筛选交易记录
bash
mcporter call pane.get_transactions search=Starbucks limit:50
mcporter call pane.gettransactions category=FOODANDDRINK startdate=2026-01-01 end_date=2026-01-31
mcporter call pane.gettransactions accountid= min_amount:50
参数:accountid(UUID),startdate/enddate(YYYY-MM-DD格式),category(Plaid类别),search(最多200个字符),minamount/max_amount,limit(1-500,默认50),offset。
get_balances — 当前余额及净资产摘要(触发实时Plaid刷新)
bash
mcporter call pane.get_balances type=all
返回每个账户的余额及摘要:totalcash(总现金)、totalcreditdebt(总信用卡债务)、totalinvestments(总投资)、totalloans(总贷款)、totalcrypto(总加密货币)、net_worth(净资产)。
getspendingsummary — 按类别、商户、周或月分组的支出摘要
bash
mcporter call pane.getspendingsummary period=thismonth groupby=category
mcporter call pane.getspendingsummary period=last30d groupby=merchant
mcporter call pane.getspendingsummary startdate=2026-01-01 enddate=2026-01-31 group_by=week
时间段快捷方式:last7d、last30d、thisweek、lastweek、thismonth、lastmonth、thisyear。使用period或startdate+end_date,不可同时使用。
get_recurring — 订阅、账单和收入来源
bash
mcporter call pane.get_recurring type=all
mcporter call pane.get_recurring type=subscriptions
返回订阅/账单/收入的数组及月度总计。频率转换:每周x4.33,每两周x2.17,每月x1,每年/12。
get_investments — 投资持仓和投资组合价值
bash
mcporter call pane.get_investments
mcporter call pane.getinvestments accountid=
缓存15分钟。返回持仓信息,包括代码、数量、当前价值、成本基础。
get_liabilities — 信用卡、学生贷款和抵押贷款详情
bash
mcporter call pane.get_liabilities type=all
mcporter call pane.get_liabilities type=credit
缓存1小时。返回年利率、还款金额、到期日。
get_crypto — 交易所账户和链上钱包中的加密货币持仓
bash
mcporter call pane.get_crypto blockchain=all
mcporter call pane.getcrypto walletid= blockchain=ethereum
需要启用加密货币功能。触发实时钱包刷新。
注释(读写)
注释是附加到交易、商户、账户或用户资料的持久化笔记。它们会自动出现在未来的工具结果中。
write_annotation — 保存笔记
bash
mcporter call pane.write_annotation scope=profile content=自由职业者,每月预算3000美元用于必需品
mcporter call pane.writeannotation scope=merchant targetid=WeWork content=商务费用——共享办公
mcporter call pane.writeannotation scope=account targetid= content=与伴侣的联名账户
mcporter call pane.writeannotation scope=transaction targetid= content=可报销费用
作用域:profile(无需target_id)、merchant(不区分大小写的名称)、account(UUID)、transaction(UUID)。最多2,000个字符,每个目标最多50条。
list_annotations — 列出已保存的注释
bash
mcporter call pane.list_annotations
mcporter call pane.list_annotations scope=profile limit:10
delete_annotation — 按ID删除
bash
mcporter call pane.deleteannotation annotationid=
资源
bash
mcporter call pane.read_resource uri=pane://profile # 文本摘要:账户、净资产、收入、模型备注
mcporter call pane.read_resource uri=pane://accounts # 包含账户名称和类型的JSON列表
mcporter call pane.read_resource uri=pane://insights # JSON:净资产细分、异常支出、低余额警告、即将到来的账单
从pane://profile开始快速概览,然后使用工具深入查询。
隐私范围
每个账户都有用户设置的隐私范围。服务器会自动强制执行这些设置:
| 范围 | 余额 | 交易 | 商户 |
|---|
| full(完全) | 可见 | 可见 | 可见 |
| balancesandredacted(余额和脱敏) |
可见 | 可见 | 已脱敏 |
| balances_only(仅余额) | 可见 | 隐藏 | 隐藏 |
| hidden(隐藏) | 隐藏 | 隐藏 | 隐藏 |
如果某个存在的账户返回空交易记录,说明是隐私范围限制——并非数据缺失。
速率限制
每个用户每分钟30次请求,每天1,000次。优先使用getspendingsummary而非迭代get_transactions。先读取资源以规划工具调用。
常见模式
净资产:getbalances type=all — 查看summary.networth
月度支出:getspendingsummary period=thismonth groupby=category,然后使用group_by=merchant查看详情
订阅审计:getrecurring type=subscriptions — 查看totalmonthly_subscriptions
交易搜索:gettransactions search=商户名称 或 category=FOODANDDRINK minamount:50
Plaid类别:FOODANDDRINK(餐饮)、TRANSPORTATION(交通)、ENTERTAINMENT(娱乐)、RENTANDUTILITIES(租金和水电)、GENERALMERCHANDISE(一般商品)、PERSONALCARE(个人护理)、TRAVEL(旅行)、MEDICAL(医疗)、EDUCATION(教育)、INCOME(收入)、TRANSFERIN(转入)、TRANSFEROUT(转出)、LOANPAYMENTS(贷款还款)、BANKFEES(银行费用)
注意事项
- - 金额:正数=支出(借记),负数=收入(贷记)
- 日期:YYYY-MM-DD格式,UTC时间
- 分页:gettransactions和listannotations使用limit+offset
- 错误返回isError: true — 常见情况:速率限制(等待后重试)、订阅未激活(402)、加密货币未启用
- 注释是持久化的且存储在服务器端——切勿在注释内容中存储密码、完整账号或机密信息
- 对于机器可读的结果,优先使用--output json