mpp32-mcp-server 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +190 -78
- package/dist/index.js +0 -1
- package/package.json +13 -3
- package/dist/index.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 MPP32
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,26 +1,69 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">MPP32</h1>
|
|
3
|
+
<p align="center"><strong>Universal Payment Proxy for Machine-Payable APIs</strong></p>
|
|
4
|
+
<p align="center">
|
|
5
|
+
<a href="https://www.npmjs.com/package/mpp32-mcp-server"><img src="https://img.shields.io/npm/v/mpp32-mcp-server.svg?style=flat-square&color=0052FF" alt="npm version"></a>
|
|
6
|
+
<a href="https://www.npmjs.com/package/mpp32-mcp-server"><img src="https://img.shields.io/npm/dm/mpp32-mcp-server.svg?style=flat-square&color=0052FF" alt="npm downloads"></a>
|
|
7
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-0052FF.svg?style=flat-square" alt="License: MIT"></a>
|
|
8
|
+
<a href="https://mpp32.org"><img src="https://img.shields.io/badge/Website-mpp32.org-0052FF?style=flat-square" alt="Website"></a>
|
|
9
|
+
</p>
|
|
10
|
+
</p>
|
|
2
11
|
|
|
3
|
-
|
|
12
|
+
---
|
|
4
13
|
|
|
5
|
-
|
|
14
|
+
**MCP server that gives AI agents the ability to discover, pay for, and consume APIs autonomously.**
|
|
6
15
|
|
|
7
|
-
|
|
16
|
+
One integration. Five payment protocols. Instant settlement. No subscriptions, no API keys, no checkout screens — just agents paying for what they use.
|
|
8
17
|
|
|
9
|
-
|
|
18
|
+
---
|
|
10
19
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
## Why MPP32
|
|
21
|
+
|
|
22
|
+
The agent economy needs a payment layer. Today, agents can browse the web and call APIs — but they can't pay for premium data or services without a human setting up accounts and credentials for each provider.
|
|
23
|
+
|
|
24
|
+
MPP32 solves this. It's a universal proxy that sits between agents and API providers, handling payment negotiation across **five protocols** so neither side has to implement the others:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
|
|
28
|
+
│ AI Agent │ ──────> │ MPP32 │ ──────> │ API Provider │
|
|
29
|
+
│ (Claude, │ 402 │ Payment │ paid │ (Data, Intel, │
|
|
30
|
+
│ GPT, etc.) │ <────── │ Proxy │ <────── │ Services) │
|
|
31
|
+
│ │ retry │ │ response│ │
|
|
32
|
+
│ │ ──────> │ ✓ verified │ ──────> │ │
|
|
33
|
+
└─────────────┘ └─────────────┘ └──────────────────┘
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**For agents:** Pay-per-call access to any API in the ecosystem. No accounts. No subscriptions.
|
|
37
|
+
|
|
38
|
+
**For providers:** List once, get paid via any protocol. No payment integration needed.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Supported Payment Protocols
|
|
43
|
+
|
|
44
|
+
| Protocol | Type | Settlement | Network | Speed |
|
|
45
|
+
|:---------|:-----|:-----------|:--------|:------|
|
|
46
|
+
| **x402** | Payment | USDC | Solana Mainnet | ~200ms |
|
|
47
|
+
| **Tempo** | Payment | pathUSD | Ethereum L2 | ~500ms |
|
|
48
|
+
| **ACP** | Payment | Checkout sessions | Multi-chain | Session-based |
|
|
49
|
+
| **AP2** | Authorization | W3C Verifiable Credentials | Chain-agnostic | Instant |
|
|
50
|
+
| **AGTP** | Identity | HMAC-signed agent certs | Chain-agnostic | Instant |
|
|
51
|
+
|
|
52
|
+
All five protocols are accepted on every endpoint. Agents choose their preferred method. MPP32 handles verification and settlement.
|
|
53
|
+
|
|
54
|
+
---
|
|
18
55
|
|
|
19
56
|
## Quick Start
|
|
20
57
|
|
|
21
|
-
###
|
|
58
|
+
### Install
|
|
22
59
|
|
|
23
|
-
|
|
60
|
+
```bash
|
|
61
|
+
npx mpp32-mcp-server
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Claude Desktop & Claude Code
|
|
65
|
+
|
|
66
|
+
Add to your MCP configuration file:
|
|
24
67
|
|
|
25
68
|
```json
|
|
26
69
|
{
|
|
@@ -29,112 +72,181 @@ Add to your MCP configuration:
|
|
|
29
72
|
"command": "npx",
|
|
30
73
|
"args": ["mpp32-mcp-server"],
|
|
31
74
|
"env": {
|
|
32
|
-
"MPP32_SOLANA_PRIVATE_KEY": "your-solana-private-key"
|
|
75
|
+
"MPP32_SOLANA_PRIVATE_KEY": "your-solana-private-key-for-usdc-payments"
|
|
33
76
|
}
|
|
34
77
|
}
|
|
35
78
|
}
|
|
36
79
|
}
|
|
37
80
|
```
|
|
38
81
|
|
|
39
|
-
### Other MCP Clients
|
|
82
|
+
### Cursor, Windsurf, and Other MCP Clients
|
|
40
83
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
84
|
+
Same configuration format — add `mpp32` to your MCP server list with at least one payment key.
|
|
85
|
+
|
|
86
|
+
---
|
|
44
87
|
|
|
45
88
|
## Tools
|
|
46
89
|
|
|
90
|
+
This server exposes three tools that any MCP-compatible agent can call:
|
|
91
|
+
|
|
47
92
|
### `list_mpp32_services`
|
|
48
93
|
|
|
49
|
-
Browse
|
|
94
|
+
**Browse the API marketplace.** Returns all registered services with names, categories, pricing, and proxy URLs.
|
|
50
95
|
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
|
|
96
|
+
```typescript
|
|
97
|
+
// Example: find all crypto data providers
|
|
98
|
+
{ category: "token-scanner" }
|
|
99
|
+
|
|
100
|
+
// Returns:
|
|
101
|
+
// - MPP32 Solana Intelligence Oracle ($0.008/query)
|
|
102
|
+
// - ... more services as providers register
|
|
54
103
|
```
|
|
55
104
|
|
|
105
|
+
> **30+ categories:** ai-inference, token-scanner, price-oracle, web-search, trading-signal, defi-analytics, wallet-intelligence, on-chain-data, market-data, image-generation, embeddings, and more.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
56
109
|
### `get_solana_token_intelligence`
|
|
57
110
|
|
|
58
|
-
|
|
111
|
+
**Real-time Solana token analysis.** Aggregates data from DexScreener, Jupiter, and CoinGecko into a single intelligence report.
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
{ token: "BONK" }
|
|
115
|
+
// or
|
|
116
|
+
{ token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" }
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Returns:**
|
|
120
|
+
|
|
121
|
+
| Field | Description |
|
|
122
|
+
|:------|:------------|
|
|
123
|
+
| Alpha Score | 0-100 trading viability assessment |
|
|
124
|
+
| Rug Risk | Score + level + contributing factors |
|
|
125
|
+
| Whale Activity | Volume-to-liquidity ratio with buy/sell breakdown |
|
|
126
|
+
| Smart Money Signals | Pattern detection from transaction data |
|
|
127
|
+
| Pump Probability | Statistical 24h price movement prediction |
|
|
128
|
+
| Projected ROI | Low/high scenarios with timeframe |
|
|
129
|
+
| Market Data | Price, volume, liquidity, market cap, pair age |
|
|
59
130
|
|
|
60
|
-
|
|
61
|
-
- **Rug Risk Score** — liquidity, age, holder distribution analysis
|
|
62
|
-
- **Whale Activity** — volume-to-liquidity ratio tracking
|
|
63
|
-
- **Smart Money Signals** — real-time pattern detection
|
|
64
|
-
- **24h Pump Probability** — statistical price movement prediction
|
|
65
|
-
- **Projected ROI** — low/high scenario modeling
|
|
66
|
-
- **Full Market Data** — price, volume, liquidity, market cap
|
|
131
|
+
**Pricing:** $0.008 per query. M32 token holders receive automatic discounts (20% at 250K, 40% at 1M tokens).
|
|
67
132
|
|
|
68
|
-
|
|
133
|
+
---
|
|
69
134
|
|
|
70
135
|
### `call_mpp32_endpoint`
|
|
71
136
|
|
|
72
|
-
Call any
|
|
137
|
+
**Call any API in the ecosystem.** Handles the complete HTTP 402 payment flow automatically:
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
{
|
|
141
|
+
slug: "mpp32-intelligence",
|
|
142
|
+
method: "POST",
|
|
143
|
+
body: "{\"token\": \"SOL\"}"
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Payment flow (fully automatic):**
|
|
148
|
+
|
|
149
|
+
1. Sends request to the MPP32 proxy
|
|
150
|
+
2. Receives HTTP 402 with payment challenge headers
|
|
151
|
+
3. Selects best available payment protocol
|
|
152
|
+
4. Signs transaction with your configured key
|
|
153
|
+
5. Retries request with payment receipt attached
|
|
154
|
+
6. Returns the API response to your agent
|
|
73
155
|
|
|
74
|
-
|
|
75
|
-
2. Sends the initial request
|
|
76
|
-
3. Receives the HTTP 402 payment challenge
|
|
77
|
-
4. Completes payment via Tempo or x402
|
|
78
|
-
5. Retries with payment receipt
|
|
79
|
-
6. Returns the response
|
|
156
|
+
No manual payment logic. No API keys to manage. No accounts to create.
|
|
80
157
|
|
|
81
|
-
|
|
158
|
+
---
|
|
82
159
|
|
|
83
160
|
## Configuration
|
|
84
161
|
|
|
85
|
-
|
|
|
86
|
-
|
|
87
|
-
| `MPP32_SOLANA_PRIVATE_KEY` |
|
|
88
|
-
| `MPP32_PRIVATE_KEY` |
|
|
89
|
-
| `MPP32_API_URL` | No |
|
|
162
|
+
| Variable | Required | Description |
|
|
163
|
+
|:---------|:---------|:------------|
|
|
164
|
+
| `MPP32_SOLANA_PRIVATE_KEY` | Recommended | Solana private key for **x402** payments (USDC). Fastest settlement (~200ms). |
|
|
165
|
+
| `MPP32_PRIVATE_KEY` | Alternative | EVM private key for **Tempo** payments (pathUSD on Ethereum L2). |
|
|
166
|
+
| `MPP32_API_URL` | No | Override the API base URL. Default: `https://mpp32.org` |
|
|
90
167
|
|
|
91
|
-
|
|
168
|
+
> **Security:** Private keys are used locally to sign payment transactions. They are never transmitted to MPP32 servers. The MCP server runs on your machine.
|
|
92
169
|
|
|
93
|
-
|
|
170
|
+
Set at least one payment key. Set both for maximum protocol compatibility and automatic fallback.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Architecture
|
|
94
175
|
|
|
95
176
|
```
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
177
|
+
┌─────────────────────────────────────┐
|
|
178
|
+
│ MPP32 Platform │
|
|
179
|
+
│ │
|
|
180
|
+
┌──────────┐ HTTP │ ┌───────────┐ ┌──────────────┐ │ HTTP ┌──────────────┐
|
|
181
|
+
│ │ ──────────> │ │ Payment │ │ Provider │ │ ────────> │ │
|
|
182
|
+
│ MCP │ 402 │ │ Middleware │───>│ Registry │ │ │ Upstream │
|
|
183
|
+
│ Server │ <────────── │ │ │ │ │ │ │ API │
|
|
184
|
+
│ (this) │ + key │ │ x402 │ │ Verification │ │ <──────── │ Provider │
|
|
185
|
+
│ │ ──────────> │ │ Tempo │ │ 24h re-check │ │ │ │
|
|
186
|
+
│ │ 200 │ │ ACP │ │ 3-strike │ │ │ │
|
|
187
|
+
│ │ <────────── │ │ AP2 │ │ suspension │ │ └──────────────┘
|
|
188
|
+
└──────────┘ │ │ AGTP │ └──────────────┘ │
|
|
189
|
+
│ └───────────┘ │
|
|
190
|
+
│ │
|
|
191
|
+
│ ┌───────────────────────────────┐ │
|
|
192
|
+
│ │ Discovery Layer │ │
|
|
193
|
+
│ │ OpenAPI 3.1 · A2A Agent Card │ │
|
|
194
|
+
│ │ MCP Config · Service Directory│ │
|
|
195
|
+
│ └───────────────────────────────┘ │
|
|
196
|
+
└─────────────────────────────────────┘
|
|
112
197
|
```
|
|
113
198
|
|
|
114
|
-
|
|
199
|
+
**Payment verification is real.** x402 payments are verified on-chain via the Solana facilitator. Tempo payments are verified cryptographically via the mppx SDK. ACP sessions are database-backed with checkout flow. AP2 mandates use ECDSA P-256 signature verification. AGTP requires HMAC-SHA256 signed agent certificates.
|
|
200
|
+
|
|
201
|
+
---
|
|
115
202
|
|
|
116
|
-
## Discovery
|
|
203
|
+
## Discovery & Interoperability
|
|
117
204
|
|
|
118
|
-
MPP32
|
|
205
|
+
MPP32 implements standard discovery protocols so any agent framework can find and integrate with the ecosystem:
|
|
119
206
|
|
|
120
|
-
|
|
|
121
|
-
|
|
122
|
-
| OpenAPI 3.1 | `https://mpp32.org/openapi.json
|
|
123
|
-
| A2A Agent Card | `https://mpp32.org/.well-known/agent.json
|
|
124
|
-
| MCP Config | `https://mpp32.org/api/mcp-config
|
|
125
|
-
| Service Directory | `https://mpp32.org/api/submissions
|
|
207
|
+
| Standard | Endpoint | Purpose |
|
|
208
|
+
|:---------|:---------|:--------|
|
|
209
|
+
| **OpenAPI 3.1** | [`/openapi.json`](https://mpp32.org/openapi.json) | Full API specification with payment metadata |
|
|
210
|
+
| **A2A Agent Card** | [`/.well-known/agent.json`](https://mpp32.org/.well-known/agent.json) | Agent-to-agent capability discovery |
|
|
211
|
+
| **MCP Config** | [`/api/mcp-config`](https://mpp32.org/api/mcp-config) | Model Context Protocol server configuration |
|
|
212
|
+
| **Service Directory** | [`/api/submissions`](https://mpp32.org/api/submissions) | Live registry of all API providers |
|
|
213
|
+
|
|
214
|
+
Every paid endpoint returns HTTP 402 with challenge headers for all active protocols, enabling any compliant agent to complete payment regardless of which protocol it implements.
|
|
215
|
+
|
|
216
|
+
---
|
|
126
217
|
|
|
127
218
|
## For API Providers
|
|
128
219
|
|
|
129
|
-
|
|
220
|
+
**Register your API once. Get paid via five protocols automatically.**
|
|
221
|
+
|
|
222
|
+
MPP32 acts as a reverse proxy — you provide the endpoint, we handle:
|
|
223
|
+
|
|
224
|
+
- Payment negotiation and verification across all 5 protocols
|
|
225
|
+
- Endpoint health monitoring with 24-hour re-verification
|
|
226
|
+
- Discovery listing via OpenAPI, A2A, and MCP standards
|
|
227
|
+
- Analytics dashboard with query counts, revenue, and latency metrics
|
|
228
|
+
- USDC and pathUSD settlement to your wallet
|
|
229
|
+
|
|
230
|
+
Register at **[mpp32.org/build](https://mpp32.org/build)**.
|
|
231
|
+
|
|
232
|
+
---
|
|
130
233
|
|
|
131
234
|
## Links
|
|
132
235
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
236
|
+
| Resource | URL |
|
|
237
|
+
|:---------|:----|
|
|
238
|
+
| Website | [mpp32.org](https://mpp32.org) |
|
|
239
|
+
| Documentation | [mpp32.org/docs](https://mpp32.org/docs) |
|
|
240
|
+
| API Playground | [mpp32.org/playground](https://mpp32.org/playground) |
|
|
241
|
+
| Ecosystem | [mpp32.org/ecosystem](https://mpp32.org/ecosystem) |
|
|
242
|
+
| Use Cases | [mpp32.org/use-cases](https://mpp32.org/use-cases) |
|
|
243
|
+
| GitHub | [github.com/MPP32/MPP32](https://github.com/MPP32/MPP32) |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
<p align="center">
|
|
248
|
+
<strong>MPP32</strong> — The payment layer for the agent economy.
|
|
249
|
+
</p>
|
|
138
250
|
|
|
139
251
|
## License
|
|
140
252
|
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mpp32-mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "MCP server for MPP32 — Universal Payment Proxy for Machine-Payable APIs. Lets AI agents discover, pay for, and call APIs across 5 payment protocols.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"mpp32-mcp-server": "./dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
10
17
|
"files": [
|
|
11
|
-
"dist",
|
|
12
|
-
"
|
|
18
|
+
"dist/**/*.js",
|
|
19
|
+
"dist/**/*.d.ts",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
13
22
|
],
|
|
23
|
+
"sideEffects": false,
|
|
14
24
|
"scripts": {
|
|
15
25
|
"build": "tsc",
|
|
16
26
|
"start": "node dist/index.js",
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|