AI 클라이언트가 결제 사전 점검을 수행하고, 미결제 승인 상태를 모니터링하며, HIP-3 거래 주문을 로컬 정책에 따라 평가할 수 있도록 지원합니다.
다른 이름 base-buzz/paystage, mcp, @paystage/mcp
- 스타
- 5
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 0.3.2
- 마지막 커밋
- 2026년 11월 14일
- 라이선스
- MIT
PayStage MCP란?
PayStage은(는) MCP server입니다. AI 클라이언트가 결제 사전 점검을 수행하고, 미결제 승인 상태를 모니터링하며, HIP-3 거래 주문을 로컬 정책에 따라 평가할 수 있도록 지원합니다.
프로젝트 README에서 생성된 요약
PayStage MCP server 정보
PayStage는 AI 에이전트 내부에서 금융 안전 및 거래 준수 사항을 관리할 수 있게 해줍니다. 개발자는 이 통합 MCP server를 사용하여 x402 결제 및 HIP-3 거래 주문이 로컬 지출 규칙을 준수하는지 사전 점검할 수 있습니다. 이 서버는 실제 주문을 넣거나 특정 거래를 추천하지 않고, 허용(allow), 검토(review), 거래 불가(do not trade)와 같은 판결을 제공하는 로컬 정책 게이트로 작동합니다.
사용자는 npx 또는 npm을 통해 서버를 설정하며, stdio 연결을 통해 구성합니다. PAYSTAGE_POLICY_PATH 환경 변수를 사용하여 지출 규칙이 담긴 로컬 policy.json 파일을 지정하거나, PAYSTAGE_RPC_URL을 사용하여 Base RPC URL을 재정의하는 등 서버를 커스텀할 수 있습니다. 또한 미결제된 ERC-20, Permit2, EIP-3009 승인 목록을 조회하거나, 승인은 되었으나 정산되지 않은 승인 항목을 식별하는 전용 도구를 제공합니다.
단순한 점검을 넘어, 이 시스템은 서명된 영수증을 검증하여 결정 사항이 변경되지 않았음을 보장합니다. 따라서 로컬 정책 파일과 지출 패턴을 엄격하게 준수해야 하는 에이전트를 구축하는 개발자에게 적합합니다.
활용 사례
- 1제안된 결제 검증서명하기 전에 제안된 x402 결제가 로컬 지출 정책을 준수하는지 AI에게 확인하도록 요청합니다.
- 2대기 중인 승인 모니터링에이전트가 주의가 필요한 미결제 ERC-20 또는 Permit2 승인 항목을 식별하도록 합니다.
- 3거래 주문 감사에이전트를 사용하여 HIP-3 거래 주문을 특정 TradePolicy와 대조하고 진행 여부를 결정합니다.
- 4결정 무결성 검증서명된 영수증을 확인하여 정책 판결이 정당하며 변조되지 않았음을 확인합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
PayStage MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 PayStage MCP 설치
$ claude mcp add mcp -- npx -y @paystage/mcpCursor에 PayStage MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@paystage/mcp"
]
}
}
}VS Code에 PayStage MCP 설치
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@paystage/mcp"
]
}
}
}VS Code CLI에 PayStage MCP 설치
$ code --add-mcp '{"name":"mcp","type":"stdio","command":"npx","args":["-y","@paystage/mcp"]}'Claude Desktop에 PayStage MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@paystage/mcp"
]
}
}
}Codex에 PayStage MCP 설치
$ codex mcp add mcp -- npx -y @paystage/mcpCodex config.toml에 PayStage MCP 설치
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@paystage/mcp"]
Gemini CLI에 PayStage MCP 설치
$ gemini mcp add -s user mcp npx -- -y @paystage/mcpGemini settings.json에 PayStage MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@paystage/mcp"
]
}
}
}구성
PAYSTAGE_POLICY_PATHPath to policy.json spending rules
PAYSTAGE_RPC_URLBase RPC URL override
| 이름 | 설명 | 유형 |
|---|---|---|
| PAYSTAGE_POLICY_PATH | Path to policy.json spending rules | |
| PAYSTAGE_RPC_URL | Base RPC URL override |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음통과
README
GitHub에서 보기@paystage/mcp
PayStage umbrella MCP server: payment preflight, auth watch, HIP-3 trade preflight, and velocity checks.
Not financial advice. The trade preflight tool is a local policy gate only — it does not place orders or recommend trades.
Published on npm as @paystage/mcp — see the npm page for the current version rather than a number here that can go stale.
What a valid receipt means
paystage-verify returning exit 0 means the key it verified against signed this receipt
and it has not been altered. That is all it means — and which key that was matters:
key_source: "published"→ PayStage's published key: the issuer signed it.key_source: "supplied"(you passed--keyor--key-url) → the key you named signed it, which is a weaker claim and not evidence about PayStage at all. Exit 0 on that path says nothing more than that the holder of that key produced the receipt.
It does not mean the payment happened — settlement is a separate on-chain event. It does not mean the verdict was correct — a receipt records a decision, not the soundness of the policy behind it. And it does not identify the caller; no caller identity is bound into the payload, by design.
Two narrower points a careful reader should know:
key_sourcetells you where the verifying key came from:published(PayStage's endpoint) orsupplied(someone passed--key). A receipt verified against a supplied key proves only that the holder of that key signed it.- A receipt with
signed: falseis still useful: the request and policy digests are checkable, so "over these inputs" survives even when provenance does not. --max-ageis your policy, not the issuer's. Nothing in the signed payload says how long a verdict is meant to hold, so a freshness bound is set by the verifier. If "this verdict is good for 24 hours" ever becomes the issuer's promise it has to be signed, and that is a format change.
Install
npx -y -p @paystage/mcp paystage-mcp
The server waits silently for an agent app to connect. That's normal; press Ctrl+C to exit. To try the tools without an app, run npx @modelcontextprotocol/inspector npx -y -p @paystage/mcp paystage-mcp.
Or:
npm install @paystage/mcp
The package exposes a stdio MCP server (bin: paystage-mcp).
MCP configuration
{
"mcpServers": {
"paystage": {
"command": "npx",
"args": ["-y", "-p", "@paystage/mcp", "paystage-mcp"],
"env": {
"PAYSTAGE_POLICY_PATH": "./policy.json"
}
}
}
}
Environment variables (all optional):
PAYSTAGE_POLICY_PATH— path topolicy.jsonspending rulesPAYSTAGE_RPC_URL— Base RPC URL override
Tools
evaluate_mcp_payment — Available now
Evaluates a proposed x402 payment against a local policy file and returns a verdict before the agent signs anything.
list_outstanding_auths — Available now
Lists outstanding ERC-20, Permit2, and EIP-3009 authorizations.
evaluate_outstanding_auths — Available now
Flags outstanding authorizations that need attention (e.g. authorized but never settled).
evaluate_hip3_trade — Available now
Evaluates a proposed HIP-3 / trade.xyz order against a local TradePolicy and returns a
decision: allow | review | do_not_trade.
Backed by @paystage/trade-preflight
(published separately), which can also be run standalone:
npx -y @paystage/trade-preflight
The policy is passed as a tool argument; no extra environment variables are required for this tool.
Packages
| Package | Version | Purpose |
|---|---|---|
@paystage/mcp |
Umbrella server (5 tools) | |
@paystage/preflight |
x402 payment preflight | |
@paystage/auth-watch |
Outstanding-auth tools | |
@paystage/trade-preflight |
HIP-3 / trade.xyz trade preflight | |
@paystage/velocity |
Rate / spend-pattern checks | |
@paystage/policy |
Shared policy schema + loader |
Verify a receipt
Every verdict can carry a signed receipt. paystage-verify checks one without trusting
us — it fetches the published key and verifies the signature over the canonical payload.
npx -y -p @paystage/mcp paystage-verify receipt.json
cat receipt.json | npx -y -p @paystage/mcp paystage-verify -
Exit codes are distinct on purpose:
| Code | Meaning |
|---|---|
| 0 | signature matches the payload |
| 1 | invalid — altered, or signed by a different key |
| 2 | unsigned — a record of the decision, with no proof of who made it |
| 3 | unverifiable — the key could not be fetched, or an input file could not be read, so nothing can be checked |
| 4 | inputs-mismatch — the receipt is genuine but does not cover the --request/--policy you supplied |
| 5 | stale — the receipt is genuine but older than --max-age allows |
"Invalid" and "could not check" are different facts and must not collapse into one
failure. --key <file> verifies against a local JWK for point-in-time checks.
Supply chain and access
This is the umbrella, so its install tree is wider than any single tool and Socket flags it accordingly. What it actually contains:
| Flag | Where it comes from |
|---|---|
| Network access, URL strings | @paystage/auth-watch (Base RPC reads) and @paystage/trade-preflight (one Hyperliquid info query). |
| Filesystem access | @paystage/policy reading your policy file. |
| Environment variable access | PAYSTAGE_POLICY_PATH, PAYSTAGE_RPC_URL. |
| "AI-detected code anomaly" | The official @modelcontextprotocol/server SDK's bundled JSON-schema validator, not PayStage code. |
The umbrella itself is ~16 KB with no network, no filesystem and no eval — the
capability lives in the dependencies, because that is what the tools are for.
Install a narrower surface if you only need part of it: @paystage/preflight and
@paystage/policy make no network calls at all.
Full table: SECURITY.md.
Links
-
Verify receipts:
npx -y -p @paystage/mcp paystage-verify <receipt.json> -
Website: paystage.xyz
-
HIP-3 context: docs.trade.xyz
-
Source: github.com/base-buzz/paystage
License
MIT
PayStage MCP 질문
PayStage MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add mcp -- npx -y @paystage/mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
PayStage MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
거래 사전 점검 도구가 실제로 거래를 실행하나요?
아니요, 이 도구는 로컬 정책 게이트 역할만 수행하며 주문을 실행하거나 거래 권장 사항을 제공하지 않습니다.
결정 영수증을 어떻게 검증할 수 있나요?
paystage-verify 명령어를 사용하여 서명된 영수증을 공개 키와 대조함으로써 데이터 변조 여부를 확인할 수 있습니다.