@coo-quack/calc-mcp 1.6.0 → 1.6.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/dist/index.js +2 -3
- package/package.json +1 -1
- package/CHANGELOG.md +0 -104
- package/coo-quack-avatar.jpg +0 -0
- package/docs/.vitepress/config.ts +0 -56
- package/docs/.vitepress/theme/index.ts +0 -4
- package/docs/.vitepress/theme/style.css +0 -21
- package/docs/changelog.md +0 -111
- package/docs/examples.md +0 -419
- package/docs/index.md +0 -101
- package/docs/install.md +0 -163
- package/docs/public/logo.svg +0 -79
- package/docs/tools.md +0 -427
package/docs/public/logo.svg
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
|
|
2
|
-
<defs>
|
|
3
|
-
<!-- Background gradient -->
|
|
4
|
-
<linearGradient id="bgGrad" x1="0" y1="0" x2="1" y2="1">
|
|
5
|
-
<stop offset="0%" stop-color="#5CB85C"/>
|
|
6
|
-
<stop offset="100%" stop-color="#2E7D32"/>
|
|
7
|
-
</linearGradient>
|
|
8
|
-
<!-- Calculator body gradient -->
|
|
9
|
-
<linearGradient id="bodyGrad" x1="0" y1="0" x2="0" y2="1">
|
|
10
|
-
<stop offset="0%" stop-color="#FDFDFD"/>
|
|
11
|
-
<stop offset="100%" stop-color="#E8E8E8"/>
|
|
12
|
-
</linearGradient>
|
|
13
|
-
<!-- Display gradient -->
|
|
14
|
-
<linearGradient id="displayGrad" x1="0" y1="0" x2="0" y2="1">
|
|
15
|
-
<stop offset="0%" stop-color="#1A1A2E"/>
|
|
16
|
-
<stop offset="100%" stop-color="#16213E"/>
|
|
17
|
-
</linearGradient>
|
|
18
|
-
<!-- Green button gradient -->
|
|
19
|
-
<linearGradient id="greenBtn" x1="0" y1="0" x2="0" y2="1">
|
|
20
|
-
<stop offset="0%" stop-color="#6ABF47"/>
|
|
21
|
-
<stop offset="100%" stop-color="#4A8C2A"/>
|
|
22
|
-
</linearGradient>
|
|
23
|
-
<!-- Orange button gradient -->
|
|
24
|
-
<linearGradient id="orangeBtn" x1="0" y1="0" x2="0" y2="1">
|
|
25
|
-
<stop offset="0%" stop-color="#FF8C42"/>
|
|
26
|
-
<stop offset="100%" stop-color="#E8621A"/>
|
|
27
|
-
</linearGradient>
|
|
28
|
-
<!-- Gray button gradient -->
|
|
29
|
-
<linearGradient id="grayBtn" x1="0" y1="0" x2="0" y2="1">
|
|
30
|
-
<stop offset="0%" stop-color="#E0E0E0"/>
|
|
31
|
-
<stop offset="100%" stop-color="#BDBDBD"/>
|
|
32
|
-
</linearGradient>
|
|
33
|
-
<!-- Accent green button -->
|
|
34
|
-
<linearGradient id="accentBtn" x1="0" y1="0" x2="0" y2="1">
|
|
35
|
-
<stop offset="0%" stop-color="#4CAF50"/>
|
|
36
|
-
<stop offset="100%" stop-color="#2E7D32"/>
|
|
37
|
-
</linearGradient>
|
|
38
|
-
<!-- Shadow filter -->
|
|
39
|
-
<filter id="shadow" x="-10%" y="-10%" width="130%" height="130%">
|
|
40
|
-
<feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#000" flood-opacity="0.3"/>
|
|
41
|
-
</filter>
|
|
42
|
-
<filter id="btnShadow" x="-20%" y="-20%" width="140%" height="160%">
|
|
43
|
-
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#000" flood-opacity="0.15"/>
|
|
44
|
-
</filter>
|
|
45
|
-
<filter id="innerGlow">
|
|
46
|
-
<feDropShadow dx="0" dy="1" stdDeviation="1" flood-color="#FFF" flood-opacity="0.3"/>
|
|
47
|
-
</filter>
|
|
48
|
-
</defs>
|
|
49
|
-
|
|
50
|
-
<!-- Background rounded square -->
|
|
51
|
-
<rect x="0" y="0" width="512" height="512" rx="96" ry="96" fill="url(#bgGrad)"/>
|
|
52
|
-
<!-- Subtle highlight on top-left -->
|
|
53
|
-
<rect x="0" y="0" width="512" height="256" rx="96" ry="96" fill="url(#bgGrad)" opacity="0.15" style="filter: blur(2px)"/>
|
|
54
|
-
|
|
55
|
-
<!-- Calculator body -->
|
|
56
|
-
<rect x="88" y="64" width="336" height="400" rx="36" ry="36" fill="url(#bodyGrad)" filter="url(#shadow)"/>
|
|
57
|
-
|
|
58
|
-
<!-- Display -->
|
|
59
|
-
<rect x="116" y="92" width="280" height="88" rx="16" ry="16" fill="url(#displayGrad)"/>
|
|
60
|
-
<!-- Display dots -->
|
|
61
|
-
<circle cx="336" cy="136" r="4" fill="#4A5568" opacity="0.6"/>
|
|
62
|
-
<circle cx="356" cy="136" r="4" fill="#4A5568" opacity="0.6"/>
|
|
63
|
-
<circle cx="376" cy="136" r="4" fill="#48BB78"/>
|
|
64
|
-
|
|
65
|
-
<!-- Row 1: Green, Green, Orange -->
|
|
66
|
-
<rect x="116" y="204" width="76" height="60" rx="14" ry="14" fill="url(#greenBtn)" filter="url(#btnShadow)"/>
|
|
67
|
-
<rect x="218" y="204" width="76" height="60" rx="14" ry="14" fill="url(#greenBtn)" filter="url(#btnShadow)"/>
|
|
68
|
-
<rect x="320" y="204" width="76" height="60" rx="14" ry="14" fill="url(#orangeBtn)" filter="url(#btnShadow)"/>
|
|
69
|
-
|
|
70
|
-
<!-- Row 2: Gray, Gray, Orange -->
|
|
71
|
-
<rect x="116" y="284" width="76" height="60" rx="14" ry="14" fill="url(#grayBtn)" filter="url(#btnShadow)"/>
|
|
72
|
-
<rect x="218" y="284" width="76" height="60" rx="14" ry="14" fill="url(#grayBtn)" filter="url(#btnShadow)"/>
|
|
73
|
-
<rect x="320" y="284" width="76" height="60" rx="14" ry="14" fill="url(#orangeBtn)" filter="url(#btnShadow)"/>
|
|
74
|
-
|
|
75
|
-
<!-- Row 3: Gray, Gray, Accent Green -->
|
|
76
|
-
<rect x="116" y="364" width="76" height="60" rx="14" ry="14" fill="url(#grayBtn)" filter="url(#btnShadow)"/>
|
|
77
|
-
<rect x="218" y="364" width="76" height="60" rx="14" ry="14" fill="url(#grayBtn)" filter="url(#btnShadow)"/>
|
|
78
|
-
<rect x="320" y="364" width="76" height="60" rx="14" ry="14" fill="url(#accentBtn)" filter="url(#btnShadow)"/>
|
|
79
|
-
</svg>
|
package/docs/tools.md
DELETED
|
@@ -1,427 +0,0 @@
|
|
|
1
|
-
# All Tools
|
|
2
|
-
|
|
3
|
-
Calc MCP provides 21 tools for operations that AI models struggle with. Each tool is designed to be called automatically by your AI assistant when you ask questions in natural language.
|
|
4
|
-
|
|
5
|
-
## Math & Numbers
|
|
6
|
-
|
|
7
|
-
### math
|
|
8
|
-
|
|
9
|
-
Evaluate mathematical expressions or compute statistics on numbers.
|
|
10
|
-
|
|
11
|
-
**Parameters:**
|
|
12
|
-
- `expression` (string, optional) — Math expression to evaluate
|
|
13
|
-
- `action` (enum, optional) — `eval` (default) or `statistics`
|
|
14
|
-
- `values` (array of numbers, optional) — Array of numbers for statistics
|
|
15
|
-
|
|
16
|
-
**Examples:**
|
|
17
|
-
```
|
|
18
|
-
What's 10 + 34 × 341 ÷ 23?
|
|
19
|
-
→ 514.087
|
|
20
|
-
|
|
21
|
-
Calculate mean and stddev of [1, 2, 3, 4, 5]
|
|
22
|
-
→ { mean: 3, median: 3, stddev: 1.414, ... }
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### count
|
|
26
|
-
|
|
27
|
-
Count characters (grapheme-aware), words, lines, and bytes in text.
|
|
28
|
-
|
|
29
|
-
**Parameters:**
|
|
30
|
-
- `text` (string) — Text to analyze
|
|
31
|
-
- `encoding` (enum, optional) — `utf8` (default) or `shift_jis` for byte count
|
|
32
|
-
|
|
33
|
-
**Examples:**
|
|
34
|
-
```
|
|
35
|
-
How many characters in "Hello, World! 🌍"?
|
|
36
|
-
→ 15 chars, 18 bytes
|
|
37
|
-
|
|
38
|
-
Count words in "The quick brown fox"
|
|
39
|
-
→ 4 words
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### base
|
|
43
|
-
|
|
44
|
-
Convert numbers between different bases (2–36).
|
|
45
|
-
|
|
46
|
-
**Parameters:**
|
|
47
|
-
- `value` (string | number) — Value to convert
|
|
48
|
-
- `from` (number) — Source base (2–36)
|
|
49
|
-
- `to` (number) — Target base (2–36)
|
|
50
|
-
|
|
51
|
-
**Examples:**
|
|
52
|
-
```
|
|
53
|
-
Convert 255 to binary
|
|
54
|
-
→ 11111111
|
|
55
|
-
|
|
56
|
-
Convert FF from hex to decimal
|
|
57
|
-
→ 255
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### convert
|
|
61
|
-
|
|
62
|
-
Convert between units across 8 categories: length, weight, temperature, area, volume, speed, data, time.
|
|
63
|
-
|
|
64
|
-
**Parameters:**
|
|
65
|
-
- `value` (number) — Value to convert
|
|
66
|
-
- `from` (string) — Source unit
|
|
67
|
-
- `to` (string) — Target unit
|
|
68
|
-
- `category` (enum, optional) — Category (auto-detected if omitted)
|
|
69
|
-
|
|
70
|
-
**Supported units:**
|
|
71
|
-
- **Length:** m, km, cm, mm, in, ft, yd, mi, nm, um
|
|
72
|
-
- **Weight:** kg, g, mg, lb, oz, t, st
|
|
73
|
-
- **Temperature:** c, f, k (Celsius, Fahrenheit, Kelvin)
|
|
74
|
-
- **Area:** m2, km2, cm2, ha, acre, ft2, in2, tsubo, jo, tatami
|
|
75
|
-
- **Volume:** l, ml, m3, gal, qt, pt, cup, floz, tbsp, tsp
|
|
76
|
-
- **Speed:** m/s, km/h, mph, kn, ft/s
|
|
77
|
-
- **Data:** b, kb, mb, gb, tb, pb, bit, kbit, mbit
|
|
78
|
-
- **Time:** ms, s, min, h, d, wk, mo, yr
|
|
79
|
-
|
|
80
|
-
**Examples:**
|
|
81
|
-
```
|
|
82
|
-
100 miles in kilometers?
|
|
83
|
-
→ 160.93 km
|
|
84
|
-
|
|
85
|
-
72°F in Celsius?
|
|
86
|
-
→ 22.22°C
|
|
87
|
-
|
|
88
|
-
10 tsubo in square meters?
|
|
89
|
-
→ 33.06 m²
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Random Generation
|
|
93
|
-
|
|
94
|
-
### random
|
|
95
|
-
|
|
96
|
-
Generate cryptographically random values: UUID, ULID, password, number, or shuffle a list.
|
|
97
|
-
|
|
98
|
-
**Parameters:**
|
|
99
|
-
- `type` (enum) — `uuid`, `ulid`, `password`, `number`, or `shuffle`
|
|
100
|
-
- `uuidVersion` (enum, optional) — `v4` (random, default) or `v7` (time-ordered)
|
|
101
|
-
- `length` (number, optional) — Length for password (default: 16, max: 256)
|
|
102
|
-
- `min` (number, optional) — Minimum value for number (default: 0)
|
|
103
|
-
- `max` (number, optional) — Maximum value for number (default: 100)
|
|
104
|
-
- `charset` (string, optional) — Custom character set for password
|
|
105
|
-
- `uppercase` (boolean, optional) — Include uppercase letters (default: true)
|
|
106
|
-
- `numbers` (boolean, optional) — Include numbers (default: true)
|
|
107
|
-
- `symbols` (boolean, optional) — Include symbols (default: true)
|
|
108
|
-
- `excludeChars` (string, optional) — Characters to exclude (e.g., `"\\|{}"`)
|
|
109
|
-
- `readable` (boolean, optional) — Exclude ambiguous characters (l/1/I/O/0/o)
|
|
110
|
-
- `items` (array of strings, optional) — Items to shuffle (for `type=shuffle`)
|
|
111
|
-
|
|
112
|
-
**Examples:**
|
|
113
|
-
```
|
|
114
|
-
Generate a UUID v7
|
|
115
|
-
→ 019c4b54-aad2-7e52-8a3b-...
|
|
116
|
-
|
|
117
|
-
Generate a readable 20-char password
|
|
118
|
-
→ hT9jZDojX6sHRJt8vaKS
|
|
119
|
-
|
|
120
|
-
Shuffle ["Alice", "Bob", "Charlie"]
|
|
121
|
-
→ ["Charlie", "Alice", "Bob"]
|
|
122
|
-
|
|
123
|
-
Random number between 1 and 100
|
|
124
|
-
→ 42
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## Date & Time
|
|
128
|
-
|
|
129
|
-
### datetime
|
|
130
|
-
|
|
131
|
-
Get current time, convert timezones, format datetime, or work with UNIX timestamps.
|
|
132
|
-
|
|
133
|
-
**Parameters:**
|
|
134
|
-
- `action` (enum) — `now`, `convert`, `format`, or `timestamp`
|
|
135
|
-
- `timezone` (string, optional) — IANA timezone (e.g., `Asia/Tokyo`, `America/New_York`)
|
|
136
|
-
- `datetime` (string, optional) — ISO8601 datetime string for convert/format
|
|
137
|
-
- `fromTimezone` (string, optional) — Source timezone for conversion
|
|
138
|
-
- `toTimezone` (string, optional) — Target timezone for conversion
|
|
139
|
-
- `format` (string, optional) — Output format: `iso`, `date`, `time`, `full`, or Intl options
|
|
140
|
-
- `timestamp` (number, optional) — UNIX timestamp in seconds for timestamp action
|
|
141
|
-
|
|
142
|
-
**Examples:**
|
|
143
|
-
```
|
|
144
|
-
What time is it in New York?
|
|
145
|
-
→ 2026-02-10T19:00:00-05:00
|
|
146
|
-
|
|
147
|
-
Convert 1609459200 to ISO8601
|
|
148
|
-
→ 2021-01-01T00:00:00Z
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### date
|
|
152
|
-
|
|
153
|
-
Perform date arithmetic: difference, add/subtract, get weekday, or convert to wareki (Japanese era).
|
|
154
|
-
|
|
155
|
-
**Parameters:**
|
|
156
|
-
- `action` (enum) — `diff`, `add`, `weekday`, or `wareki`
|
|
157
|
-
- `date` (string) — Date string (ISO8601)
|
|
158
|
-
- `date2` (string, optional) — Second date for diff
|
|
159
|
-
- `amount` (number, optional) — Amount to add
|
|
160
|
-
- `unit` (enum, optional) — `days`, `months`, `years`, `hours`, `minutes`
|
|
161
|
-
|
|
162
|
-
**Examples:**
|
|
163
|
-
```
|
|
164
|
-
What's 100 days after 2026-02-11?
|
|
165
|
-
→ 2026-05-22
|
|
166
|
-
|
|
167
|
-
Difference between 2026-01-01 and 2026-12-31
|
|
168
|
-
→ 364 days
|
|
169
|
-
|
|
170
|
-
What day of the week is 2026-02-11?
|
|
171
|
-
→ Wednesday (水曜日)
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### cron_parse
|
|
175
|
-
|
|
176
|
-
Parse cron expressions into human-readable descriptions and get next occurrences.
|
|
177
|
-
|
|
178
|
-
**Parameters:**
|
|
179
|
-
- `expression` (string) — Cron expression (5 fields: min hour dom mon dow)
|
|
180
|
-
- `count` (number, optional) — Number of next occurrences to return (default: 5)
|
|
181
|
-
- `timezone` (string, optional) — IANA timezone (default: UTC)
|
|
182
|
-
|
|
183
|
-
**Examples:**
|
|
184
|
-
```
|
|
185
|
-
When does "30 9 * * 1-5" run?
|
|
186
|
-
→ Mon–Fri at 9:30, next runs: ...
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Text Processing
|
|
190
|
-
|
|
191
|
-
### hash
|
|
192
|
-
|
|
193
|
-
Compute cryptographic hashes: MD5, SHA-1, SHA-256, SHA-512, CRC32.
|
|
194
|
-
|
|
195
|
-
**Parameters:**
|
|
196
|
-
- `input` (string) — String to hash
|
|
197
|
-
- `algorithm` (enum) — `md5`, `sha1`, `sha256`, `sha512`, or `crc32`
|
|
198
|
-
|
|
199
|
-
**Examples:**
|
|
200
|
-
```
|
|
201
|
-
SHA-256 hash of "password123"
|
|
202
|
-
→ ef92b778bafe771e89b862eebf...
|
|
203
|
-
|
|
204
|
-
MD5 of "hello world"
|
|
205
|
-
→ 5eb63bbbe01eeed093cb22bb8f5acdc3
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### base64
|
|
209
|
-
|
|
210
|
-
Encode or decode Base64 strings.
|
|
211
|
-
|
|
212
|
-
**Parameters:**
|
|
213
|
-
- `input` (string) — String to encode or decode
|
|
214
|
-
- `action` (enum) — `encode` or `decode`
|
|
215
|
-
|
|
216
|
-
**Examples:**
|
|
217
|
-
```
|
|
218
|
-
Base64 encode "Hello World"
|
|
219
|
-
→ SGVsbG8gV29ybGQ=
|
|
220
|
-
|
|
221
|
-
Base64 decode "eyJhbGciOiJIUzI1NiJ9"
|
|
222
|
-
→ {"alg":"HS256"}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### encode
|
|
226
|
-
|
|
227
|
-
URL, HTML entity, or Unicode escape encoding/decoding.
|
|
228
|
-
|
|
229
|
-
**Parameters:**
|
|
230
|
-
- `input` (string) — String to encode or decode
|
|
231
|
-
- `action` (enum) — `encode` or `decode`
|
|
232
|
-
- `type` (enum) — `url`, `html`, or `unicode`
|
|
233
|
-
|
|
234
|
-
**Examples:**
|
|
235
|
-
```
|
|
236
|
-
URL-encode "hello world"
|
|
237
|
-
→ hello%20world
|
|
238
|
-
|
|
239
|
-
HTML-decode "<script>"
|
|
240
|
-
→ <script>
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### regex
|
|
244
|
-
|
|
245
|
-
Test, match, or replace with regular expressions.
|
|
246
|
-
|
|
247
|
-
**Parameters:**
|
|
248
|
-
- `pattern` (string) — Regular expression pattern
|
|
249
|
-
- `flags` (string, optional) — Regex flags (g, i, m, etc.)
|
|
250
|
-
- `text` (string) — Text to search
|
|
251
|
-
- `action` (enum) — `match`, `test`, `replace`, or `matchAll`
|
|
252
|
-
- `replacement` (string, optional) — Replacement string for replace
|
|
253
|
-
|
|
254
|
-
**Examples:**
|
|
255
|
-
```
|
|
256
|
-
Extract numbers from "abc123def456"
|
|
257
|
-
→ ["123", "456"]
|
|
258
|
-
|
|
259
|
-
Replace all spaces with dashes in "hello world"
|
|
260
|
-
→ "hello-world"
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### diff
|
|
264
|
-
|
|
265
|
-
Line diff or Levenshtein distance between two texts.
|
|
266
|
-
|
|
267
|
-
**Parameters:**
|
|
268
|
-
- `text1` (string) — First text
|
|
269
|
-
- `text2` (string) — Second text
|
|
270
|
-
- `action` (enum, optional) — `diff` (line diff, default) or `distance` (Levenshtein)
|
|
271
|
-
|
|
272
|
-
**Examples:**
|
|
273
|
-
```
|
|
274
|
-
Edit distance: "kitten" → "sitting"
|
|
275
|
-
→ 3
|
|
276
|
-
|
|
277
|
-
Line diff between two texts
|
|
278
|
-
→ - old line
|
|
279
|
-
→ + new line
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### char_info
|
|
283
|
-
|
|
284
|
-
Get Unicode information about characters.
|
|
285
|
-
|
|
286
|
-
**Parameters:**
|
|
287
|
-
- `char` (string) — Character(s) to get info about
|
|
288
|
-
|
|
289
|
-
**Examples:**
|
|
290
|
-
```
|
|
291
|
-
Unicode info for "€"
|
|
292
|
-
→ U+20AC, Currency Symbols
|
|
293
|
-
|
|
294
|
-
What's the code point for "🌍"?
|
|
295
|
-
→ U+1F30D, Miscellaneous Symbols and Pictographs
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
## Validation & Parsing
|
|
299
|
-
|
|
300
|
-
### json_validate
|
|
301
|
-
|
|
302
|
-
Validate JSON, CSV, XML, or YAML format.
|
|
303
|
-
|
|
304
|
-
**Parameters:**
|
|
305
|
-
- `input` (string) — String to validate/parse
|
|
306
|
-
- `format` (enum) — `json`, `csv`, `xml`, or `yaml`
|
|
307
|
-
|
|
308
|
-
**Examples:**
|
|
309
|
-
```
|
|
310
|
-
Is '{"name":"test"}' valid JSON?
|
|
311
|
-
→ valid, object, keys: ["name"]
|
|
312
|
-
|
|
313
|
-
Validate CSV with 3 columns
|
|
314
|
-
→ valid, 10 rows, 3 columns
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### luhn
|
|
318
|
-
|
|
319
|
-
Validate or generate Luhn check digits (credit cards, etc.).
|
|
320
|
-
|
|
321
|
-
**Parameters:**
|
|
322
|
-
- `number` (string) — Number string to validate or generate check digit for
|
|
323
|
-
- `action` (enum, optional) — `validate` (default) or `generate`
|
|
324
|
-
|
|
325
|
-
**Examples:**
|
|
326
|
-
```
|
|
327
|
-
Is 4539578763621486 a valid card number?
|
|
328
|
-
→ true
|
|
329
|
-
|
|
330
|
-
Generate check digit for 453957876362148
|
|
331
|
-
→ 6
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
### semver
|
|
335
|
-
|
|
336
|
-
Semantic versioning operations: compare, validate, or check range satisfaction.
|
|
337
|
-
|
|
338
|
-
**Parameters:**
|
|
339
|
-
- `action` (enum) — `compare`, `valid`, or `satisfies`
|
|
340
|
-
- `version` (string) — Semver version string
|
|
341
|
-
- `version2` (string, optional) — Second version for compare
|
|
342
|
-
- `range` (string, optional) — Version range for satisfies (e.g., `^1.0.0`)
|
|
343
|
-
|
|
344
|
-
**Examples:**
|
|
345
|
-
```
|
|
346
|
-
Does 1.5.3 satisfy ^1.0.0?
|
|
347
|
-
→ true
|
|
348
|
-
|
|
349
|
-
Compare 2.0.0 and 1.9.9
|
|
350
|
-
→ 2.0.0 is greater
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
### ip
|
|
354
|
-
|
|
355
|
-
IPv4/IPv6 address information, CIDR range calculations, and membership checks.
|
|
356
|
-
|
|
357
|
-
**Parameters:**
|
|
358
|
-
- `action` (enum) — `info`, `contains`, or `range`
|
|
359
|
-
- `ip` (string, optional) — IP address
|
|
360
|
-
- `cidr` (string, optional) — CIDR notation (e.g., `192.168.1.0/24`)
|
|
361
|
-
- `target` (string, optional) — Target IP to check against CIDR
|
|
362
|
-
|
|
363
|
-
**Examples:**
|
|
364
|
-
```
|
|
365
|
-
IP range of 192.168.1.0/24?
|
|
366
|
-
→ 192.168.1.1 – .254 (254 hosts)
|
|
367
|
-
|
|
368
|
-
Is 192.168.1.50 in 192.168.1.0/24?
|
|
369
|
-
→ true
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
### color
|
|
373
|
-
|
|
374
|
-
Convert between color formats: HEX ↔ RGB ↔ HSL.
|
|
375
|
-
|
|
376
|
-
**Parameters:**
|
|
377
|
-
- `color` (string) — Color value: `#hex`, `rgb(r,g,b)`, or `hsl(h,s%,l%)`
|
|
378
|
-
- `to` (enum, optional) — `hex`, `rgb`, or `hsl` (returns all if omitted)
|
|
379
|
-
|
|
380
|
-
**Examples:**
|
|
381
|
-
```
|
|
382
|
-
Convert #FF5733 to RGB
|
|
383
|
-
→ rgb(255, 87, 51)
|
|
384
|
-
|
|
385
|
-
Convert rgb(100, 200, 50) to HSL
|
|
386
|
-
→ hsl(100, 60%, 49%)
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
### jwt_decode
|
|
390
|
-
|
|
391
|
-
Decode JWT tokens (header + payload, no signature verification).
|
|
392
|
-
|
|
393
|
-
**Parameters:**
|
|
394
|
-
- `token` (string) — JWT token to decode
|
|
395
|
-
|
|
396
|
-
**Examples:**
|
|
397
|
-
```
|
|
398
|
-
Decode this JWT: eyJhbGci...
|
|
399
|
-
→ { header: { alg: "HS256" }, payload: { name: "John Doe" } }
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
### url_parse
|
|
403
|
-
|
|
404
|
-
Parse URLs into components.
|
|
405
|
-
|
|
406
|
-
**Parameters:**
|
|
407
|
-
- `url` (string) — URL to parse
|
|
408
|
-
|
|
409
|
-
**Examples:**
|
|
410
|
-
```
|
|
411
|
-
Parse https://example.com/search?q=hello
|
|
412
|
-
→ host: example.com, pathname: /search, q: "hello"
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
## Tool Categories Summary
|
|
418
|
-
|
|
419
|
-
| Category | Count | Tools |
|
|
420
|
-
|----------|-------|-------|
|
|
421
|
-
| Math & Numbers | 4 | math, count, base, convert |
|
|
422
|
-
| Random | 1 | random (5 types) |
|
|
423
|
-
| Date & Time | 3 | datetime, date, cron_parse |
|
|
424
|
-
| Text Processing | 6 | hash, base64, encode, regex, diff, char_info |
|
|
425
|
-
| Validation & Parsing | 7 | json_validate, luhn, semver, ip, color, jwt_decode, url_parse |
|
|
426
|
-
|
|
427
|
-
**Total: 21 tools**
|