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 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
- The current official MCP Registry entry remains `io.github.clawdbotworker/coinopai-mcp` until a refreshed public submission is published.
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
- | [coinopai-imagegen](https://github.com/forgemeshlabs/coinopai-imagegen) | Paid image generation service | `npm i coinopai-imagegen` |
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": { productId: 1n, priceUsdc: 50000n },
29
- "/api/kronos/decision": { productId: 2n, priceUsdc: 150000n },
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 product = products[path];
145
- if (!product) throw new Error(`No Pyrimid product registered for ${path}`);
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 (affiliateId && pyrimidProducts[path]) {
181
- return callPyrimid(account, path, affiliateId, baseUrl, pyrimidProducts);
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.1" },
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",
4
- "mcpName": "io.github.clawdbotworker/coinopai-mcp",
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.clawdbotworker/coinopai-mcp",
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.4",
9
+ "version": "1.2.5",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "coinopai-mcp",
14
- "version": "1.2.4",
14
+ "version": "1.2.5",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },