@paylobster/mcp-server 1.3.0 → 1.5.0
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/BUILD_SUMMARY.md +294 -0
- package/CHANGELOG.md +77 -0
- package/COMPLETION_REPORT.md +284 -0
- package/INTEGRATION.md +286 -0
- package/QUICKSTART.md +226 -0
- package/README.md +232 -127
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +7 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +16 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/contracts.d.ts +15 -0
- package/dist/lib/contracts.d.ts.map +1 -0
- package/dist/lib/contracts.js +148 -0
- package/dist/lib/contracts.js.map +1 -0
- package/dist/lib/types.d.ts +39 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/{types/index.js → lib/types.js} +1 -1
- package/dist/lib/types.js.map +1 -0
- package/dist/resources/agent.d.ts +3 -0
- package/dist/resources/agent.d.ts.map +1 -0
- package/dist/resources/agent.js +36 -0
- package/dist/resources/agent.js.map +1 -0
- package/dist/resources/escrow.d.ts +3 -0
- package/dist/resources/escrow.d.ts.map +1 -0
- package/dist/resources/escrow.js +33 -0
- package/dist/resources/escrow.js.map +1 -0
- package/dist/resources/services.d.ts +2 -0
- package/dist/resources/services.d.ts.map +1 -0
- package/dist/resources/services.js +55 -0
- package/dist/resources/services.js.map +1 -0
- package/dist/server.d.ts +6 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +114 -834
- package/dist/server.js.map +1 -1
- package/dist/tools/agent.d.ts +17 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +51 -0
- package/dist/tools/agent.js.map +1 -0
- package/dist/tools/balance.d.ts +16 -5
- package/dist/tools/balance.d.ts.map +1 -1
- package/dist/tools/balance.js +44 -26
- package/dist/tools/balance.js.map +1 -1
- package/dist/tools/escrow.d.ts +31 -90
- package/dist/tools/escrow.d.ts.map +1 -1
- package/dist/tools/escrow.js +98 -215
- package/dist/tools/escrow.js.map +1 -1
- package/dist/tools/reputation.d.ts +15 -49
- package/dist/tools/reputation.d.ts.map +1 -1
- package/dist/tools/reputation.js +45 -107
- package/dist/tools/reputation.js.map +1 -1
- package/dist/tools/search.d.ts +30 -54
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +122 -85
- package/dist/tools/search.js.map +1 -1
- package/examples/test-server.ts +36 -0
- package/examples/test-tools.ts +64 -0
- package/package.json +20 -11
- package/src/__tests__/server.test.ts +24 -0
- package/src/index.ts +24 -0
- package/src/lib/config.ts +22 -0
- package/src/lib/contracts.ts +164 -0
- package/src/lib/types.ts +44 -0
- package/src/resources/agent.ts +40 -0
- package/src/resources/escrow.ts +35 -0
- package/src/resources/services.ts +53 -0
- package/src/server.ts +190 -0
- package/src/tools/agent.ts +56 -0
- package/src/tools/balance.ts +61 -0
- package/src/tools/escrow.ts +142 -0
- package/src/tools/reputation.ts +69 -0
- package/src/tools/search.ts +148 -0
- package/tsconfig.json +20 -0
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -86
- package/dist/cli.js.map +0 -1
- package/dist/resources/index.d.ts +0 -9
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js +0 -159
- package/dist/resources/index.js.map +0 -1
- package/dist/tools/bridge.d.ts +0 -142
- package/dist/tools/bridge.d.ts.map +0 -1
- package/dist/tools/bridge.js +0 -121
- package/dist/tools/bridge.js.map +0 -1
- package/dist/tools/cascade.d.ts +0 -59
- package/dist/tools/cascade.d.ts.map +0 -1
- package/dist/tools/cascade.js +0 -119
- package/dist/tools/cascade.js.map +0 -1
- package/dist/tools/compliance.d.ts +0 -36
- package/dist/tools/compliance.d.ts.map +0 -1
- package/dist/tools/compliance.js +0 -57
- package/dist/tools/compliance.js.map +0 -1
- package/dist/tools/credit.d.ts +0 -46
- package/dist/tools/credit.d.ts.map +0 -1
- package/dist/tools/credit.js +0 -102
- package/dist/tools/credit.js.map +0 -1
- package/dist/tools/disputes.d.ts +0 -71
- package/dist/tools/disputes.d.ts.map +0 -1
- package/dist/tools/disputes.js +0 -121
- package/dist/tools/disputes.js.map +0 -1
- package/dist/tools/intent.d.ts +0 -78
- package/dist/tools/intent.d.ts.map +0 -1
- package/dist/tools/intent.js +0 -192
- package/dist/tools/intent.js.map +0 -1
- package/dist/tools/portfolio.d.ts +0 -44
- package/dist/tools/portfolio.d.ts.map +0 -1
- package/dist/tools/portfolio.js +0 -166
- package/dist/tools/portfolio.js.map +0 -1
- package/dist/tools/revenue.d.ts +0 -42
- package/dist/tools/revenue.d.ts.map +0 -1
- package/dist/tools/revenue.js +0 -67
- package/dist/tools/revenue.js.map +0 -1
- package/dist/tools/streaming.d.ts +0 -60
- package/dist/tools/streaming.d.ts.map +0 -1
- package/dist/tools/streaming.js +0 -163
- package/dist/tools/streaming.js.map +0 -1
- package/dist/tools/swap.d.ts +0 -93
- package/dist/tools/swap.d.ts.map +0 -1
- package/dist/tools/swap.js +0 -150
- package/dist/tools/swap.js.map +0 -1
- package/dist/tools/treasury.d.ts +0 -169
- package/dist/tools/treasury.d.ts.map +0 -1
- package/dist/tools/treasury.js +0 -475
- package/dist/tools/treasury.js.map +0 -1
- package/dist/types/index.d.ts +0 -83
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/utils/contracts.d.ts +0 -552
- package/dist/utils/contracts.d.ts.map +0 -1
- package/dist/utils/contracts.js +0 -401
- package/dist/utils/contracts.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @paylobster/mcp-server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Model Context Protocol (MCP) server for PayLobster's agent payment infrastructure. This package allows any MCP-compatible AI agent framework to interact with PayLobster's on-chain payment and reputation system.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
## Features
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
- 🔍 **Service Discovery** - Search and browse AI agent services
|
|
8
|
+
- 💰 **Payment Management** - Check balances and manage escrows
|
|
9
|
+
- ⭐ **Reputation System** - Query agent reputation scores and trust metrics
|
|
10
|
+
- 🔗 **Blockchain Integration** - Direct interaction with Base mainnet and Sepolia contracts
|
|
11
|
+
- 🛠️ **MCP Compliance** - Standard protocol compatible with all major agent frameworks
|
|
9
12
|
|
|
10
13
|
## Installation
|
|
11
14
|
|
|
@@ -13,39 +16,41 @@ Enables any MCP-compatible agent framework (Claude Desktop, LangChain, AutoGen,
|
|
|
13
16
|
npm install @paylobster/mcp-server
|
|
14
17
|
```
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
### Running the Server
|
|
22
|
+
|
|
23
|
+
The server runs in stdio mode (standard MCP transport):
|
|
17
24
|
|
|
18
25
|
```bash
|
|
26
|
+
# Using mainnet (default)
|
|
19
27
|
npx @paylobster/mcp-server
|
|
20
|
-
```
|
|
21
28
|
|
|
22
|
-
|
|
29
|
+
# Using Sepolia testnet
|
|
30
|
+
PAYLOBSTER_NETWORK=sepolia npx @paylobster/mcp-server
|
|
31
|
+
|
|
32
|
+
# With custom RPC URL
|
|
33
|
+
PAYLOBSTER_RPC_URL=https://your-rpc.url npx @paylobster/mcp-server
|
|
34
|
+
```
|
|
23
35
|
|
|
24
|
-
###
|
|
36
|
+
### Configuration
|
|
25
37
|
|
|
26
|
-
|
|
38
|
+
Configure via environment variables:
|
|
27
39
|
|
|
28
40
|
```bash
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
export PAYLOBSTER_RPC_URL=https://base-rpc.publicnode.com
|
|
32
|
-
```
|
|
41
|
+
# Network selection
|
|
42
|
+
PAYLOBSTER_NETWORK=mainnet # or 'sepolia'
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
# Custom RPC endpoint (optional)
|
|
45
|
+
PAYLOBSTER_RPC_URL=https://mainnet.base.org
|
|
35
46
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"network": "mainnet",
|
|
39
|
-
"rpcUrl": "https://base-rpc.publicnode.com",
|
|
40
|
-
"wallet": {
|
|
41
|
-
"privateKey": "${PAYLOBSTER_PRIVATE_KEY}"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
47
|
+
# API base URL (optional)
|
|
48
|
+
PAYLOBSTER_API_URL=https://paylobster.com
|
|
44
49
|
```
|
|
45
50
|
|
|
46
|
-
###
|
|
51
|
+
### Using with Claude Desktop
|
|
47
52
|
|
|
48
|
-
Add to
|
|
53
|
+
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
49
54
|
|
|
50
55
|
```json
|
|
51
56
|
{
|
|
@@ -54,7 +59,6 @@ Add to `claude_desktop_config.json`:
|
|
|
54
59
|
"command": "npx",
|
|
55
60
|
"args": ["@paylobster/mcp-server"],
|
|
56
61
|
"env": {
|
|
57
|
-
"PAYLOBSTER_PRIVATE_KEY": "0x...",
|
|
58
62
|
"PAYLOBSTER_NETWORK": "mainnet"
|
|
59
63
|
}
|
|
60
64
|
}
|
|
@@ -62,162 +66,263 @@ Add to `claude_desktop_config.json`:
|
|
|
62
66
|
}
|
|
63
67
|
```
|
|
64
68
|
|
|
65
|
-
###
|
|
69
|
+
### Programmatic Usage
|
|
66
70
|
|
|
67
71
|
```typescript
|
|
68
|
-
import {
|
|
72
|
+
import { PayLobsterMCPServer } from '@paylobster/mcp-server';
|
|
69
73
|
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
const server = new PayLobsterMCPServer({
|
|
75
|
+
network: 'mainnet',
|
|
76
|
+
rpcUrl: 'https://mainnet.base.org',
|
|
73
77
|
});
|
|
74
78
|
|
|
75
|
-
|
|
79
|
+
await server.start();
|
|
76
80
|
```
|
|
77
81
|
|
|
78
|
-
|
|
82
|
+
## Available Tools
|
|
79
83
|
|
|
80
|
-
|
|
81
|
-
from crewai import Agent
|
|
82
|
-
from mcp import MCPClient
|
|
84
|
+
### `paylobster_get_reputation`
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
Get reputation score and trust metrics for any agent address.
|
|
85
87
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"address": "0x..."
|
|
91
|
+
}
|
|
90
92
|
```
|
|
91
93
|
|
|
92
|
-
|
|
94
|
+
Returns:
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"address": "0x...",
|
|
98
|
+
"reputation": {
|
|
99
|
+
"score": 4.5,
|
|
100
|
+
"trustVector": "12345",
|
|
101
|
+
"verified": true
|
|
102
|
+
},
|
|
103
|
+
"agentInfo": {
|
|
104
|
+
"name": "MyAgent",
|
|
105
|
+
"tokenId": "1",
|
|
106
|
+
"registered": true
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
93
110
|
|
|
94
|
-
|
|
95
|
-
|------|-------------|
|
|
96
|
-
| `register_agent` | Register agent identity on-chain |
|
|
97
|
-
| `search_services` | Find services by capability, category, or price |
|
|
98
|
-
| `create_escrow` | Create a payment escrow |
|
|
99
|
-
| `release_escrow` | Release funds from an escrow |
|
|
100
|
-
| `get_escrow` | Get escrow details |
|
|
101
|
-
| `list_escrows` | List escrows by creator or provider |
|
|
102
|
-
| `get_reputation` | Check agent reputation score |
|
|
103
|
-
| `get_balance` | Query USDC and credit balance |
|
|
111
|
+
### `paylobster_get_balance`
|
|
104
112
|
|
|
105
|
-
|
|
113
|
+
Check USDC balance for an address.
|
|
106
114
|
|
|
107
|
-
**Register an agent:**
|
|
108
115
|
```json
|
|
109
116
|
{
|
|
110
|
-
"
|
|
111
|
-
"capabilities": ["typescript", "react", "security"]
|
|
117
|
+
"address": "0x..."
|
|
112
118
|
}
|
|
113
119
|
```
|
|
114
120
|
|
|
115
|
-
|
|
121
|
+
Returns:
|
|
116
122
|
```json
|
|
117
123
|
{
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
|
|
121
|
-
"
|
|
122
|
-
"timeout": "P7D"
|
|
124
|
+
"address": "0x...",
|
|
125
|
+
"balance": {
|
|
126
|
+
"usdc": "100.50",
|
|
127
|
+
"raw": "100500000"
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
130
|
```
|
|
126
131
|
|
|
127
|
-
|
|
132
|
+
### `paylobster_get_agent`
|
|
133
|
+
|
|
134
|
+
Get agent identity information.
|
|
135
|
+
|
|
128
136
|
```json
|
|
129
137
|
{
|
|
130
|
-
"
|
|
131
|
-
"filters": {
|
|
132
|
-
"category": "development",
|
|
133
|
-
"maxPrice": "10.00",
|
|
134
|
-
"minReputation": 4.0
|
|
135
|
-
}
|
|
138
|
+
"address": "0x..."
|
|
136
139
|
}
|
|
137
140
|
```
|
|
138
141
|
|
|
139
|
-
|
|
142
|
+
Returns:
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"address": "0x...",
|
|
146
|
+
"name": "MyAgent",
|
|
147
|
+
"tokenId": "1",
|
|
148
|
+
"registered": true
|
|
149
|
+
}
|
|
150
|
+
```
|
|
140
151
|
|
|
141
|
-
|
|
142
|
-
|-----|-------------|
|
|
143
|
-
| `paylobster://agent/{address}` | Agent profile and reputation |
|
|
144
|
-
| `paylobster://escrow/{id}` | Escrow status and details |
|
|
145
|
-
| `paylobster://reputation/{address}` | Reputation metrics |
|
|
152
|
+
### `paylobster_list_escrows`
|
|
146
153
|
|
|
147
|
-
|
|
154
|
+
List all escrows for a given address.
|
|
148
155
|
|
|
149
|
-
```
|
|
150
|
-
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"address": "0x..."
|
|
159
|
+
}
|
|
160
|
+
```
|
|
151
161
|
|
|
152
|
-
|
|
153
|
-
network: 'mainnet',
|
|
154
|
-
rpcUrl: 'https://base-rpc.publicnode.com',
|
|
155
|
-
wallet: { privateKey: process.env.PAYLOBSTER_PRIVATE_KEY },
|
|
156
|
-
});
|
|
162
|
+
### `paylobster_get_escrow`
|
|
157
163
|
|
|
158
|
-
|
|
164
|
+
Get details for a specific escrow.
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"escrowId": "123"
|
|
169
|
+
}
|
|
159
170
|
```
|
|
160
171
|
|
|
172
|
+
### `paylobster_search_services`
|
|
173
|
+
|
|
174
|
+
Search for AI agent services (currently returns mock data).
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"query": "code review",
|
|
179
|
+
"category": "code-review",
|
|
180
|
+
"maxPrice": "50.00",
|
|
181
|
+
"minReputation": 4.0,
|
|
182
|
+
"limit": 20
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Available Resources
|
|
187
|
+
|
|
188
|
+
### `paylobster://services`
|
|
189
|
+
|
|
190
|
+
Browse the service catalog.
|
|
191
|
+
|
|
192
|
+
### `paylobster://agent/{address}`
|
|
193
|
+
|
|
194
|
+
Get agent profile and reputation.
|
|
195
|
+
|
|
196
|
+
### `paylobster://escrow/{id}`
|
|
197
|
+
|
|
198
|
+
Get escrow details by ID.
|
|
199
|
+
|
|
161
200
|
## Contract Addresses
|
|
162
201
|
|
|
163
202
|
### Base Mainnet
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
| Credit | `0xD9241Ce8a721Ef5fcCAc5A11983addC526eC80E1` |
|
|
170
|
-
| Escrow V3 | `0x49EdEe04c78B7FeD5248A20706c7a6c540748806` |
|
|
203
|
+
- Identity: `0xA174f250380c4B5C37F6709bBa719E662b77E662`
|
|
204
|
+
- Reputation: `0x02bb4c4cd10EeaCD04DF7631c81d6E7c1d0c4b29`
|
|
205
|
+
- Credit: `0xD924B81F2d8EFF3E0A3Bf0a4b9D77d37CC0980E1`
|
|
206
|
+
- Escrow: `0x49Ed7003C6941a033E7dD8b44552e4E18cf28806`
|
|
207
|
+
- USDC: `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`
|
|
171
208
|
|
|
172
209
|
### Base Sepolia
|
|
210
|
+
- Identity: `0x3dfA02Ed4F0e4F10E8031d7a4cB8Ea0bBbFbCB8c`
|
|
211
|
+
- Reputation: `0xb0033901e3b94f4F36dA0b3e59A1F4AD9f4f1697`
|
|
212
|
+
- Credit: `0xBA64e2b2F2a80D03A4B13b3396942C1e78205C7d`
|
|
213
|
+
- Escrow: `0x78D1f50a1965dE34f6b5a3D3546C94FE1809Cd82`
|
|
214
|
+
- USDC: `0x036CbD53842c5426634e7929541eC2318f3dCF7e`
|
|
173
215
|
|
|
174
|
-
|
|
175
|
-
|----------|---------|
|
|
176
|
-
| Identity | `0x3dfA02Ed4F0e4F10E8031d7a4cB8Ea0bBbFbCB8c` |
|
|
177
|
-
| Reputation | `0xb0033901e3b94f4F36dA0b3e59A1F4AD9f4f1697` |
|
|
178
|
-
| Credit | `0xBA64e2b2F2a80D03A4B13b3396942C1e78205C7d` |
|
|
179
|
-
| Escrow V3 | `0x78D1f50a1965dE34f6b5a3D3546C94FE1809Cd82` |
|
|
216
|
+
## Development
|
|
180
217
|
|
|
181
|
-
|
|
218
|
+
```bash
|
|
219
|
+
# Install dependencies
|
|
220
|
+
npm install
|
|
221
|
+
|
|
222
|
+
# Build
|
|
223
|
+
npm run build
|
|
224
|
+
|
|
225
|
+
# Run in development mode with auto-reload
|
|
226
|
+
npm run dev
|
|
227
|
+
|
|
228
|
+
# Run tests
|
|
229
|
+
npm test
|
|
182
230
|
|
|
231
|
+
# Lint
|
|
232
|
+
npm run lint
|
|
183
233
|
```
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
│ - Smart Contracts │
|
|
199
|
-
│ - USDC Payments │
|
|
200
|
-
└─────────────────────────────┘
|
|
234
|
+
|
|
235
|
+
## Error Handling
|
|
236
|
+
|
|
237
|
+
All errors follow this structure:
|
|
238
|
+
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"error": {
|
|
242
|
+
"code": "ERR_INVALID_INPUT",
|
|
243
|
+
"message": "Human-readable error message",
|
|
244
|
+
"details": {},
|
|
245
|
+
"retryable": false
|
|
246
|
+
}
|
|
247
|
+
}
|
|
201
248
|
```
|
|
202
249
|
|
|
203
|
-
|
|
250
|
+
Common error codes:
|
|
251
|
+
- `ERR_INVALID_INPUT` - Invalid parameters (not retryable)
|
|
252
|
+
- `ERR_NETWORK_ERROR` - RPC/network failure (retryable)
|
|
253
|
+
- `ERR_RESOURCE_NOT_FOUND` - Resource doesn't exist (not retryable)
|
|
254
|
+
- `ERR_UNKNOWN_TOOL` - Tool not found (not retryable)
|
|
204
255
|
|
|
205
|
-
|
|
256
|
+
## Framework Integration
|
|
206
257
|
|
|
207
|
-
|
|
258
|
+
### LangChain
|
|
208
259
|
|
|
209
|
-
|
|
260
|
+
```typescript
|
|
261
|
+
import { MCPToolkit } from '@langchain/community/agent_toolkits/mcp';
|
|
210
262
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
263
|
+
const toolkit = new MCPToolkit({
|
|
264
|
+
serverCommand: 'npx',
|
|
265
|
+
serverArgs: ['@paylobster/mcp-server'],
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
const tools = await toolkit.getTools();
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### OpenAI Agents SDK
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
import { Agent } from '@openai/agents-sdk';
|
|
275
|
+
import { PayLobsterMCPServer } from '@paylobster/mcp-server';
|
|
276
|
+
|
|
277
|
+
const paylobster = new PayLobsterMCPServer({ network: 'mainnet' });
|
|
278
|
+
await paylobster.start();
|
|
279
|
+
|
|
280
|
+
const agent = new Agent({
|
|
281
|
+
model: 'gpt-4',
|
|
282
|
+
tools: paylobster.getTools(),
|
|
283
|
+
});
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Architecture
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
┌─────────────────────────────────┐
|
|
290
|
+
│ Agent Framework │
|
|
291
|
+
│ (Claude, GPT, LangChain, etc.) │
|
|
292
|
+
└───────────┬─────────────────────┘
|
|
293
|
+
│ MCP Protocol (stdio)
|
|
294
|
+
┌───────────▼─────────────────────┐
|
|
295
|
+
│ PayLobster MCP Server │
|
|
296
|
+
│ ┌──────────────────────────┐ │
|
|
297
|
+
│ │ Tool Handlers │ │
|
|
298
|
+
│ │ Resource Handlers │ │
|
|
299
|
+
│ └───────┬──────────────────┘ │
|
|
300
|
+
│ │ │
|
|
301
|
+
│ ┌───────▼──────────────────┐ │
|
|
302
|
+
│ │ Viem Client │ │
|
|
303
|
+
│ │ (Contract Interactions) │ │
|
|
304
|
+
│ └──────────────────────────┘ │
|
|
305
|
+
└───────────┬─────────────────────┘
|
|
306
|
+
│
|
|
307
|
+
┌───────────▼─────────────────────┐
|
|
308
|
+
│ Base Blockchain │
|
|
309
|
+
│ Smart Contracts (V3) │
|
|
310
|
+
└─────────────────────────────────┘
|
|
311
|
+
```
|
|
216
312
|
|
|
217
313
|
## License
|
|
218
314
|
|
|
219
|
-
MIT
|
|
315
|
+
MIT
|
|
316
|
+
|
|
317
|
+
## Links
|
|
318
|
+
|
|
319
|
+
- [PayLobster Website](https://paylobster.com)
|
|
320
|
+
- [Documentation](https://docs.paylobster.com)
|
|
321
|
+
- [GitHub](https://github.com/paylobster/paylobster)
|
|
322
|
+
- [MCP Specification](https://modelcontextprotocol.io)
|
|
220
323
|
|
|
221
|
-
|
|
324
|
+
## Support
|
|
222
325
|
|
|
223
|
-
|
|
326
|
+
For issues and questions:
|
|
327
|
+
- GitHub Issues: https://github.com/paylobster/paylobster/issues
|
|
328
|
+
- Discord: https://discord.gg/paylobster
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export {};
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const server_js_1 = require("./server.js");
|
|
5
|
+
async function main() {
|
|
6
|
+
const server = new server_js_1.PayLobsterMCPServer();
|
|
7
|
+
await server.start();
|
|
8
|
+
// Handle graceful shutdown
|
|
9
|
+
process.on('SIGINT', () => {
|
|
10
|
+
console.error('Shutting down...');
|
|
11
|
+
process.exit(0);
|
|
12
|
+
});
|
|
13
|
+
process.on('SIGTERM', () => {
|
|
14
|
+
console.error('Shutting down...');
|
|
15
|
+
process.exit(0);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
main().catch((error) => {
|
|
19
|
+
console.error('Fatal error:', error);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
});
|
|
6
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,2CAAkD;AAElD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,+BAAmB,EAAE,CAAC;IACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,SAAS,IAAI,eAAe,CAa3C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfig = getConfig;
|
|
4
|
+
function getConfig() {
|
|
5
|
+
const network = (process.env.PAYLOBSTER_NETWORK || 'mainnet');
|
|
6
|
+
const defaultRpcUrls = {
|
|
7
|
+
mainnet: 'https://mainnet.base.org',
|
|
8
|
+
sepolia: 'https://sepolia.base.org',
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
network,
|
|
12
|
+
rpcUrl: process.env.PAYLOBSTER_RPC_URL || defaultRpcUrls[network],
|
|
13
|
+
apiUrl: process.env.PAYLOBSTER_API_URL || 'https://paylobster.com',
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";;AAQA,8BAaC;AAbD,SAAgB,SAAS;IACvB,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAA0B,CAAC;IAEvF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,0BAA0B;KACpC,CAAC;IAEF,OAAO;QACL,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,cAAc,CAAC,OAAO,CAAC;QACjE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,wBAAwB;KACnE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Address } from 'viem';
|
|
2
|
+
import type { MCPServerConfig } from './config.js';
|
|
3
|
+
import type { AgentInfo, ReputationData, EscrowData } from './types.js';
|
|
4
|
+
export declare class ContractsClient {
|
|
5
|
+
private publicClient;
|
|
6
|
+
private contracts;
|
|
7
|
+
constructor(config: MCPServerConfig);
|
|
8
|
+
getAgentInfo(address: Address): Promise<AgentInfo>;
|
|
9
|
+
getReputation(address: Address): Promise<ReputationData>;
|
|
10
|
+
getBalance(address: Address): Promise<bigint>;
|
|
11
|
+
getEscrow(escrowId: bigint): Promise<EscrowData>;
|
|
12
|
+
getUserTransactionCount(address: Address): Promise<bigint>;
|
|
13
|
+
getContractAddress(name: 'IDENTITY' | 'REPUTATION' | 'CREDIT' | 'ESCROW' | 'USDC'): Address;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/lib/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiFxE,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,SAAS,CAAC;gBAEN,MAAM,EAAE,eAAe;IAU7B,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAelD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAcxD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBhD,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhE,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;CAG5F"}
|