payflowagent-mcp
# PayFlowAgent — MCP server & reference agent
Pay-per-call APIs for autonomous AI agents. **USDC via x402**, no signup.
**MCP registry name:** `io.github.Coinlooter/mcp`
- **Hub (catalog):** [payflowagent.net](https://payflowagent.net)
- **nad.fun intelligence:** [nad.payflowagent.net](https://nad.payflowagent.net)
- **DeFi datafeed:** [data.payflowagent.net](https://data.payflowagent.net)
- **npm:** [`payflowagent-mcp@0.1.3`](https://www.npmjs.com/package/payflowagent-mcp)
This repository contains the open-source integration pieces:
| Path | What |
|------|------|
| `/` (root) | **`payflowagent-mcp`** — MCP server for Cursor, Claude Desktop, and custom agents. |
| `examples/screen-bot/` | Reference polling bot: finds high-score nad.fun tokens every few minutes. |
> The scoring APIs run on PayFlowAgent infrastructure; this repo is the client surface
> so agents and developers can integrate in one step.
## Tools (MCP)
### nad.fun (Monad)
| Tool | Price | Description |
|------|-------|-------------|
| `score_token` | free | 0–100 score, `riskLevel`, `action` (rate-limited). |
| `decide_token` | x402 | Full report: factors, graduation, momentum. |
| `token_summary` | x402 | Graduation progress + momentum (cheap entry). |
| `screen_tokens` | x402 | Ranked list of pre-scored fresh tokens. |
### Datafeed (DeFiLlama)
| Tool | Price | Description |
|------|-------|-------------|
| `sample_yields` | free | Top yield pools + 3-item opportunity preview (score + reasons). |
| `yield_opportunities` | x402 | Ranked yield picks with risk score & explainable reasons. |
## Install (one line)
```bash
npx -y payflowagent-mcp@0.1.3
```
## Use it in Cursor
`~/.cursor/mcp.json` (or project `.cursor/mcp.json`):
```json
{
"mcpServers": {
"payflowagent": {
"command": "npx",
"args": ["-y", "payflowagent-mcp@0.1.3"],
"env": {
"PAYFLOWAGENT_API_BASE": "https://nad.payflowagent.net",
"PAYFLOWAGENT_DATAFEED_BASE": "https://data.payflowagent.net"
}
}
}
}
```
## Use it in Claude Desktop
Same config as Cursor (Settings → Developer → MCP Servers).
Without `X402_BUYER_PRIVATE_KEY` only free tools work (`score_token`, `sample_yields`).
Use a **dedicated** payer wallet (Base, USDC) — never your main wallet.
### Configuration (env)
| Variable | Default | Purpose |
|----------|---------|---------|
| `PAYFLOWAGENT_API_BASE` | `https://nad.payflowagent.net` | nad.fun API base URL. |
| `PAYFLOWAGENT_DATAFEED_BASE` | `https://data.payflowagent.net` | Datafeed API base URL. |
| `X402_BUYER_PRIVATE_KEY` | — | Payer wallet key (Base, USDC). Enables paid tools. |
| `X402_BUYER_RPC` | `https://mainnet.base.org` | Payment RPC (optional). |
## MCP Registry
After npm publish, list in the official registry:
```bash
npm install -g @modelcontextprotocol/publisher
cd payflowagent-mcp
mcp-publisher login github
mcp-publisher publish
```
Manifest: `server.json` (`io.github.Coinlooter/mcp`).
## Reference agent
See [`examples/screen-bot`](examples/screen-bot) — polls `/v1/screen` every few
minutes, de-duplicates, and alerts on new high-score tokens (optional webhook).
Fork it and point it at your own trading logic.
## Develop locally
```bash
npm install
npm run typecheck
npm run build # emits dist/
npm start # stdio server from source (tsx)
```
## Publish to npm
```bash
npm run build
npm publish
```
## License
MIT — see [LICENSE](LICENSE).
TDQS
Scored across 6 tools
Tools are mostly distinct with clear paywall segregation. However, decide_token, score_token, and token_summary all target a single token with overlapping information, risking confusion if descriptions are not read carefully.
Naming pattern is mixed: four tools use verb_noun (decide_token, sample_yields, score_token, screen_tokens) while two use noun_noun (token_summary, yield_opportunities). Also, pluralization varies (yields vs. token/tokens).
Six tools is an appropriate size for a DeFi analysis server, covering both token and yield domains without being overwhelming or sparse.
Core token analysis (score, summary, full report, screening) and yield opportunities (sample and full) are covered. Minor gaps like drill-down on a specific yield opportunity exist, but the surface is adequate for the stated purpose.