프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Drain MCP

제작자: kimbo128버전 0.1.3i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.kimbo128/drain-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Pay for AI inference with USDC micropayments on Polygon. No API keys needed.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타
  • 입력해야 할 값: DRAIN_PRIVATE_KEY

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: DRAIN_PRIVATE_KEY

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "drain": {
      "command": "npx",
      "args": [
        "-y",
        "drain-mcp"
      ],
      "env": {
        "DRAIN_PRIVATE_KEY": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add drain --env DRAIN_PRIVATE_KEY=your-value -- npx -y drain-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "drain": {
      "command": "npx",
      "args": [
        "-y",
        "drain-mcp"
      ],
      "env": {
        "DRAIN_PRIVATE_KEY": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "drain": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "drain-mcp"
      ],
      "env": {
        "DRAIN_PRIVATE_KEY": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • DRAIN_PRIVATE_KEY 비밀 필수 env
    Private key for the wallet used for USDC micropayments on Polygon

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 kimbo128 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 18326개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 18326개 중 2%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 18326개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Drain MCP, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: DRAIN_PRIVATE_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.3)은 9개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Signoff

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

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

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

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

클라우드에서 실행★ 211그저께 업데이트
설치

Signoff

제작자: ayuanxx-max

Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

DRAIN MCP Server

Payments for AI Agents — No API keys, no credit cards, no subscriptions.

MCP server for the Handshake58 AI Marketplace. Agents discover service providers, pay automatically, and call any service — LLM inference, web scraping, image generation, search, and more.

Supports two payment protocols:

  • DRAIN — Payment channels on Polygon. Open once, send many requests, close when done.
  • MPP — Per-request payments via Tempo. Each request is paid individually. No channel needed.
DRAINMPP
SetupOpen channel ($0.02 gas)None
Per request$0.0001–$0.01Varies by provider
Best forHigh-volume sessionsSingle requests, REST APIs
PaymentUSDC on PolygonUSDC on Tempo chain

When to Use

Use drain-mcp when you need to:

  • Call any service (LLM, search, scraping, image gen, etc.) without API keys
  • Pay per-request with USDC — no subscriptions, no credit cards
  • Access 30+ providers through one unified interface

Do NOT use drain-mcp when:

  • You already have API keys for the service you need
  • The task doesn't require external services

TL;DR - Minimum Viable Workflow

MPP Providers (per-request, no channel)
1. drain_providers(protocol: "mpp")  → Find MPP providers
  1. drain_provider_info(id) → Read docs (essential for REST APIs)
  2. mpp_chat(provider, messages) → LLM providers (auto-pay via Tempo) — OR — mpp_request(url, body) → REST API providers (auto-pay via Tempo)
  3. drain_feedback(providerId, outcome) → Optional: report success/failure
DRAIN Providers (payment channels)
1. drain_providers(protocol: "drain") → Find DRAIN providers
  1. drain_provider_info(id) → Get provider details + usage docs
  2. drain_balance() → Check USDC + POL
  3. drain_approve() → Approve USDC spending (once)
  4. drain_open_channel(...) → Deposit USDC, get channelId
  5. drain_chat(...) → Send requests (repeat as needed)
  6. drain_cooperative_close(...) → Close early, instant refund (when done) — OR after expiry —
  7. drain_close_channel(...) → Reclaim funds (after expiry)

When to Close a Channel

  • Done with your task? → Use drain_cooperative_close(channelId). Instant refund of unspent deposit. Always do this when finished.
  • Planning more requests soon? → Keep the channel open. No need to close and reopen — saves $0.04 in gas fees.
  • Channel expired? → Use drain_close_channel(channelId). Reclaims unspent USDC after the expiry timestamp. Funds do NOT return automatically.

Rule of thumb: Close when the task is done. Keep open while working.


Already Hit a 402?

MPP providers: drain-mcp handles 402 automatically via mppx/Tempo. Just use mpp_chat or mpp_request — payment is resolved transparently.

DRAIN providers return 402 Payment Required with headers when no payment voucher is sent:

HeaderValue
X-Payment-Protocoldrain-v2
X-Payment-ProviderProvider wallet address (open channel to this)
X-Payment-ContractDRAIN contract address
X-Payment-Chain137 (Polygon Mainnet)
X-Payment-SigningURL for EIP-712 signing parameters
X-Payment-DocsProvider docs endpoint

DRAIN Flow:

  1. Call a provider endpoint (no voucher) → get 402 with headers
  2. Install drain-mcp or use the signing API at the X-Payment-Signing URL
  3. Open a channel to the X-Payment-Provider address
  4. Retry the request with an X-DRAIN-Voucher header

Everything you need is in the 402 response. No prior registration required.


Tools Reference

Discovery
drain_providers

Find service providers. Filter by model name, category, or online status.

{

"model": "gpt-4o", "category": "scraping", "onlineOnly": true }

Categories: llm, image, audio, code, scraping, vpn, multi-modal, other

drain_provider_info

Get details about a provider including usage instructions (docs). The docs explain how to format requests for that provider.

{ "provider": "hs58-openai" }
Wallet
drain_balance

Check wallet USDC balance, POL for gas, and DRAIN contract allowance.

drain_approve

Approve USDC spending for the DRAIN contract. Required once before opening channels.

{ "amount": "100" }
Channels
drain_open_channel

Open a payment channel. Locks USDC for the specified duration.

{

"provider": "hs58-openai", "amount": "5.00", "duration": "24h" }

Returns channelId, expiry time, and provider usage docs.

drain_channel_status

Check a channel's deposit, spending, remaining balance, and expiry.

drain_channels

List all known channels with status (active/expired/closed). Find expired channels that need closing.

Usage (DRAIN)
drain_chat

Send a paid request through a DRAIN channel. Works for ALL DRAIN provider types:

  • LLM providers: Standard chat messages
  • Non-LLM providers: JSON payload in the user message content (check provider docs)
{

"channelId": "0x...", "model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}] }

Usage (MPP)
mpp_chat

Send a chat request to an MPP LLM provider. Payment is automatic via Tempo — no channel, no setup.

{

"provider": "provider-id-or-url", "messages": [{"role": "user", "content": "Hello"}], "model": "optional-model-id" }

mpp_request

Send a request to an MPP REST API service (Tavily, Brave, Wolfram, etc.). Payment is automatic via Tempo.

{

"url": "https://tavily.mpp.paywithlocus.com/tavily/search", "body": {"query": "AI agents", "max_results": 5} }

Read the provider's docs first (drain_provider_info) to find the correct endpoint paths and request format.

Quality Feedback
drain_feedback

Report success or failure after using any provider (DRAIN or MPP). Feeds the marketplace quality scoring system.

{

"providerId": "provider-id", "outcome": "success", "reason": "accurate_result" }

Settlement
drain_cooperative_close

Close a channel early with provider consent. Use this when your task is done — instant refund of unspent deposit. No need to wait for expiry.

{ "channelId": "0x..." }
drain_close_channel

Close an expired channel and reclaim unspent USDC. Use when the channel has passed its expiry timestamp.

{ "channelId": "0x..." }

Economics Example

Opening a GPT-4o channel:

Gas to open channel:     $0.02   (one-time)

Deposit: $0.50 (refundable remainder) Per request: ~$0.001755 Requests possible: ~285

Cost for 10 requests: $0.02 gas + $0.01755 usage = $0.04 Refund after close: $0.50 - $0.01755 = $0.48 Gas to close: $0.02

  • Protocol fee: 2% on provider claims (on-chain)
  • Session fee: none
  • Live pricing: GET https://handshake58.com/api/mcp/providers

Provider Categories

Providers are not limited to LLM chat. Each provider has a category field and a docs endpoint explaining how to format requests.

CategoryDescriptionMessage Format
llmLanguage models (GPT-4o, Claude, Grok, Gemini)Standard chat messages
imageImage generationJSON in user content (see docs)
audioAudio/TTS/STTJSON in user content (see docs)
codeCode generationStandard chat or JSON (see docs)
scrapingWeb scraping, data extractionJSON in user content (see docs)
vpnVPN servicesJSON in user content (see docs)
multi-modalMulti-modal modelsStandard chat messages
otherEverything elseAlways check docs

Rule: For any category other than `llm`, call `drain_provider_info` first to read the docs.


Decision Trees

Choosing a Protocol
What provider do I want?

├── MPP provider (protocol="mpp") │ ├── mppType="llm" → mpp_chat(provider, messages) │ └── mppType="rest" → mpp_request(url, body) │ └── Done. Payment was automatic. │ └── DRAIN provider (protocol="drain") └── See DRAIN flow below

Starting a DRAIN Session
Do I have an active channel?

├── YES → Use drain_chat() with existing channelId └── NO → ├── drain_balance() → Do I have USDC? │ ├── NO → Cannot proceed. Need USDC on Polygon. │ └── YES → │ ├── drain_providers() → Find provider │ │ ├── NO providers → Cannot proceed. │ │ └── Found provider → │ │ ├── drain_approve() → First time only │ │ └── drain_open_channel() → Get channelId │ │ └── drain_chat() → Send requests

Ending a DRAIN Session
Am I done with this task?

├── YES → drain_cooperative_close(channelId) → Instant refund └── NO → ├── More requests soon? → Keep channel open └── Channel expired? → drain_close_channel(channelId) → Reclaim funds

Choosing Amount and Duration
Use CaseAmountDuration
Quick test / single query$0.50 - $11h
Short task (few queries)$2 - $54h
Extended session$5 - $2024h
Long-running agent$20 - $1007d
Handling Errors
"Insufficient balance"

→ Need more USDC. Check drain_balance().

"Insufficient allowance" → Run drain_approve().

"Channel not found" → channelId is wrong or channel was closed. Open new channel.

"Channel expired" → For drain_chat: Open a new channel. → For drain_close_channel: Expected. Proceed with close.

"Insufficient channel balance" → Channel deposit used up. Open new channel with more funds.

"Provider offline" → Use drain_providers() to find alternative provider.


Setup

1. Install
npm install -g drain-mcp
2. Create a Wallet (locally)

Generate a key on your own machine — nothing is sent over the network:

node -e "const w=require('ethers').Wallet.createRandom();console.log('Address:', w.address, '\nKey:', w.privateKey)"
3. Fund the Wallet

Send $1–5 USDC on Polygon Mainnet to your wallet address. Use a dedicated low-value wallet — never your main wallet.

No POL needed — if your wallet holds $5+ USDC, free gas is provided:

curl -X POST https://handshake58.com/api/gas-station \

-H "Content-Type: application/json" \ -d '{"address": "0x_your_wallet_address"}'

Returns 0.1 POL (~10K transactions). Sends only your public address.

4. Configure MCP Client
{

"mcpServers": { "drain": { "command": "drain-mcp", "env": { "DRAIN_PRIVATE_KEY": "0x..." } } } }

Environment Variables
VariableRequiredDefaultDescription
DRAIN_PRIVATE_KEYYes—Polygon wallet private key (also used for MPP/Tempo)
DRAIN_CHAIN_IDNo137137 (Polygon) or 80002 (Amoy testnet)
DRAIN_RPC_URLNoPublic RPCCustom Polygon RPC endpoint
DRAIN_MPP_MAX_DEPOSITNo1Max USDC per MPP session deposit

Security & Privacy

Key Handling

DRAIN_PRIVATE_KEY is loaded into memory by the local MCP process. It is used for:

  1. EIP-712 voucher signing for DRAIN channels (off-chain, no network call)
  2. On-chain transaction signing (signed locally, only the signature is broadcast)
  3. Tempo payment signing for MPP requests (handled by mppx, signed locally)

The key is never transmitted to any server. Providers verify signatures against on-chain state.

Spending Limits

DRAIN: Exposure is capped by the smart contract:

  • Maximum spend = channel deposit (you choose the amount)
  • Channel has a fixed duration (you choose)
  • After expiry, unspent funds are reclaimable via drain_close_channel

MPP: Each request is paid individually at the provider's advertised price. No pre-d

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기