coil-mcp 1.7.0 → 1.7.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/README.md CHANGED
@@ -1,17 +1,18 @@
1
1
  # coil-mcp
2
2
 
3
3
  **Live US stock market data and trading signals, as an MCP server.** Market regime, ranked buy
4
- lists, 0-100 opportunity / entry-timing / hold-strength scores across ~575 S&P 500, Nasdaq-100
5
- and macro names, sector rotation, and a 24/7 crypto board covering 81 pairs.
4
+ lists, 0-100 opportunity / entry-timing / hold-strength scores across 650+ US stocks and ETFs
5
+ (S&P 500, Nasdaq-100 and a macro book), sector rotation, and a 24/7 read of 81 crypto coins
6
+ (a read of trend and state, not trading signals).
6
7
 
7
8
  The free tier needs **no key, no wallet, no signup**.
8
9
 
9
10
  ## Install
10
11
 
11
- Claude Code speaks remote MCP directly — you do not need this package:
12
+ Clients with native remote MCP (Claude Code, for one) do not need this package:
12
13
 
13
14
  ```
14
- claude mcp add --transport http coil https://coil.trade/mcp
15
+ claude mcp add --transport http coil https://mcp.coil.trade/mcp
15
16
  ```
16
17
 
17
18
  For clients that launch servers by command (Claude Desktop, Cursor, Windsurf), use this bridge:
@@ -32,7 +33,7 @@ npx -y coil-mcp
32
33
 
33
34
  ## What you get for free
34
35
 
35
- The full board, delayed one market day, with no account of any kind:
36
+ A sample of the board (top 3 per book, headline fields), delayed one market day, with no account of any kind:
36
37
  `get_market_regime`, `get_buy_list`, `get_stock_read`, `get_market_leaders`, `get_sector_read`,
37
38
  `get_crypto_trend`, `get_morning_brief`, `get_day_board`, `get_rotation`, `get_crypto_day`,
38
39
  `get_crypto_night`, `get_hold_state`.
@@ -45,14 +46,48 @@ Every free tool has a `*_live` twin. Two ways to open them:
45
46
  account and no card. A wallet-equipped client pays inline via `params._meta["x402/payment"]`
46
47
  (@x402/mcp compatible). Cheapest read is `/api/crypto/gate` at $0.001.
47
48
 
48
- **Subscribe** — [Coil Live](https://coil.trade/live-feed) is $29/mo and unlocks every `*_live`
49
- tool plus two sold nowhere else: `get_engine_feed` and `get_live_rules`.
49
+ **Subscribe** — [Coil Live](https://coil.trade/live-feed) is **$49/mo or $419/yr, 7 days free** and
50
+ unlocks every `*_live` tool plus two sold nowhere else: `get_engine_feed` and `get_live_rules`.
51
+ After checkout, Gumroad gives you a license key. Send it as the `X-License-Key` header; the
52
+ MCP URL is `https://mcp.coil.trade/mcp`.
53
+
54
+ **Claude Code** (remote MCP, header sent directly):
55
+
56
+ ```
57
+ claude mcp add --transport http coil https://mcp.coil.trade/mcp --header "X-License-Key: YOUR_GUMROAD_LICENSE_KEY"
58
+ ```
59
+
60
+ **Claude Desktop, Cursor, Windsurf** (they launch servers by command; the connector UI cannot send a
61
+ custom header, so use this bridge with `COIL_LICENSE_KEY`):
62
+
63
+ ```json
64
+ {
65
+ "mcpServers": {
66
+ "coil": {
67
+ "command": "npx",
68
+ "args": ["-y", "coil-mcp"],
69
+ "env": { "COIL_LICENSE_KEY": "YOUR_GUMROAD_LICENSE_KEY" }
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ **Any other MCP client** that speaks streamable HTTP: URL `https://mcp.coil.trade/mcp` and the header
76
+ `X-License-Key: YOUR_GUMROAD_LICENSE_KEY` (on your client's own header setting). A client that only
77
+ launches commands can run the bridge: `COIL_LICENSE_KEY=your_key npx -y coil-mcp`.
50
78
 
51
79
  ```
52
80
  COIL_LICENSE_KEY=your_key npx -y coil-mcp # subscription
53
81
  COIL_KEY=your_free_key npx -y coil-mcp # free key: 25 live calls/day on the cheap slices
54
82
  ```
55
83
 
84
+ **Mind the size of `get_engine_feed`.** Measured: the unfiltered feed is about **1.35 MB**
85
+ (hundreds of thousands of tokens) and a plain 2-name `symbols` poll is about 70 KB. Do not read the
86
+ unfiltered feed into a model's context. Poll with `{"symbols": ["NVDA","MU"], "compact": true}`
87
+ (about 12 KB for two names). Optional `fields` picks engine fields; `limit` + `cursor` page the
88
+ board by symbol. Omit all of them and you get the full payload, unchanged. Call `get_live_setup`
89
+ (free, no key) for the connect guide and the polling cadence.
90
+
56
91
  Mint a free key with no signup flow:
57
92
 
58
93
  ```
@@ -65,7 +100,7 @@ The signature moves no funds. See [coil.trade/auth.md](https://coil.trade/auth.m
65
100
 
66
101
  ## What this package is
67
102
 
68
- A dependency-free stdio bridge. It forwards JSON-RPC verbatim to `https://coil.trade/mcp` and
103
+ A dependency-free stdio bridge. It forwards JSON-RPC verbatim to `https://mcp.coil.trade/mcp` and
69
104
  never inspects, rewrites or caches a payload — whatever the server supports, this supports,
70
105
  including tools added after you installed it. Point it elsewhere with `COIL_MCP_URL`.
71
106
 
package/bin/coil-mcp.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // coil-mcp — stdio bridge to Coil's remote MCP server (https://coil.trade/mcp).
2
+ // coil-mcp — stdio bridge to Coil's remote MCP server (https://mcp.coil.trade/mcp).
3
3
  //
4
4
  // WHY THIS EXISTS: Claude Code speaks remote MCP natively, so for that client this package is
5
5
  // redundant. It exists for the clients that only speak stdio (Claude Desktop configs, Cursor,
@@ -11,14 +11,17 @@
11
11
  // abandons, and a market-data bridge asking for transitive trust is a bad trade. Node 18+ has
12
12
  // fetch and that is all this needs.
13
13
  //
14
- // npx -y coil-mcp # free tier: delayed board, no key, no wallet
14
+ // npx -y coil-mcp # free tier: a sample of the board, delayed, no key, no wallet
15
15
  // COIL_KEY=... npx -y coil-mcp # free key -> higher daily limit on the cheap slices
16
16
  // COIL_LICENSE_KEY=... npx -y coil-mcp # Coil Live subscription -> every *_live tool
17
17
  //
18
18
  // It is a PROXY, not a client: it forwards JSON-RPC verbatim and never inspects, rewrites or
19
19
  // caches a payload. Whatever the server supports, this supports, including tools added later.
20
- const ENDPOINT = process.env.COIL_MCP_URL || "https://coil.trade/mcp";
21
- const VERSION = "1.0.0";
20
+ import { readFileSync } from "node:fs";
21
+
22
+ const ENDPOINT = process.env.COIL_MCP_URL || "https://mcp.coil.trade/mcp";
23
+ // Read from the package's own package.json so the UA can never drift from the published version.
24
+ const VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
22
25
 
23
26
  function headers() {
24
27
  const h = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "coil-mcp",
3
- "version": "1.7.0",
4
- "description": "MCP server for live US stock market data and trading signals \u2014 market regime (risk-on/risk-off), ranked buy lists, 0-100 opportunity and hold scores across ~575 S&P 500 and Nasdaq-100 names, sector rotation, and a 24/7 crypto board for 81 pairs. Free tier needs no key, no wallet, no signup; pay-per-call over x402 in USDC for live data.",
3
+ "version": "1.7.2",
4
+ "description": "MCP server for live US stock market data and trading signals \u2014 market regime (risk-on/risk-off), ranked buy lists, 0-100 opportunity and hold scores across 650+ US stocks and ETFs (S&P 500, Nasdaq-100 and a macro book), sector rotation, and a 24/7 read of 81 crypto coins (a read, not trading signals). Free tier needs no key, no wallet, no signup; pay-per-call over x402 in USDC for live data.",
5
5
  "keywords": [
6
6
  "mcp",
7
7
  "modelcontextprotocol",