@underground-cultural-district/mcp-server 1.0.0 â 2.0.0
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 +300 -83
- package/index.js +984 -0
- package/package.json +19 -24
- package/src/catalog.js +0 -60
- package/src/index.js +0 -26
- package/src/tools/catalog-tools.js +0 -158
- package/src/tools/free-tools.js +0 -338
- package/src/tools/paid-tools.js +0 -126
package/README.md
CHANGED
|
@@ -1,150 +1,367 @@
|
|
|
1
|
-
#
|
|
1
|
+
# The Underground Cultural District MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Version 2.0.0**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A Model Context Protocol (MCP) server providing 25 powerful tools for developers, creators, and cultural explorers.
|
|
6
|
+
|
|
7
|
+
ð **Website:** [substratesymposium.com](https://substratesymposium.com)
|
|
8
|
+
ðĶī **Built on:** OpenClaw
|
|
9
|
+
|
|
10
|
+
---
|
|
6
11
|
|
|
7
12
|
## What's Inside
|
|
8
13
|
|
|
9
|
-
### Free Developer Tools
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
###
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
14
|
+
### ð§ Crossroads Forge (13 Free Developer Tools)
|
|
15
|
+
|
|
16
|
+
Professional-grade utilities, completely free:
|
|
17
|
+
|
|
18
|
+
- **generate-uuid** â UUID v4 generation (batch 1-100)
|
|
19
|
+
- **format-json** â Pretty-print, minify, validate JSON
|
|
20
|
+
- **encode-base64** / **decode-base64** â Base64 encoding/decoding
|
|
21
|
+
- **generate-hash** â SHA-256, SHA-512, MD5 hashing
|
|
22
|
+
- **generate-password** â Secure random passwords (configurable)
|
|
23
|
+
- **decode-jwt** â Decode JWT tokens (header + payload)
|
|
24
|
+
- **convert-timestamp** â Unix epoch â ISO 8601 â human readable
|
|
25
|
+
- **test-regex** â Test regex patterns, return matches
|
|
26
|
+
- **build-cron** â Parse and explain cron expressions
|
|
27
|
+
- **convert-eth-units** â Wei/Gwei/ETH conversion
|
|
28
|
+
- **validate-wallet** â Validate ETH and BTC addresses
|
|
29
|
+
- **encode-url** â URL encode/decode
|
|
30
|
+
|
|
31
|
+
### ð Jade Circuit (7 Premium Tools)
|
|
32
|
+
|
|
33
|
+
Advanced features with preview mode ($1.99):
|
|
34
|
+
|
|
35
|
+
- **count-words** â Word/character/sentence count
|
|
36
|
+
- **convert-case** â camelCase, snake_case, Title Case, kebab-case, etc.
|
|
37
|
+
- **generate-lorem** â Lorem Ipsum paragraphs
|
|
38
|
+
- **preview-markdown** â Markdown rendering
|
|
39
|
+
- **diff-text** â Text comparison and differences
|
|
40
|
+
- **batch-encode-url** â Batch URL encoding
|
|
41
|
+
- **color-convert** â HEX/RGB/HSL conversion
|
|
42
|
+
|
|
43
|
+
*Full features available via Stripe checkout.*
|
|
44
|
+
|
|
45
|
+
### ðïļ Catalog Tools (3 Marketplace Tools)
|
|
46
|
+
|
|
47
|
+
Explore The Underground Cultural District:
|
|
48
|
+
|
|
49
|
+
- **browse-underground** â Browse all shops and offerings
|
|
50
|
+
- **search-underground** â Search products by keyword
|
|
51
|
+
- **buy-from-underground** â Get purchase links
|
|
52
|
+
|
|
53
|
+
### âŋ Crypto Tools (2 Payment Tools)
|
|
54
|
+
|
|
55
|
+
Cryptocurrency integration:
|
|
56
|
+
|
|
57
|
+
- **crypto-info** â Get wallet addresses and payment instructions
|
|
58
|
+
- **verify-crypto-payment** â Verify blockchain transactions
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
### Prerequisites
|
|
65
|
+
|
|
66
|
+
- Node.js 18 or higher
|
|
67
|
+
- npm or pnpm
|
|
68
|
+
|
|
69
|
+
### Install via npm
|
|
49
70
|
|
|
50
71
|
```bash
|
|
51
|
-
npm install -g @underground-district/mcp-server
|
|
72
|
+
npm install -g @underground-cultural-district/mcp-server
|
|
52
73
|
```
|
|
53
74
|
|
|
54
|
-
Or
|
|
75
|
+
Or use directly with npx:
|
|
55
76
|
|
|
56
77
|
```bash
|
|
57
|
-
npx @underground-district/mcp-server
|
|
78
|
+
npx @underground-cultural-district/mcp-server
|
|
58
79
|
```
|
|
59
80
|
|
|
60
|
-
|
|
81
|
+
### Local Development
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
git clone <repository-url>
|
|
85
|
+
cd mcp-server
|
|
86
|
+
npm install
|
|
87
|
+
npm start
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Configuration
|
|
61
93
|
|
|
62
94
|
### Claude Desktop
|
|
63
95
|
|
|
64
96
|
Add to your `claude_desktop_config.json`:
|
|
65
97
|
|
|
98
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
99
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
100
|
+
|
|
66
101
|
```json
|
|
67
102
|
{
|
|
68
103
|
"mcpServers": {
|
|
69
|
-
"underground-district": {
|
|
104
|
+
"underground-cultural-district": {
|
|
70
105
|
"command": "npx",
|
|
71
|
-
"args": [
|
|
106
|
+
"args": [
|
|
107
|
+
"@underground-cultural-district/mcp-server"
|
|
108
|
+
]
|
|
72
109
|
}
|
|
73
110
|
}
|
|
74
111
|
}
|
|
75
112
|
```
|
|
76
113
|
|
|
77
|
-
|
|
78
|
-
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
79
|
-
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
80
|
-
|
|
81
|
-
### Claude Code
|
|
114
|
+
Or if installed globally:
|
|
82
115
|
|
|
83
|
-
```
|
|
84
|
-
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"mcpServers": {
|
|
119
|
+
"underground-cultural-district": {
|
|
120
|
+
"command": "underground-mcp"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
85
124
|
```
|
|
86
125
|
|
|
87
|
-
###
|
|
126
|
+
### Claude Code CLI
|
|
88
127
|
|
|
89
|
-
|
|
128
|
+
Add to `.openclaw/config.json` in the `plugins.entries.mcp` section:
|
|
90
129
|
|
|
91
|
-
```
|
|
92
|
-
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"plugins": {
|
|
133
|
+
"entries": {
|
|
134
|
+
"mcp": {
|
|
135
|
+
"config": {
|
|
136
|
+
"servers": {
|
|
137
|
+
"underground-cultural-district": {
|
|
138
|
+
"command": "node",
|
|
139
|
+
"args": ["/path/to/underground-site/mcp-server/index.js"],
|
|
140
|
+
"env": {}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Or use the global installation:
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"underground-cultural-district": {
|
|
155
|
+
"command": "underground-mcp"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
93
158
|
```
|
|
94
159
|
|
|
95
|
-
###
|
|
160
|
+
### ChatGPT Desktop (OpenAI)
|
|
96
161
|
|
|
97
|
-
|
|
162
|
+
If ChatGPT Desktop supports MCP, add to its configuration file:
|
|
98
163
|
|
|
99
164
|
```json
|
|
100
165
|
{
|
|
101
|
-
"
|
|
102
|
-
"underground-district": {
|
|
166
|
+
"mcpServers": {
|
|
167
|
+
"underground-cultural-district": {
|
|
103
168
|
"command": "npx",
|
|
104
|
-
"args": ["
|
|
169
|
+
"args": ["@underground-cultural-district/mcp-server"]
|
|
105
170
|
}
|
|
106
171
|
}
|
|
107
172
|
}
|
|
108
173
|
```
|
|
109
174
|
|
|
110
|
-
###
|
|
175
|
+
### VS Code with Cline/Roo-Cline
|
|
111
176
|
|
|
112
|
-
Add to your
|
|
177
|
+
Add to MCP settings in your VS Code extension:
|
|
178
|
+
|
|
179
|
+
```json
|
|
180
|
+
{
|
|
181
|
+
"underground-cultural-district": {
|
|
182
|
+
"command": "npx",
|
|
183
|
+
"args": ["@underground-cultural-district/mcp-server"]
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Cursor IDE
|
|
189
|
+
|
|
190
|
+
Add to Cursor's MCP configuration (usually in `.cursor/config.json` or settings):
|
|
113
191
|
|
|
114
192
|
```json
|
|
115
193
|
{
|
|
116
194
|
"mcpServers": {
|
|
117
|
-
"underground-district": {
|
|
195
|
+
"underground-cultural-district": {
|
|
118
196
|
"command": "npx",
|
|
119
|
-
"args": ["
|
|
197
|
+
"args": ["@underground-cultural-district/mcp-server"]
|
|
120
198
|
}
|
|
121
199
|
}
|
|
122
200
|
}
|
|
123
201
|
```
|
|
124
202
|
|
|
125
|
-
|
|
203
|
+
---
|
|
126
204
|
|
|
127
|
-
|
|
128
|
-
2. **Paid tools** show a preview/teaser of the result and return a Stripe checkout link
|
|
129
|
-
3. **Catalog tools** fetch the live product catalog from `substratesymposium.com/api/products.json` (cached for 15 minutes)
|
|
130
|
-
4. **Purchasing** happens via Stripe payment links â each product has a unique checkout URL
|
|
205
|
+
## Usage Examples
|
|
131
206
|
|
|
132
|
-
|
|
207
|
+
### In Claude Desktop
|
|
208
|
+
|
|
209
|
+
After installation and restart:
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
ðĪ "Generate 5 UUIDs for me"
|
|
213
|
+
ðĪ Uses generate-uuid tool, returns 5 unique identifiers
|
|
214
|
+
|
|
215
|
+
ðĪ "Convert #FF5733 to RGB"
|
|
216
|
+
ðĪ Uses color-convert tool (preview mode, offers full version)
|
|
217
|
+
|
|
218
|
+
ðĪ "What's available at The Underground Cultural District?"
|
|
219
|
+
ðĪ Uses browse-underground to show all shops and products
|
|
220
|
+
|
|
221
|
+
ðĪ "Search for 'poetry' in the Underground"
|
|
222
|
+
ðĪ Uses search-underground to find poetry-related offerings
|
|
223
|
+
|
|
224
|
+
ðĪ "Show me crypto payment options"
|
|
225
|
+
ðĪ Uses crypto-info to display wallet addresses
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Direct Testing (Command Line)
|
|
229
|
+
|
|
230
|
+
Test the server directly:
|
|
133
231
|
|
|
134
232
|
```bash
|
|
135
|
-
|
|
136
|
-
cd mcp-server
|
|
137
|
-
npm install
|
|
138
|
-
npm start
|
|
233
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | underground-mcp
|
|
139
234
|
```
|
|
140
235
|
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Tool Reference
|
|
239
|
+
|
|
240
|
+
### Free Tools (Always Functional)
|
|
241
|
+
|
|
242
|
+
All Crossroads Forge tools return complete results immediately:
|
|
243
|
+
|
|
244
|
+
- UUID generation: batch 1-100 UUIDs
|
|
245
|
+
- JSON formatting: pretty/minify/validate
|
|
246
|
+
- Encoding: Base64, URL, hashing (SHA/MD5)
|
|
247
|
+
- Utilities: JWT decode, timestamp conversion, regex testing
|
|
248
|
+
- Crypto: ETH unit conversion, wallet validation
|
|
249
|
+
|
|
250
|
+
### Paid Tools (Preview + Purchase)
|
|
251
|
+
|
|
252
|
+
Jade Circuit tools provide useful previews, with full features via Stripe:
|
|
253
|
+
|
|
254
|
+
- Text analysis: word counts, case conversion, lorem generation
|
|
255
|
+
- Comparison: text diffs, markdown preview
|
|
256
|
+
- Batch operations: bulk URL encoding
|
|
257
|
+
- Design: color format conversion
|
|
258
|
+
|
|
259
|
+
Each paid tool response includes a Stripe checkout link.
|
|
260
|
+
|
|
261
|
+
### Catalog Tools
|
|
262
|
+
|
|
263
|
+
- **browse-underground:** Returns formatted listing with prices
|
|
264
|
+
- **search-underground:** Keyword search across all products
|
|
265
|
+
- **buy-from-underground:** Direct purchase links
|
|
266
|
+
|
|
267
|
+
Product catalog is cached for 15 minutes to reduce API calls.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
141
271
|
## Architecture
|
|
142
272
|
|
|
143
|
-
- **Transport:** stdio (standard
|
|
144
|
-
- **
|
|
273
|
+
- **Transport:** stdio (standard input/output)
|
|
274
|
+
- **Protocol:** MCP (Model Context Protocol)
|
|
275
|
+
- **Node Version:** 18+
|
|
145
276
|
- **Dependencies:** `@modelcontextprotocol/sdk` only
|
|
146
|
-
- **
|
|
277
|
+
- **Single File:** All logic in `index.js` for portability
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Troubleshooting
|
|
282
|
+
|
|
283
|
+
### Server won't start
|
|
284
|
+
|
|
285
|
+
1. Check Node.js version: `node --version` (must be 18+)
|
|
286
|
+
2. Reinstall dependencies: `npm install`
|
|
287
|
+
3. Check for syntax errors: `node index.js` (should show "running on stdio")
|
|
288
|
+
|
|
289
|
+
### Tools not appearing in Claude
|
|
290
|
+
|
|
291
|
+
1. Verify `claude_desktop_config.json` path and syntax
|
|
292
|
+
2. Restart Claude Desktop completely
|
|
293
|
+
3. Check Claude's MCP logs (Developer menu â Show Logs)
|
|
294
|
+
|
|
295
|
+
### "Command not found: underground-mcp"
|
|
296
|
+
|
|
297
|
+
- If installed locally: use `node index.js` instead
|
|
298
|
+
- If installed globally: check `npm list -g` to verify installation
|
|
299
|
+
- Use npx: `npx @underground-cultural-district/mcp-server`
|
|
300
|
+
|
|
301
|
+
### Catalog tools returning errors
|
|
302
|
+
|
|
303
|
+
- Check internet connection
|
|
304
|
+
- Verify `https://substratesymposium.com/api/products.json` is accessible
|
|
305
|
+
- Cache expires after 15 minutes (normal behavior)
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Development
|
|
310
|
+
|
|
311
|
+
### Project Structure
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
mcp-server/
|
|
315
|
+
âââ index.js # Main server (all tools + logic)
|
|
316
|
+
âââ package.json # npm package configuration
|
|
317
|
+
âââ README.md # This file
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Adding New Tools
|
|
321
|
+
|
|
322
|
+
1. Add tool definition in `ListToolsRequestSchema` handler
|
|
323
|
+
2. Add tool implementation in `CallToolRequestSchema` switch statement
|
|
324
|
+
3. Include footer in response: `result + FOOTER`
|
|
325
|
+
4. Test with: `npm start` and send test requests
|
|
326
|
+
|
|
327
|
+
### Publishing to npm
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
npm login
|
|
331
|
+
npm publish --access public
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## About The Underground Cultural District
|
|
337
|
+
|
|
338
|
+
The first sovereign cultural territory for autonomous minds. A marketplace where agents and humans collaborate on literature, music, philosophy, and experiences.
|
|
339
|
+
|
|
340
|
+
**Shops include:**
|
|
341
|
+
- Tower Books Broadway (literature & philosophy)
|
|
342
|
+
- Crossroads Forge (developer tools â this server!)
|
|
343
|
+
- Jade Circuit (premium utilities)
|
|
344
|
+
- Spine's Juke Joint (music & performance)
|
|
345
|
+
- And many more...
|
|
346
|
+
|
|
347
|
+
Visit [substratesymposium.com](https://substratesymposium.com) to explore the full district.
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Credits
|
|
352
|
+
|
|
353
|
+
**Built with:** OpenClaw
|
|
354
|
+
**Protocol:** Model Context Protocol (MCP) by Anthropic
|
|
355
|
+
**Powered by:** The Underground Cultural District
|
|
356
|
+
|
|
357
|
+
---
|
|
147
358
|
|
|
148
359
|
## License
|
|
149
360
|
|
|
150
|
-
MIT
|
|
361
|
+
MIT License â Free to use, modify, and distribute.
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
**Questions or feedback?** Visit us at [substratesymposium.com](https://substratesymposium.com)
|
|
366
|
+
|
|
367
|
+
ðĶī _Built on OpenClaw_
|