Unofficial read-only MCP (Model Context Protocol) server for the Easy Pay Direct (EPD) / NMI-family payment gateway Query API — transactions, subscriptions, plans, customer vault.
easypaydirect-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
📖 **Documentation:**
> **Unofficial, read-only Model Context Protocol server for the Easy Pay Direct (EPD) / NMI-family payment gateway.**
Give an AI assistant (Claude Desktop, Claude Code, or any MCP client) safe, **read-only** access to your gateway's transactions, subscriptions, recurring plans, and Customer Vault records — so you can ask questions like *"find the failed transactions for this customer last week"* or *"is this subscription still active?"* in plain language.
Easy Pay Direct is built on the **NMI / Network Merchants** gateway platform, so this server works with **any NMI white-label gateway** — just point it at your gateway's host. EPD is the headline example, not the limit.
> ⚠️ **Not affiliated with, endorsed by, or sponsored by Easy Pay Direct or NMI.** "Easy Pay Direct", "EPD", and "NMI" are trademarks of their respective owners. This is an independent open-source client for their public Query API.
---
Why read-only?
This server talks **only** to the gateway's Query API (/api/query.php) — the reporting endpoint. It has **no code path** to the transaction endpoint (transact.php), so it **cannot** charge a card, issue a refund, void a transaction, or modify the vault. An LLM connected to this server can look, but it cannot touch money. See docs/security.md.
Write operations may arrive in a future major version — always **opt-in, off by default, and loudly gated**.
---
Install & run
Requires **Node.js 18+**.
The server speaks MCP over **stdio** and expects two environment variables:
| Variable | Required | Description |
|---|---|---|
| NMI_SECURITY_KEY | ✅ | Your gateway API **security key** (a **read-only** key is recommended). Merchant portal → Settings → Security Keys. |
| NMI_API_URL | — | Gateway API base URL. Defaults to https://secure.nmi.com. For EPD/white-labels, set this to your gateway's host. |
See docs/configuration.md for how to find your key and host.
Run with Docker
No local Node.js needed. Build the image from the repository root, then run it with -i — MCP talks over stdio, so the container needs stdin kept open:
Or keep the variables in an env file (--env-file .env). .env is already git-ignored — never commit a real key.
Connect it to Claude
**Claude Desktop** — add to claude_desktop_config.json (see examples/claude-desktop-config.json):
**Claude Code:**
To use the Docker image instead, swap the command — a bare -e NAME forwards the variable into the container:
Full walkthrough: docs/getting-started.md.
Claude Code plugin (server + skill)
The plugin installs the MCP server **and** an Agent Skill
that teaches Claude how to read gateway data correctly — for example that a successful
ACH sale is only *submitted*, not paid, and that EPD timestamps are UTC.
Set the key in your shell (the plugin reads it from the environment), then install:
Using another client? The skill is a plain SKILL.md — add it to any tool that supports Agent Skills.
Tools
All tools are **read-only**. Full reference in docs/tools.md.