プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Schwab MCP

作者:lonnievバージョン 0.14.0i★ –iクラウドで動く
レジストリ名io.github.lonniev/schwab-mcp

インストール

概要

作者による説明(英語の原文)

Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:3項目中3項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://schwab-mcp.fastmcp.app/mcp

ターミナルでこれを実行します

claude mcp add --transport http schwab https://schwab-mcp.fastmcp.app/mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "schwab": {
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "schwab": {
      "type": "http",
      "url": "https://schwab-mcp.fastmcp.app/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://schwab-mcp.fastmcp.app/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーは、ツール一覧を表示する前にサインインを求めます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月10日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント lonniev で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • ✓ 合格

    エンドポイントが応答する

    567ミリ秒で応答(HTTP 401)

  • ✓ 合格

    OAuthでサインイン

    OAuthでのサインインに対応しているため、AIアプリがログイン画面へ案内してくれます

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

その他のほかのサーバーとの比較i

  • このカテゴリのほかの19056件のうち0%よりスターが多い
  • このカテゴリのほかの19056件のうち68%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの19056件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Schwab MCPは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.14.0)がレジストリに届いたのは20 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Floppy

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

作者:formulahendry初期↓ 66/週★ 44014 か月前更新

パソコンで動く

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

作者:desktop-commander成長中★ 211昨日更新

クラウドで動く✓ desktopcommander.app

Floppy

Share a file with a short link and see who opened it: pages read, time per page, bots filtered.

作者:fpy.sh初期今日更新

クラウドで動く✓ fpy.sh

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

schwab-mcp

Your brokerage data, conversationally. Ask your AI assistant about your positions, screen option spreads, audit today's trades against your strategy rules, and get end-of-day reports — all from natural language. The data cost? About 6 sats per session (~$0.005).

Why This Exists

The data in schwab-mcp is nothing you can't get from ThinkOrSwim, OptionAlpha, or Schwab's own web UI. What you *can't* get from those tools is a personal trading assistant that blends:

  • Your live positions and account balances
  • Real-time option chains with Greeks, IV, and OTM%
  • Your trading strategy rules (credit floors, RWR targets, sector concentration limits)
  • Market context (earnings calendars, VIX levels, sector rotation)
  • All of the above in a single conversational turn

Ask *"How would you judge my new trades for the day?"* and get a structured audit against your criteria. Ask *"What are three SPS candidates aligned with my strategy and balanced with my current book?"* and get sector-aware, earnings-aware, IV-aware suggestions — grounded in your actual positions, not generic advice.

The AI does the synthesis. schwab-mcp provides the data bridge. You pay per-call in Bitcoin Lightning sats — no subscription, no KYC, no vendor lock-in. A full day of morning report + evening report + follow-up analysis costs about 6 sats (< $0.01).


Multi-tenant MCP server exposing Charles Schwab brokerage data to AI agents via FastMCP. Monetized via Tollbooth DPYC&trade; Lightning micropayments. Serves over Streamable HTTP with direct async httpx calls to api.schwabapi.com.

Don't Pester Your Customer&trade; (DPYC&trade;) &mdash; API monetization for Entrepreneurial Bitcoin Advocates

*Inspired by The Phantom Tollbooth by Norton Juster, illustrated by Jules Feiffer (1961).*

The DPYC&trade; Economy

DPYC&trade; stands for Don't Pester Your Customer. It is a philosophy and protocol for API monetization that eliminates mid-session payment popups, subscription nag screens, and KYC friction.

How it works
  1. Pre-funded balances -- Users buy credits (api_sats) via Bitcoin Lightning *before* using tools. Each tool call silently debits from their balance. No interruptions, no "please upgrade" modals. Credits expire after a tranche_lifetime window set by the operator's pricing model.
  1. Nostr keypair identity -- Users are identified by a Nostr public key (npub), not an email or password. One keypair per role, managed by the user. No account creation forms.
  1. Identity on the connection -- Every paid tool call names the patron's npub; the connection proves it. A client holding the nsec signs each request (NIP-98). A client holding no key connects with OAuth and proves the npub once through request_npub_proof / receive_npub_proof -- a human-in-the-loop Secure Courier exchange the patron approves in their Nostr client. The connection then holds the npub for the duration the patron chose, across MCP restarts.
  1. UUID-keyed tool identity -- Every tool is a ToolIdentity object with a deterministic UUID v5 derived from a capability name. Pricing hints come from the category field:
CategoryPricing hintUse case
free0 satsBalance checks, status
read1 satSimple lookups
write5 satsMulti-step operations
heavy10 satsExpensive queries

Actual prices (api_sats) are set dynamically by the operator's pricing model in Neon.

  1. Rollback on failure -- If the downstream API fails after a debit, credits are automatically rolled back via a compensating tranche. The user never pays for a failed call.
  1. Social Contract -- The DPYC&trade; ecosystem is a voluntary community:
  • Citizens -- Users who consume API services
  • Operators -- Developers who run MCP services (like this one)
  • Authorities -- Certify operators and collect a small tax on purchases
  • First Curator -- The root of the chain, mints the initial cert-sat supply

Tools

Brokerage (paid -- credit-gated)

All paid tools take the patron's npub; the connection proves it.

ToolTierDescription
get_brokerage_positionswritePortfolio positions with automatic options spread detection (bull put / bear call)
get_brokerage_balanceswriteCash, buying power, net liquidation value, day P&L
get_stock_quotewriteReal-time quotes for one or more symbols
get_market_moverswriteTop movers for a market index ($SPX, $DJI, $COMPX)
get_market_hourswriteTrading hours for equity, option, bond, future, forex markets
search_instrumentswriteSearch for instruments by symbol, name, or CUSIP
get_option_chainheavyFiltered option chain with Greeks, IV, OTM%, and OI threshold
get_price_historyheavyHistorical OHLCV candle data
get_brokerage_ordersheavyOrder history with multi-leg spread support (default 30 days)
get_brokerage_orderheavySingle order detail by ID
get_brokerage_transactionsheavyTransaction history -- trades, dividends, cash movements (default 30 days)
get_brokerage_transactionheavySingle transaction detail by ID
Free
ToolDescription
session_statusCheck operator lifecycle state and readiness
service_statusCheck health and configuration of this service
begin_oauthStart OAuth2 flow -- returns Schwab authorization URL
check_oauth_statusPoll whether OAuth flow completed and session is active
get_account_numbersList linked Schwab account numbers and hashes
request_credential_channelOpen a Secure Courier channel for credential delivery via Nostr DM
receive_credentialsPick up credentials from the encrypted vault
forget_credentialsDelete vaulted credentials for re-delivery
update_patron_credentialAdd or update a single patron credential field
delete_patron_credentialRemove a single patron credential field
get_patron_credential_fieldsList stored patron credential field names
check_balanceView credit balance and usage
check_pricePreview tool cost before calling
purchase_creditsCreate a Lightning invoice to buy credits
check_paymentVerify Lightning payment and credit the balance
restore_creditsRestore credits from a previously paid invoice
account_statementView account statement summary
account_statement_infographicVisual SVG infographic of account (1 sat)
check_authority_balanceCheck operator's cert-sat balance at Authority
get_pricing_modelView the active pricing model
list_constraint_typesList available constraint types and schemas
request_npub_proofRequest an npub ownership proof via Nostr DM; returns its nonce
receive_npub_proofCollect the reply into this connection, which then holds the npub
get_operator_onboarding_statusReport operator configuration readiness
get_patron_onboarding_statusReport patron credential readiness
list_notarizationsList recent Bitcoin notarization records
get_notarization_proofGenerate a Merkle inclusion proof for a patron balance

All brokerage tools are read-only. No orders are placed.

Architecture

  • Multi-tenant: operator delivers btcpay_host + btcpay_api_key + btcpay_store_id + app_key + secret via Secure Courier (service="schwab-operator"); each patron authenticates via OAuth2 browser flow. Sessions are keyed by npub. No Schwab credentials in env vars
  • Direct httpx: thin SchwabClient wrapper with bearer auth and proactive token refresh (no third-party Schwab SDK)
  • Tollbooth DPYC&trade;: pre-funded Lightning balances, Authority-certified purchase orders, NeonVault (Postgres) for ledger persistence
  • Registry discovery: OAuth2 collector URL resolved from DPYC&trade; registry at runtime (no OAUTH_COLLECTOR_URL env var needed)
  • Credential validation: operator credentials are validated at receive time -- btcpay_host, app_key, and secret must all be present before vaulting
  • Identity on the connection: a request signed with the npub's key (NIP-98), or an OAuth connection that holds the npub after one Secure Courier DM. Survives restarts; patron-chosen duration. Restricted tools (operator-only) need the operator's npub proven the same way.

Getting Started

This guide covers the full Tollbooth onboarding path -- from generating a Nostr identity to making your first brokerage data call. It applies to both Operators (who deploy schwab-mcp) and Patrons (who consume it through Claude.ai or another MCP client).

1. Get a Nostr Identity (npub)

Every participant in the DPYC&trade; ecosystem is identified by a Nostr keypair -- no email, no password, no vendor lock-in.

What is an npub? It is a public key in the Nostr protocol, encoded as a bech32 string starting with npub1.... Your corresponding private key (nsec1...) stays on your device. The npub is safe to share -- it is how the system knows who you are.

How to generate one:

  1. Install Oxcart (the preferred Nostr client for DPYC&trade; workflows; other clients have not been tested)
  2. Create an account -- the app generates your keypair automatically
  3. Find your npub in the app's profile/settings screen (it starts with npub1...)

Alternatively, use a CLI key generator like nak: nak key generate

Operators should keep a separate npub for their service identity, distinct from their personal Nostr account.

2. Register as a DPYC&trade; Citizen

Before you can buy credits or operate a service, register your npub with the DPYC&trade; community:

  1. In Claude.ai (with the DPYC Oracle connected), call how_to_join() to learn about citizenship
  2. Follow the Oracle's instructions to register your npub

Citizenship is free and gives you a portable identity across the entire Tollbooth network.

3. For Operators -- Set Up Your BTCPay Store

The Operator collects Lightning payments from Patrons via BTCPay Server. You need:

  • A BTCPay Server instance (self-hosted or hosted by your Authority)
  • A Store ID and API Key with invoice creation permissions

These credentials are delivered via Secure Courier (see step 6), not set as environment variables.

4. For Operators -- Register with a Tollbooth Authority

Every Operator is sponsored by an Authority in the DPYC&trade; trust chain. The Authority certifies your purchase orders and collects a small fee (default 2%).

  1. On your own Schwab MCP, call request_adoption(authority_npub= , service_url= ), signing the request with your operator nsec (NIP-98; Pricing Studio does this for you)
  2. The Authority's owner approves it (approve_operator_request), which creates your ledger entry and provisions your Neon database
  3. adoption_status(authority_npub=...) on your MCP reads provisioned once it is done
5. For Operators -- Fund Your Certification Balance

Before your service can issue credits to Patrons, you need cert-sats:

  1. Call authority_purchase_credits(amount_sats=1000) on your Authority -- returns a Ligh

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く