Skip to main content
Glama
brunopedrazza

pluggy-mcp-server

pluggy-mcp-server

読み取り専用のMCPサーバーで、あなたの個人財務データ(ブラジルのOpen Finance、Pluggy経由)を任意のMCPクライアント(Claude Code、Cursor、Cline、Zed)に公開します。

有料の「銀行×MCP」サービスのセルフホスト代替です。Meu Pluggyは、API経由で自分のデータにアクセスする個人にとって無料で有効期限なしです。

送金機能はありません。 PIX、振込、支払いは一切ありません。PluggyのPaymentsClientはインポートされず、誰かがインポートするとテストが失敗します。

ツール

ツール

説明

list_connections

接続、ステータス、各プロダクトのデータ鮮度

list_accounts

当座、普通、クレジットカード口座と残高

list_transactions

TSV形式の明細: 起票日、購入日、分割回数、各行が載った請求書

search_transactions

テキスト、金額範囲、カテゴリで全口座を横断検索

list_credit_card_bills

請求書: 支払期日、締め日、合計、支払い、金融手数料

list_investments

現在のポートフォリオポジション(各通貨単位)

list_investment_transactions

入出金(リターン計算用)

list_loans

ローンと融資: 残高、金利、分割回数

refresh_connection

Pluggyの同期をトリガー(非ブロッキング)

金額は正規化され、負の値は常に口座からの支出を意味します(銀行口座とクレジットカードの両方で)。Pluggyの生データはこの2つで食い違うため、単純に合算するとカード支出が銀行支出を相殺してしまいます。また、常に口座の通貨で表示されます。Pluggyは海外購入を加盟店通貨で報告するため、換算後の値を使用し、元の値はvalor_origに保持して照合できるようにしています。

すべての口座がレアルであるとは限りません。list_accountslist_investmentslist_investment_transactionsにはすべてcurrency列があり、オフショア証券会社がブラジルの口座と並んでUSD残高とポジションを報告するためです。純資産とポートフォリオ合計は、換算して明示しない限り、通貨ごとにのみ意味を持ちます。

クレジットカードでは、date起票日であり、購入日ではありません。1年前の購入の分割払いが今月起票されることもあります。data_compraには両者が異なる場合の元の日付が入り、faturaはその行がどの請求書に載ったかを示します。したがって、list_transactions({ bill })は請求書合計の内訳を返します。

Related MCP server: @gu-does-packages/pluggy-mcp

プロンプト

保存された分析で、毎月同じ質問を同じ方法で行えます。

プロンプト

説明

analise_mensal

月全体を最初から最後まで: 収入、支出、カテゴリ、前月比の変化

fatura_cartao

1枚の請求書: 銀行の合計と照合し、新規購入と過去の分割払いを分離

revisao_assinaturas

定期請求(忘れているものや値上がりしたものを含む)

saude_financeira

純資産、負債、クレジット利用率、貯蓄率

セットアップ

1. 銀行を接続する(一度だけ、約15分)

  1. meu.pluggy.aiでアカウントを作成し、銀行を接続します

  2. dashboard.pluggy.aiでアカウントを作成します。これで15日間のトライアルが始まりますが、無視して構いません。Pluggyは有効期限が切れてもデータを取得できると明言しています

  3. アプリケーションを作成する前にCustomizeに移動し、MeuPluggyコネクタをコネクタリストに追加します。これをスキップすると、後で表示されません

  4. Development Applicationを作成し、Client IDClient Secretをコピーします

  5. Demoアプリケーションを開き、MeuPluggyのOAuth認証を通じてMeu Pluggyアカウントをリンクします。接続した銀行ごとにこれを繰り返します — Pluggyは口座ごとではなく銀行ごとに1つのアイテムを発行します

  6. 各接続のItem IDをコピーします(「Copiar Item ID」)

接続名はPluggyが報告する口座名から派生するため、新しい銀行は設定不要です。アイテムがどこにも機関名を付けない場合(一部はすべての口座をConta Correnteと報告します)、PLUGGY_ITEM_LABELS=<item id>=Banco Xで自分で名前を付けます。複数の場合はカンマ区切りです。

コネクタ200はMeu Pluggyが所有する接続のプロキシとして機能し、毎日更新します。Meu Pluggyが所有しているため、PluggyはAPI経由での同期を拒否しますrefresh_connection400 MeuPluggy item cant be updatedと応答し、代わりにどこで行うべきかを示します。強制的に更新するにはmeu.pluggy.aiで銀行を再接続する必要があり、履歴に欠落した期間は、銀行がOpen Financeでまだ公開している場合にのみ戻ってきます。

2. コネクタ200が実際に何を返すか確認する

npm install
npm run setup   # prompts for the credentials, writes .env with mode 0600
npm run probe

npm run setupは、入力中にクライアントシークレットをマスクし、MCPベアラートークンを生成し、何かを書き込む前にPluggy APIに対して資格情報を検証します。再実行すると現在の値が保持されます — プロンプトをスキップするにはEnterを押します。

プローブは、投資、クレジットカード請求書、ローンが接続で利用可能かどうかを報告し、日付とカテゴリの処理を検証します。口座番号、税ID、取引の説明は印刷しません

3. 実行

npm run dev            # development, reads .env directly
npm run build && npm start   # production

curl localhost:8787/healthで稼働を確認します。

デプロイ(VM + Tailscale)

プロセスはループバックのみで待ち受けます。公開はTailscaleが処理し、0.0.0.0へのバインドは決して行いません — クラウドVMにはパブリックIPがあり、誤ったバインドとオープンなセキュリティリストの組み合わせは、銀行明細をインターネットにさらすことになります。

VMにはNode 22.6+とTailscaleが起動済み(tailscale up)である必要があります。ユニットファイルは/usr/bin/nodeを実行します。これはディストリビューションまたはNodeSourceパッケージが配置される場所です。nvmでNodeをインストールした場合は、ExecStartを実際のバイナリに指定してください。

1. サービスアカウントとコード

サービスはディスクに書き込みません — キャッシュはメモリ内にあり、ユニットは空のReadWritePathsProtectSystem=strictを設定します。したがって、コードはrootが所有し、サービスユーザーは読み取りのみ可能です。侵害されたプロセスは自身のソースを書き換えられません。

sudo useradd --system --no-create-home --shell /usr/sbin/nologin pluggy-mcp

sudo git clone https://github.com/brunopedrazza/pluggy-mcp-server /opt/pluggy-mcp
cd /opt/pluggy-mcp
sudo npm ci                  # dev dependencies included: tsc is needed to build
sudo npm run build
sudo npm prune --omit=dev    # and dropped again; free-tier VMs are small

2. 資格情報

scpで.envをコピーするのではなく、VM上でセットアップを実行します。何かを書き込む前にPluggy APIに対して資格情報を検証するため、VMにアウトバウンド接続があることも証明されます — systemdを導入する前に知っておく価値があります。

sudo npm run setup

sudo install -d -m 700 /etc/pluggy-mcp
sudo install -m 600 .env /etc/pluggy-mcp/env
sudo rm /opt/pluggy-mcp/.env   # one copy of the secret, not two

3. サービス

sudo cp deploy/pluggy-mcp.service /etc/systemd/system/
sudo systemctl enable --now pluggy-mcp

ポートが応答するだけでなく、Pluggyに到達したことを確認します:

curl localhost:8787/health
journalctl -u pluggy-mcp -n 20

ジャーナルはtransaction cache warmedで終わるはずです。代わりに名前解決エラーでcache warm failedと表示される場合、原因はユニットのRestrictAddressFamiliesです。glibcがsystemd-resolved経由で解決する場合、getaddrinfoはunixソケットを必要とします。その行にAF_UNIXを追加して再起動してください。

4. テールネットに公開する

ポートを主張する前に、ノードがすでに公開しているものを確認してください — serveは同じポートとパス上のハンドラーを警告なしに置き換え、すでに存在するサービスから443の/を奪うと、静かな障害が発生します:

sudo tailscale serve status   # empty output means 443 is free

443が空いていれば使用します。すでに何かが保持している場合は、パスを共有する代わりに別のHTTPSポートにマウントします:

sudo tailscale serve --bg --https=8443 127.0.0.1:8787
sudo tailscale serve status   # prints the https://…ts.net URL used below

これにはテールネットでHTTPSが有効である必要があります(管理コンソール > DNS)。証明書は本物で自動的に発行されるため、ベアラートークンが平文で送信されることはありません。serve設定は再起動後も存続するため、これは一度だけのコマンドです。

クライアントを接続する

claude mcp add --transport http pluggy https://YOUR-VM.YOUR-TAILNET.ts.net/mcp \
  --header "Authorization: Bearer $MCP_BEARER_TOKEN"

URLは--headerの前に置く必要があります。そのフラグは可変長なので、その後に続くものはすべて別のヘッダーとして解析され、URLが位置引数に到達しません。

ローカルでnpm run devに対して:

claude mcp add --transport http pluggy http://127.0.0.1:8787/mcp \
  --header "Authorization: Bearer $(grep '^MCP_BEARER_TOKEN=' .env | cut -d= -f2-)"

これはClaude Webやモバイルアプリでは機能しません。claude.aiのカスタムコネクタはAnthropicのインフラストラクチャからダイヤルされるため、プライベートテールネットに到達できません。実行中のマシンから接続するクライアントは正常に動作します。

更新

cd /opt/pluggy-mcp
sudo git pull && sudo npm ci && sudo npm run build && sudo npm prune --omit=dev
sudo systemctl restart pluggy-mcp

ベアラートークンのローテーションも同じ再起動です。/etc/pluggy-mcp/envを編集し、サービスを再起動し、すべてのクライアントのヘッダーを更新します。

または、ボックスに任せることもできます。systemdタイマーでorigin/mainを追跡し、移動したら再ビルドし、新しいコミットが正常に戻らない場合はロールバックします。コピーするファイルは2つです — deploy/README.mdを参照してください。

設計

すべての決定とその理由はDESIGN.mdにあります。

ライセンス

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A read-only MCP server that enables users to analyze their real bank, credit card, loan, and brokerage data through Plaid. It provides financial analysis tools for transactions, balances, investments, liabilities, and debt while keeping all access tokens and data locally stored.
    24
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for the Pluggy Open Finance Brazil API, enabling connection to bank accounts and management of financial data including transactions, accounts, investments, and payment intents through natural language.
    14
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only MCP server for FinTS/HBCI banking; enables account information retrieval such as balances and transactions via PIN-TAN.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server for connecting to Pluggy Open Finance Brasil, exposing accounts, balances, transactions, and investments to Claude agents.

View all related MCP servers

Related MCP Connectors

  • Brazilian Open Finance MCP — 30+ banks (Itaú, Nubank, etc.) to Claude/Cursor. Read-only.

  • Connect your Player's Bank account to AI via Brazil's Open Finance: balances, statements, cards, inv

  • Connect your Mercado Pago account to AI via Brazil's Open Finance: balances, statements, cards, inve

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brunopedrazza/pluggy-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server