@chaindaddy/mcp 0.4.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 ADDED
@@ -0,0 +1,249 @@
1
+ # Chain Daddy MCP Server
2
+
3
+ MCP (Model Context Protocol) server for Chain Daddy. Your token. Your holders. Your channel.
4
+
5
+ Ask your assistant to search tickers, import a token you made elsewhere or launch a new one, edit its page, and run its creator store.
6
+
7
+ ## Installation
8
+
9
+ The easiest way in a coding agent is the Chain Daddy plugin, which starts this server and the remote one
10
+ and adds skills: see [Build with AI](https://docs.chaindaddy.io/developer/build-with-ai).
11
+
12
+ ```bash
13
+ # Claude Code
14
+ claude plugin marketplace add https://gitlab.com/opencrown/chaindaddy-plugins.git
15
+ claude plugin install chaindaddy@chaindaddy
16
+ ```
17
+
18
+ For read-only tools with no key, connect the remote server instead: `https://api.chaindaddy.io/mcp`.
19
+
20
+ Each release is built from its public source,
21
+ [opencrown/chaindaddy-mcp](https://gitlab.com/opencrown/chaindaddy-mcp), and published with npm
22
+ provenance. Verify with `npm audit signatures` in a project that installs it.
23
+
24
+ ## Configuration
25
+
26
+ ### Claude Code
27
+
28
+ ```bash
29
+ claude mcp add chaindaddy-local -- npx -y @chaindaddy/mcp
30
+ ```
31
+
32
+ ### Codex
33
+
34
+ ```bash
35
+ codex mcp add chaindaddy-local -- npx -y @chaindaddy/mcp
36
+ ```
37
+
38
+ ### Claude Desktop, Cursor and other MCP clients
39
+
40
+ Add to the client's MCP config (`claude_desktop_config.json`, `.cursor/mcp.json`, …):
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "chaindaddy-local": {
46
+ "command": "npx",
47
+ "args": ["-y", "@chaindaddy/mcp"],
48
+ "env": { "CHAINDADDY_API_KEY": "cd_live_…" }
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ Every tool needs the key, reads included: the API answers callers outside chaindaddy.io only with one. A
55
+ Free key is enough. Connect your wallet at [chaindaddy.io/_api](https://chaindaddy.io/_api) and click
56
+ **Generate API Key** (a developer-program member can also run `chaindaddy app key create`). With no key set,
57
+ a tool says so and stops before calling the API. Where the client passes your shell's environment to MCP
58
+ servers (Claude Code does), export it in your shell instead of writing it into a file.
59
+
60
+ ### Environment Variables
61
+
62
+ | Variable | Default | Description |
63
+ |----------|---------|-------------|
64
+ | `CHAINDADDY_API_KEY` | — | Your `cd_live_` API key. Sent as `X-API-Key` on every call, and the Bearer credential for creator and admin calls when a tool gets no `session_token` |
65
+ | `CHAINDADDY_IAP_KEY` | — | A `cd_iap_` store key for your app's server: one store, explicit scopes. Used by the store-scoped `iap_*` tools when no `session_token` is passed |
66
+ | `CHAINDADDY_API_URL` | `https://api.chaindaddy.io` | Chain Daddy API endpoint. A `localhost` API needs no key |
67
+ | `CHAINDADDY_NETWORK` | `mainnet` | A label shown in `chaindaddy://config`; it does not change which API is called |
68
+ | `CHAINDADDY_RECOMMENDER_URL` | — | A recommender service you run, for `get_recommendations`. The API does not host one, so the tool reports it is unavailable when this is unset |
69
+
70
+ ## Available Tools
71
+
72
+ ### search_symbol
73
+
74
+ Search for a ticker symbol across all supported chains.
75
+
76
+ ```
77
+ "Search for PEPE across all chains"
78
+ "Is BODEGA available on Arbitrum?"
79
+ ```
80
+
81
+ ### get_token
82
+
83
+ Get detailed information about a specific token.
84
+
85
+ ```
86
+ "Show me details for PEPE on Ethereum"
87
+ "What's the market cap of DOGE on BNB Chain?"
88
+ ```
89
+
90
+ ### list_crowns
91
+
92
+ List all crown NFTs owned by a wallet.
93
+
94
+ ```
95
+ "Show all my crowns"
96
+ "List crowns for 0x1234..."
97
+ ```
98
+
99
+ ### get_pricing
100
+
101
+ Get current Chain Daddy pricing.
102
+
103
+ ```
104
+ "How much does it cost to create a token?"
105
+ "What are the multi-chain bundle prices?"
106
+ ```
107
+
108
+ ### get_deployments
109
+
110
+ Find the tokens a wallet made on a chain (deployed, owns or launched) that are not registered yet.
111
+
112
+ ```
113
+ "Show tokens I deployed on Base"
114
+ "Find my contracts on Arbitrum Sepolia"
115
+ ```
116
+
117
+ ### check_eligibility
118
+
119
+ Check if a wallet can claim a specific token's crown, how it qualifies, and the price.
120
+
121
+ ```
122
+ "Can I claim the crown for 0xabc... on Base?"
123
+ "Check if I'm eligible to claim PEPE"
124
+ ```
125
+
126
+ ## Creator Store Tools
127
+
128
+ Sell in-app items for your own token, give rewards and unlock content for holders. Needs a Developer plan
129
+ or Developer Beta membership on the wallet that opens the store (otherwise `403 IAP_PLAN_REQUIRED`).
130
+
131
+ | Tool | What it does |
132
+ |------|--------------|
133
+ | `iap_open_store`, `iap_list_stores` | Open a token page's store; list the stores you manage (account credentials) |
134
+ | `iap_list_skus`, `iap_create_sku`, `iap_update_sku` | The catalog: `consumable`, `non_consumable`, `timed`, `unlock` |
135
+ | `iap_create_order`, `iap_get_order`, `iap_list_orders`, `iap_refund_order` | Sell from your own server; track and refund orders |
136
+ | `iap_get_entitlements`, `iap_grant`, `iap_consume`, `iap_revoke` | What a user holds, and changing it |
137
+ | `iap_create_drop`, `iap_set_drop_status`, `iap_add_drop_recipients`, `iap_award` | Rewards: claim links, pushes, awards from your server |
138
+ | `iap_create_store_key` | A scoped `cd_iap_` key for your server (secret shown once) |
139
+ | `iap_list_events` | The store's event feed, for reconciling webhooks |
140
+ | `iap_set_webhook`, `iap_get_webhook`, `iap_test_webhook` | The store's webhook: set it (secret shown once), read its recent deliveries, send a test event |
141
+
142
+ Every write sends an `Idempotency-Key` and returns it as `idempotency_key`; retry with the same key and the
143
+ write never applies twice. The orchestration skill is [`skills/creator-store.md`](skills/creator-store.md).
144
+
145
+ ```
146
+ "Open a store for my token on Base and add a gold badge for $5"
147
+ "Create a store key for my server that can sell and consume items"
148
+ "Give every wallet in this list 10 credits"
149
+ ```
150
+
151
+ ## Example Conversations
152
+
153
+ ### Search and Discover
154
+
155
+ ```
156
+ User: "I want to launch a meme token called WAGMI"
157
+
158
+ Claude: Let me check if WAGMI is available...
159
+
160
+ [Uses search_symbol]
161
+
162
+ WAGMI is available on all chains! Here are your options:
163
+ - Arbitrum Sepolia (testnet): $20
164
+ - Arbitrum: $20
165
+ - Base: $20
166
+ - Ethereum: $125
167
+
168
+ Would you like to create it?
169
+ ```
170
+
171
+ ### Check Your Portfolio
172
+
173
+ ```
174
+ User: "Show me all my crowns"
175
+
176
+ Claude: [Uses list_crowns]
177
+
178
+ You own 3 crowns:
179
+
180
+ | Symbol | Chain | Heartbeat | Status |
181
+ |--------|----------|-----------|---------|
182
+ | WAGMI | Arbitrum | 92% | Active |
183
+ | NGMI | Base | 55% | At Risk |
184
+
185
+ Warning: NGMI has low heartbeat and may become reclaimable.
186
+ ```
187
+
188
+ ### Claim Existing Token
189
+
190
+ ```
191
+ User: "I deployed a token on Base, can I register it?"
192
+
193
+ Claude: What's your wallet address?
194
+
195
+ User: 0x1234...
196
+
197
+ Claude: [Uses get_deployments]
198
+
199
+ Found 2 tokens you deployed on Base:
200
+ - COPE (0xabc...)
201
+ - BASED (0xdef...)
202
+
203
+ [Uses check_eligibility]
204
+
205
+ You're eligible to claim both! The cost is $15 per crown.
206
+ Which would you like to claim?
207
+ ```
208
+
209
+ ## Supported Chains
210
+
211
+ | Chain | Chain ID | Network |
212
+ |-------|----------|---------|
213
+ | Ethereum | 1 | Mainnet |
214
+ | Arbitrum | 42161 | Mainnet |
215
+ | Arbitrum Sepolia | 421614 | Testnet |
216
+ | Base | 8453 | Mainnet |
217
+ | Polygon | 137 | Mainnet |
218
+ | BNB Chain | 56 | Mainnet |
219
+ | Solana | solana-mainnet | Mainnet |
220
+
221
+ ## Development
222
+
223
+ ```bash
224
+ # Clone and install
225
+ cd mcp
226
+ npm install
227
+
228
+ # Build
229
+ npm run build
230
+
231
+ # Test with MCP Inspector
232
+ npm run inspect
233
+
234
+ # Run locally
235
+ npm start
236
+ ```
237
+
238
+ ## Resources
239
+
240
+ The MCP server also exposes resources:
241
+
242
+ - `chaindaddy://config` - Current configuration
243
+ - `chaindaddy://chains` - Supported blockchain networks
244
+
245
+ ## Links
246
+
247
+ - Website: https://chaindaddy.io
248
+ - API Docs: https://chaindaddy.io/api
249
+ - CLI (beta): `npm install -g @chaindaddy/cli@beta`
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Chain Daddy MCP Server
4
+ *
5
+ * Exposes Chain Daddy functionality as MCP tools for use with Claude.
6
+ * Lets an assistant search tickers, launch or import a token, and run its
7
+ * creator store.
8
+ */
9
+ interface Session {
10
+ wallet: string;
11
+ chain_type: "evm" | "solana";
12
+ expires_at: string;
13
+ jwt?: string;
14
+ }
15
+ export declare const sessions: Map<string, Session>;
16
+ export declare function requireSession(session_token: string): Session;
17
+ export declare function requireSessionJWT(session_token: string): {
18
+ session: Session;
19
+ jwt: string;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAgDH,UAAU,OAAO;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,sBAA6B,CAAC;AAInD,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAU7D;AAKD,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAQ1F"}