@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 +249 -0
- package/build/index.d.ts +22 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +2153 -0
- package/build/index.js.map +1 -0
- package/package.json +61 -0
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`
|
package/build/index.d.ts
ADDED
|
@@ -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"}
|