2328 Wallet MCP Server
MCP server for managing a 2328 merchant account, providing tools for balances, exchange rates, invoices, static wallets, payouts, and conversions via natural language.
README
2328 Wallet CLI and MCP Server
An installable Bun CLI and MCP interface for a 2328 merchant account. Running 2328 opens an interactive terminal menu; 2328 --mcp exposes the same account to a local MCP client over stdio; 2328 --serve starts the hosted OAuth-enabled Streamable HTTP service.
The implementation follows the live 2328 API documentation. Decimal amounts remain strings from input to the upstream API.
Capabilities
| Area | MCP tools |
|---|---|
| Account | wallet_balances, payment_directions |
| Market | exchange_rates, market_prices |
| Payments | invoice_get, invoice_list, invoice_create |
| Static wallets | static_wallet_get, static_wallet_list, static_wallet_transactions, static_wallet_create, static_wallet_enable, static_wallet_disable |
| Payouts | payout_get, payout_prepare, payout_create |
| Convert | convert_prepare, convert_execute |
Payout and conversion execution are split into prepare/confirm calls. The preparation is encrypted, bound to one connection and short-lived. A client must show the quote and obtain the exact confirmation string before execution.
The MCP also publishes wallet2328://safety and wallet2328://capabilities resources so an agent can retrieve settlement rules and the scopes actually approved for its connection.
Install the CLI
Requirements: Bun 1.3 or newer and a 2328 project ID/API key. The payout API key is separate and optional.
From the package registry after publication:
bun install --global @2328/mcp-server
2328
From this checkout:
bun install --frozen-lockfile
bun run build
chmod +x dist/index.js # Linux/macOS
bun link
2328
The first interactive launch verifies the ordinary API key with the balance endpoint. API keys are stored in Windows Credential Manager, macOS Keychain or Linux Secret Service through Bun.secrets; the config file contains only profile metadata. On a headless system without a credential store, provide PROJECT_ID, API_KEY and optionally PAYOUT_API_KEY through the process environment.
Local MCP
Configure a profile interactively once with 2328, then point the MCP client at:
{
"command": "2328",
"args": ["--mcp"]
}
For a named profile:
{
"command": "2328",
"args": ["--mcp", "--profile", "merchant-production"]
}
Environment-only configuration is also supported:
{
"command": "2328",
"args": ["--mcp"],
"env": {
"PROJECT_ID": "...",
"API_KEY": "...",
"PAYOUT_API_KEY": "..."
}
}
If the payout key is absent, payout scopes are omitted from the local principal. Protocol frames are written only to stdout; diagnostics use stderr.
Hosted Streamable HTTP
The hosted mode uses OAuth Authorization Code with PKCE, short-lived encrypted access tokens and rotating refresh tokens. Ordinary read-only scopes are selected by default; payout, management and money-moving scopes require separate selection.
The production endpoint is https://mcp.2328.io/mcp. The dedicated-server deployment terminates TLS in Caddy and keeps both the MCP application and Redis off the public host network.
Production deployment:
cp .env.production.example .env.production
# Set ACME_EMAIL in .env.production.
sh deploy/init-secrets.sh
docker compose --env-file .env.production -f compose.production.yaml config
docker compose --env-file .env.production -f compose.production.yaml build --pull
docker compose --env-file .env.production -f compose.production.yaml up -d
Create an A record for mcp.2328.io before starting Caddy and allow inbound TCP 80/443 plus UDP 443. Do not expose ports 3000 or 6379. See operations for verification, upgrades and secret handling.
For local hosted-mode development:
cp .env.example .env
bun -e "console.log(crypto.getRandomValues(new Uint8Array(32)).toBase64({alphabet:'base64url',omitPadding:true}))"
# Put the value in TOKEN_ENCRYPTION_KEY and configure the public HTTPS origin.
docker compose up --build -d
Connect an OAuth-capable MCP client to https://mcp.example.com/mcp. Users link a project using project keys; the service never asks for the 2328 account password. The compose port is loopback-only so a reverse proxy or ingress must own public TLS.
ChatGPT and Codex plugin
The installable plugin package is in plugins/2328-wallet. It contains the validated manifest, hosted MCP configuration and official 2328 mark. ChatGPT additionally requires the hosted MCP connection to be registered in Developer mode; after registration, add its generated plugin_asdk_app... mapping as described in the plugin README.
Commands
2328 interactive terminal account menu
2328 --mcp [--profile NAME] local MCP over stdio
2328 --serve hosted OAuth MCP service
2328 --help
2328 --version
Development and verification
bun install --frozen-lockfile
bun run typecheck
bun run lint
bun test
bun run build
bun run verify:package
bun run verify:tui
# With a reachable Redis instance:
bun run verify:hosted
bun audit
Read API coverage, architecture, security and operations before a public deployment.
License
Licensed under the Apache License 2.0.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。