coinopai-mcp 1.2.4 → 1.2.5
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/README.md +2 -2
- package/index.js +17 -8
- package/package.json +2 -2
- package/server.json +3 -3
package/README.md
CHANGED
|
@@ -177,7 +177,7 @@ Not currently listed on Smithery. Use the `npx` install flow shown above until a
|
|
|
177
177
|
|
|
178
178
|
### Registry status
|
|
179
179
|
|
|
180
|
-
|
|
180
|
+
Prepared MCP Registry identity: `io.github.forgemeshlabs/coinopai-mcp`. Refresh the public directory submission after publishing this package so old `clawdbotworker` entries stop being canonical.
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
@@ -314,7 +314,7 @@ Infrastructure for monetized agent ecosystems.
|
|
|
314
314
|
|---------|------|---------|
|
|
315
315
|
| [affiliate-router-mcp](https://github.com/forgemeshlabs/affiliate-router-mcp) | Vendor-neutral monetization routing | `npm i affiliate-router-mcp` |
|
|
316
316
|
| **coinopai-mcp** | Paid crypto intelligence (this package) | `npm i coinopai-mcp` |
|
|
317
|
-
| [
|
|
317
|
+
| [forgemesh-imagegen](https://github.com/forgemeshlabs/imagegen-mcp) | Paid image generation MCP | `npm i forgemesh-imagegen` |
|
|
318
318
|
|
|
319
319
|
Each package works standalone. No shared dependency required.
|
|
320
320
|
|
package/index.js
CHANGED
|
@@ -25,8 +25,10 @@ const USDC_ABI = parseAbi([
|
|
|
25
25
|
]);
|
|
26
26
|
// Paths with registered Pyrimid product IDs — other paths fall back to standard x402
|
|
27
27
|
const PYRIMID_PRODUCTS = {
|
|
28
|
-
"/api/kronos/signals":
|
|
29
|
-
"/api/kronos/decision":
|
|
28
|
+
"/api/kronos/signals": { productId: 1n, priceUsdc: 50000n },
|
|
29
|
+
"/api/kronos/decision": { productId: 2n, priceUsdc: 150000n },
|
|
30
|
+
"/api/kronos/preflight": { productId: 4n, priceUsdc: 50000n },
|
|
31
|
+
"/api/kronos/audit": { productId: 5n, priceUsdc: 70000n },
|
|
30
32
|
};
|
|
31
33
|
const IMAGEGEN_URL = "https://imagegen.coinopai.com";
|
|
32
34
|
const PYRIMID_PRODUCTS_IMAGEGEN = {
|
|
@@ -141,8 +143,9 @@ const sleep = (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
141
143
|
|
|
142
144
|
// Pyrimid affiliate flow — approve + routePayment on-chain, then retry with tx hash
|
|
143
145
|
async function callPyrimid(account, path, affiliateId, baseUrl, products) {
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
+
const pathname = new URL(path, baseUrl).pathname;
|
|
147
|
+
const product = products[pathname];
|
|
148
|
+
if (!product) throw new Error(`No Pyrimid product registered for ${pathname}`);
|
|
146
149
|
const url = baseUrl + path;
|
|
147
150
|
const transport = http();
|
|
148
151
|
const publicClient = createPublicClient({ chain: base, transport });
|
|
@@ -175,10 +178,16 @@ async function callPaid(ctx, path, affiliateId, opts = {}) {
|
|
|
175
178
|
const { httpClient, account } = ctx;
|
|
176
179
|
const baseUrl = opts.baseUrl || BASE_URL;
|
|
177
180
|
const pyrimidProducts = opts.pyrimidProducts || PYRIMID_PRODUCTS;
|
|
181
|
+
const pathname = new URL(path, baseUrl).pathname;
|
|
178
182
|
|
|
179
|
-
// Use Pyrimid affiliate flow when affiliate_id present and product is registered
|
|
180
|
-
if
|
|
181
|
-
|
|
183
|
+
// Use Pyrimid affiliate flow when affiliate_id present and product is registered.
|
|
184
|
+
// Fall back to direct x402 if the affiliate route is unavailable or not yet cataloged.
|
|
185
|
+
if (affiliateId && pyrimidProducts[pathname]) {
|
|
186
|
+
try {
|
|
187
|
+
return await callPyrimid(account, path, affiliateId, baseUrl, pyrimidProducts);
|
|
188
|
+
} catch (_) {
|
|
189
|
+
affiliateId = null;
|
|
190
|
+
}
|
|
182
191
|
}
|
|
183
192
|
|
|
184
193
|
// Standard x402 EIP-3009 flow
|
|
@@ -220,7 +229,7 @@ async function main() {
|
|
|
220
229
|
}
|
|
221
230
|
|
|
222
231
|
const server = new Server(
|
|
223
|
-
{ name: "coinopai-mcp", version: "1.2.
|
|
232
|
+
{ name: "coinopai-mcp", version: "1.2.5" },
|
|
224
233
|
{ capabilities: { tools: {} } }
|
|
225
234
|
);
|
|
226
235
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coinopai-mcp",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"mcpName": "io.github.
|
|
3
|
+
"version": "1.2.5",
|
|
4
|
+
"mcpName": "io.github.forgemeshlabs/coinopai-mcp",
|
|
5
5
|
"description": "MCP server for CoinOpAI — agent automation prompts and crypto signals via x402 micropayments on Base",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|
package/server.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
-
"name": "io.github.
|
|
3
|
+
"name": "io.github.forgemeshlabs/coinopai-mcp",
|
|
4
4
|
"description": "Kronos crypto signals + trade decisions + 819 automation prompts. x402 micropayments, USDC/Base.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/forgemeshlabs/coinopai-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "1.2.
|
|
9
|
+
"version": "1.2.5",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "coinopai-mcp",
|
|
14
|
-
"version": "1.2.
|
|
14
|
+
"version": "1.2.5",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|