@coo-quack/calc-mcp 1.5.0 → 1.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.6.0 (2026-02-12)
4
+
5
+ ### Features
6
+
7
+ - **Documentation site** — Full VitePress-powered docs at [coo-quack.github.io/calc-mcp](https://coo-quack.github.io/calc-mcp/) with tool reference, examples, install guides, and changelog (#13)
8
+
9
+ ### Documentation
10
+
11
+ - Added documentation site link to README
12
+ - Added release checklist to CONTRIBUTING.md (#15)
13
+ - Updated npx examples with `--prefix /tmp` for better node_modules compatibility
14
+ - Added common ignore patterns to .gitignore
15
+
3
16
  ## v1.5.0 (2026-02-11)
4
17
 
5
18
  ### Features
package/CONTRIBUTING.md CHANGED
@@ -27,6 +27,17 @@ bun run build # Build for production
27
27
  3. Register in `src/index.ts` — import and add to the `tools` array
28
28
  4. Update `README.md` — add to examples and tool table
29
29
 
30
+ ## Release Checklist
31
+
32
+ When bumping a version:
33
+
34
+ 1. Update `CHANGELOG.md` with new version entry
35
+ 2. Update `docs/changelog.md` to match
36
+ 3. Review `docs/tools.md` — add/update any changed tool parameters or examples
37
+ 4. Review `docs/examples.md` — add examples for new features
38
+ 5. Review `README.md` — update tool table and examples if needed
39
+ 6. Create GitHub Release with release notes
40
+
30
41
  ## Pull Requests
31
42
 
32
43
  - Branch from `main`
package/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
  [![CI](https://github.com/coo-quack/calc-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/coo-quack/calc-mcp/actions/workflows/ci.yml)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
+ 📖 **[Documentation](https://coo-quack.github.io/calc-mcp/)** — Full tool reference, examples, and install guides.
8
+
7
9
  **21 tools for things AI is bad at** — deterministic math, cryptographic randomness, accurate date arithmetic, encoding, hashing, and more.
8
10
 
9
11
  LLMs hallucinate calculations, can't generate true random numbers, and struggle with timezones. This MCP server fixes that.
@@ -12,10 +14,10 @@ LLMs hallucinate calculations, can't generate true random numbers, and struggle
12
14
 
13
15
  ```bash
14
16
  # Claude Code
15
- claude mcp add -s user calc-mcp -- npx -y @coo-quack/calc-mcp
17
+ claude mcp add -s user calc-mcp -- npx --prefix /tmp -y @coo-quack/calc-mcp
16
18
 
17
19
  # Or just run it
18
- npx -y @coo-quack/calc-mcp
20
+ npx --prefix /tmp -y @coo-quack/calc-mcp
19
21
  ```
20
22
 
21
23
  > Works with Claude Desktop, VS Code Copilot, Cursor, Windsurf — [setup guides below](#install).
@@ -128,7 +130,7 @@ Ask in natural language — the AI picks the right tool automatically.
128
130
  ### Claude Code
129
131
 
130
132
  ```bash
131
- claude mcp add -s user calc-mcp -- npx -y @coo-quack/calc-mcp
133
+ claude mcp add -s user calc-mcp -- npx --prefix /tmp -y @coo-quack/calc-mcp
132
134
  ```
133
135
 
134
136
  ### Claude Desktop / Cursor / Windsurf
@@ -147,7 +149,7 @@ Add to your config file:
147
149
  "mcpServers": {
148
150
  "calc-mcp": {
149
151
  "command": "npx",
150
- "args": ["-y", "@coo-quack/calc-mcp"]
152
+ "args": ["--prefix", "/tmp", "-y", "@coo-quack/calc-mcp"]
151
153
  }
152
154
  }
153
155
  }
@@ -162,7 +164,7 @@ Add to `.vscode/mcp.json` in your workspace:
162
164
  "servers": {
163
165
  "calc-mcp": {
164
166
  "command": "npx",
165
- "args": ["-y", "@coo-quack/calc-mcp"]
167
+ "args": ["--prefix", "/tmp", "-y", "@coo-quack/calc-mcp"]
166
168
  }
167
169
  }
168
170
  }
@@ -0,0 +1,56 @@
1
+ import { defineConfig } from "vitepress";
2
+
3
+ export default defineConfig({
4
+ title: "Calc MCP",
5
+ description: "21 tools for things AI is bad at",
6
+ base: "/calc-mcp/",
7
+
8
+ themeConfig: {
9
+ logo: "/logo.svg",
10
+
11
+ nav: [
12
+ { text: "Home", link: "/" },
13
+ { text: "Tools", link: "/tools" },
14
+ { text: "Install", link: "/install" },
15
+ { text: "Examples", link: "/examples" },
16
+ { text: "Changelog", link: "/changelog" },
17
+ ],
18
+
19
+ sidebar: [
20
+ {
21
+ text: "Guide",
22
+ items: [
23
+ { text: "Getting Started", link: "/" },
24
+ { text: "Installation", link: "/install" },
25
+ { text: "Examples", link: "/examples" },
26
+ ],
27
+ },
28
+ {
29
+ text: "Reference",
30
+ items: [
31
+ { text: "All Tools", link: "/tools" },
32
+ { text: "Changelog", link: "/changelog" },
33
+ ],
34
+ },
35
+ ],
36
+
37
+ socialLinks: [
38
+ { icon: "github", link: "https://github.com/coo-quack/calc-mcp" },
39
+ {
40
+ icon: "npm",
41
+ link: "https://www.npmjs.com/package/@coo-quack/calc-mcp",
42
+ },
43
+ ],
44
+
45
+ footer: {
46
+ message: "Released under the MIT License.",
47
+ copyright: "Copyright © 2026 coo-quack",
48
+ },
49
+
50
+ search: {
51
+ provider: "local",
52
+ },
53
+ },
54
+
55
+ head: [["link", { rel: "icon", href: "/calc-mcp/favicon.ico" }]],
56
+ });
@@ -0,0 +1,4 @@
1
+ import DefaultTheme from "vitepress/theme";
2
+ import "./style.css";
3
+
4
+ export default DefaultTheme;
@@ -0,0 +1,21 @@
1
+ :root {
2
+ --vp-c-brand-1: #00a000;
3
+ --vp-c-brand-2: #00c000;
4
+ --vp-c-brand-3: #00e000;
5
+ --vp-c-brand-soft: rgba(0, 160, 0, 0.14);
6
+ }
7
+
8
+ .dark {
9
+ --vp-c-brand-1: #00d000;
10
+ --vp-c-brand-2: #00b000;
11
+ --vp-c-brand-3: #00a000;
12
+ --vp-c-brand-soft: rgba(0, 208, 0, 0.16);
13
+ }
14
+
15
+ .vp-doc a {
16
+ color: var(--vp-c-brand-1);
17
+ }
18
+
19
+ .vp-doc a:hover {
20
+ color: var(--vp-c-brand-2);
21
+ }
@@ -0,0 +1,111 @@
1
+ # Changelog
2
+
3
+ All notable changes to Calc MCP are documented here.
4
+
5
+ ## v1.6.0 (2026-02-12)
6
+
7
+ ### Features
8
+
9
+ - **Documentation site** — Full VitePress-powered docs at [coo-quack.github.io/calc-mcp](https://coo-quack.github.io/calc-mcp/) with tool reference, examples, install guides, and changelog (#13)
10
+
11
+ ### Documentation
12
+
13
+ - Added documentation site link to README
14
+ - Added release checklist to CONTRIBUTING.md (#15)
15
+ - Updated npx examples with `--prefix /tmp` for better node_modules compatibility
16
+ - Added common ignore patterns to .gitignore
17
+
18
+ ## v1.5.0 (2026-02-11)
19
+
20
+ ### Features
21
+
22
+ - **Password generation** — Fine-grained options: `uppercase`, `numbers`, `symbols` (on/off), `readable` mode (excludes ambiguous chars like l/1/I/O/0/o), `excludeChars` for custom exclusions
23
+ - **Shuffle** — Fisher-Yates algorithm with `crypto.getRandomValues` for unbiased list shuffling
24
+
25
+ ### Documentation
26
+
27
+ - README title: `@coo-quack/calc-mcp` → `Calc MCP`
28
+ - Added "Why?" section with AI-alone vs calc-mcp comparison
29
+ - Quick Start moved to top
30
+ - Install guides consolidated (Claude Desktop/Cursor/Windsurf share same JSON format)
31
+
32
+ ### Tests
33
+
34
+ - Random tool tests: 12 → 27 (+15)
35
+ - Total: 194 tests, 280 assertions
36
+
37
+ ## v1.4.0 (2026-02-11)
38
+
39
+ ### Features
40
+
41
+ - **Time conversion** — ms, s, min, h, d, wk, mo, yr (now 8 categories, 72 units)
42
+ - **`--version` flag** — `npx @coo-quack/calc-mcp --version`
43
+
44
+ ### Improvements
45
+
46
+ - serverInfo.version synced with package.json (was hardcoded "0.1.0")
47
+ - Error messages now list all supported units on unknown unit
48
+ - Semver test coverage: 9 → 23 tests
49
+ - CI git config for tag authoring
50
+ - README badges (npm, CI, license)
51
+ - CONTRIBUTING.md added
52
+ - GitHub topics set
53
+ - README examples: Japanese text replaced with English alternatives
54
+
55
+ ## v1.3.0 (2026-02-11)
56
+
57
+ ### Documentation
58
+
59
+ - Overhaul README with natural language examples (22 verified examples)
60
+ - Add install guides for Claude Code, Claude Desktop, VS Code, Cursor, Windsurf
61
+ - Add unit conversion coverage details (7 categories, 58 units)
62
+ - Add encode/decode examples (Base64, URL, HTML)
63
+
64
+ ## v1.1.0 (2026-02-11)
65
+
66
+ ### Features
67
+
68
+ - **random**: Add UUID v7 support (`uuidVersion: "v7"`) — Time-ordered UUIDs, ideal for database primary keys
69
+
70
+ ## v1.0.0 (2026-02-11)
71
+
72
+ ### Features
73
+
74
+ Initial release with **21 MCP tools** for calculations and operations AI models struggle with:
75
+
76
+ - **random** — UUID (v4), ULID, secure password, random number
77
+ - **hash** — SHA-1, SHA-256, SHA-512, MD5
78
+ - **base64** — Encode/decode Base64
79
+ - **encode** — URL encode/decode, HTML entity encode/decode
80
+ - **datetime** — Current time, convert, format, Unix timestamp
81
+ - **count** — Character, word, line, byte counting (grapheme-aware)
82
+ - **math** — Precise math evaluation via mathjs
83
+ - **date** — Date arithmetic (add/subtract/diff)
84
+ - **regex** — Test, match, replace with regex
85
+ - **base** — Number base conversion (bin/oct/dec/hex/custom)
86
+ - **diff** — Text diff between two strings
87
+ - **json_validate** — JSON schema validation
88
+ - **cron_parse** — Cron expression to human-readable description
89
+ - **luhn** — Luhn algorithm validation (credit cards, etc.)
90
+ - **ip** — IPv4/IPv6 parsing, CIDR subnet info
91
+ - **color** — Color format conversion (hex/rgb/hsl/hwb)
92
+ - **convert** — Unit conversion (length, weight, temp, data, time)
93
+ - **char_info** — Unicode character info (codepoint, name, category)
94
+ - **jwt_decode** — Decode JWT tokens (header + payload)
95
+ - **url_parse** — URL parsing into components
96
+ - **semver** — Semantic versioning operations (compare, satisfy, sort)
97
+
98
+ ### CI/CD
99
+
100
+ - GitHub Actions: test + lint on push/PR
101
+ - Publish workflow: test + lint gate before npm publish on tag
102
+
103
+ ### Infrastructure
104
+
105
+ - Biome for linting and formatting
106
+ - Renovate with OSV vulnerability alerts
107
+ - 160 tests, 92%+ line coverage
108
+
109
+ ---
110
+
111
+ For the latest changes, see [GitHub Releases](https://github.com/coo-quack/calc-mcp/releases).
@@ -0,0 +1,419 @@
1
+ # Examples
2
+
3
+ Ask in natural language — the AI picks the right tool automatically. Here are real examples you can try:
4
+
5
+ ## Math & Numbers
6
+
7
+ ### Calculations
8
+
9
+ ```
10
+ What's 10 + 34 × 341 ÷ 23?
11
+ → 514.087 (math)
12
+
13
+ Calculate sqrt(144) + 2^8
14
+ → 268 (math)
15
+
16
+ What's the sum of [10, 20, 30, 40, 50]?
17
+ → 150 (math)
18
+ ```
19
+
20
+ ### Statistics
21
+
22
+ ```
23
+ Calculate mean and stddev of [1, 2, 3, 4, 5]
24
+ → { mean: 3, median: 3, stddev: 1.414, min: 1, max: 5 } (math)
25
+
26
+ What's the median of [100, 50, 200, 75, 150]?
27
+ → 100 (math)
28
+ ```
29
+
30
+ ### Base Conversion
31
+
32
+ ```
33
+ Convert 255 to binary
34
+ → 11111111 (base)
35
+
36
+ Convert FF from hex to decimal
37
+ → 255 (base)
38
+
39
+ Convert 12 from decimal to base 5
40
+ → 22 (base)
41
+ ```
42
+
43
+ ### Card Validation
44
+
45
+ ```
46
+ Is 4539578763621486 a valid card number?
47
+ → true (luhn)
48
+
49
+ Generate check digit for 453957876362148
50
+ → 6 (luhn)
51
+ ```
52
+
53
+ ## Text & Encoding
54
+
55
+ ### Counting
56
+
57
+ ```
58
+ How many characters in "Hello, World! 🌍"?
59
+ → 15 chars, 18 bytes (count)
60
+
61
+ Count words in "The quick brown fox jumps"
62
+ → 5 words (count)
63
+
64
+ How many lines in this text? (multiline input)
65
+ → 10 lines (count)
66
+ ```
67
+
68
+ ### Base64
69
+
70
+ ```
71
+ Base64 encode "Hello World"
72
+ → SGVsbG8gV29ybGQ= (base64)
73
+
74
+ Base64 decode "eyJhbGciOiJIUzI1NiJ9"
75
+ → {"alg":"HS256"} (base64)
76
+ ```
77
+
78
+ ### URL Encoding
79
+
80
+ ```
81
+ URL-encode "hello world"
82
+ → hello%20world (encode)
83
+
84
+ URL-decode "hello%20world"
85
+ → "hello world" (encode)
86
+
87
+ HTML-encode "<script>alert('XSS')</script>"
88
+ → &lt;script&gt;alert(&#39;XSS&#39;)&lt;/script&gt; (encode)
89
+
90
+ HTML-decode "&lt;script&gt;"
91
+ → <script> (encode)
92
+ ```
93
+
94
+ ### Hashing
95
+
96
+ ```
97
+ SHA-256 hash of "password123"
98
+ → ef92b778bafe771e89b862eebf... (hash)
99
+
100
+ MD5 of "hello world"
101
+ → 5eb63bbbe01eeed093cb22bb8f5acdc3 (hash)
102
+
103
+ CRC32 checksum of "test"
104
+ → d87f7e0c (hash)
105
+ ```
106
+
107
+ ## Date & Time
108
+
109
+ ### Current Time
110
+
111
+ ```
112
+ What time is it in New York?
113
+ → 2026-02-10T19:00:00-05:00 (datetime)
114
+
115
+ What time is it in Tokyo?
116
+ → 2026-02-11T09:00:00+09:00 (datetime)
117
+
118
+ What's the current UNIX timestamp?
119
+ → 1707638400 (datetime)
120
+ ```
121
+
122
+ ### Date Arithmetic
123
+
124
+ ```
125
+ What's 100 days after 2026-02-11?
126
+ → 2026-05-22 (date)
127
+
128
+ What's 30 days before 2026-03-01?
129
+ → 2026-01-30 (date)
130
+
131
+ Add 6 months to 2026-01-15
132
+ → 2026-07-15 (date)
133
+ ```
134
+
135
+ ### Date Differences
136
+
137
+ ```
138
+ How many days between 2026-01-01 and 2026-12-31?
139
+ → 364 days (date)
140
+
141
+ Difference in months between 2025-01-01 and 2026-01-01
142
+ → 12 months (date)
143
+ ```
144
+
145
+ ### Weekdays
146
+
147
+ ```
148
+ What day of the week is 2026-02-11?
149
+ → Wednesday (水曜日) (date)
150
+ ```
151
+
152
+ ### Cron Expressions
153
+
154
+ ```
155
+ When does "30 9 * * 1-5" run?
156
+ → Mon–Fri at 9:30 (cron_parse)
157
+
158
+ Parse "0 0 1 * *"
159
+ → Monthly on the 1st at midnight (cron_parse)
160
+
161
+ Next 5 runs of "*/15 * * * *"
162
+ → Every 15 minutes: 10:00, 10:15, 10:30... (cron_parse)
163
+ ```
164
+
165
+ ## Generation
166
+
167
+ ### UUIDs
168
+
169
+ ```
170
+ Generate a UUID v4
171
+ → 550e8400-e29b-41d4-a716-446655440000 (random)
172
+
173
+ Generate a UUID v7 (time-ordered)
174
+ → 019c4b54-aad2-7e52-8a3b-... (random)
175
+
176
+ Generate a ULID
177
+ → 01HN8B6ZK9PQRSTVWXY0123456 (random)
178
+ ```
179
+
180
+ ### Passwords
181
+
182
+ ```
183
+ Generate a 20-character password
184
+ → hT9jZDojX6sHRJt8vaKS (random)
185
+
186
+ Generate a readable password (no ambiguous chars)
187
+ → rTbPkWnF8sHuDxYz (random)
188
+
189
+ Generate a 16-char password with only letters and numbers
190
+ → aB3dE5fG7hJ9kL2m (random)
191
+
192
+ Generate a password without symbols
193
+ → xYz4AbC8DeFgHiJk (random)
194
+ ```
195
+
196
+ ### Random Numbers
197
+
198
+ ```
199
+ Random number between 1 and 100
200
+ → 42 (random)
201
+
202
+ Random number between 1 and 6 (dice roll)
203
+ → 4 (random)
204
+ ```
205
+
206
+ ### Shuffle
207
+
208
+ ```
209
+ Shuffle ["Alice", "Bob", "Charlie"]
210
+ → ["Charlie", "Alice", "Bob"] (random)
211
+
212
+ Randomize order: ["A", "B", "C", "D", "E"]
213
+ → ["D", "A", "E", "B", "C"] (random)
214
+ ```
215
+
216
+ ## Conversion
217
+
218
+ ### Length
219
+
220
+ ```
221
+ 100 miles in kilometers?
222
+ → 160.93 km (convert)
223
+
224
+ 5 feet in meters?
225
+ → 1.524 m (convert)
226
+ ```
227
+
228
+ ### Temperature
229
+
230
+ ```
231
+ 72°F in Celsius?
232
+ → 22.22°C (convert)
233
+
234
+ 100°C in Fahrenheit?
235
+ → 212°F (convert)
236
+
237
+ 300 Kelvin in Celsius?
238
+ → 26.85°C (convert)
239
+ ```
240
+
241
+ ### Weight
242
+
243
+ ```
244
+ 10 pounds in kilograms?
245
+ → 4.536 kg (convert)
246
+
247
+ 500 grams in ounces?
248
+ → 17.637 oz (convert)
249
+ ```
250
+
251
+ ### Area (including Japanese units)
252
+
253
+ ```
254
+ 10 tsubo in square meters?
255
+ → 33.06 m² (convert)
256
+
257
+ 100 m² in tatami?
258
+ → 60.5 tatami (convert)
259
+
260
+ 1 acre in square meters?
261
+ → 4046.86 m² (convert)
262
+ ```
263
+
264
+ ### Data
265
+
266
+ ```
267
+ 5 GB in megabytes?
268
+ → 5120 MB (convert)
269
+
270
+ 1000 kilobytes in bits?
271
+ → 8192000 bits (convert)
272
+ ```
273
+
274
+ ### Time
275
+
276
+ ```
277
+ 3600 seconds in hours?
278
+ → 1 hour (convert)
279
+
280
+ 2 weeks in days?
281
+ → 14 days (convert)
282
+
283
+ 1000000 milliseconds in minutes?
284
+ → 16.667 minutes (convert)
285
+ ```
286
+
287
+ ## Analysis & Parsing
288
+
289
+ ### Regular Expressions
290
+
291
+ ```
292
+ Extract numbers from "abc123def456"
293
+ → ["123", "456"] (regex)
294
+
295
+ Does "hello@example.com" match an email pattern?
296
+ → true (regex)
297
+
298
+ Replace all spaces with dashes in "hello world"
299
+ → "hello-world" (regex)
300
+ ```
301
+
302
+ ### Text Diff
303
+
304
+ ```
305
+ Edit distance: "kitten" → "sitting"
306
+ → 3 (diff)
307
+
308
+ Line diff between two code snippets
309
+ → - old line
310
+ → + new line
311
+ → unchanged line
312
+ (diff)
313
+ ```
314
+
315
+ ### IP Addresses
316
+
317
+ ```
318
+ IP range of 192.168.1.0/24?
319
+ → 192.168.1.1 – .254 (254 hosts) (ip)
320
+
321
+ Is 192.168.1.50 in 192.168.1.0/24?
322
+ → true (ip)
323
+
324
+ Parse IPv6 address 2001:db8::1
325
+ → { version: 6, address: "2001:0db8:0000:..." } (ip)
326
+ ```
327
+
328
+ ### Colors
329
+
330
+ ```
331
+ Convert #FF5733 to RGB
332
+ → rgb(255, 87, 51) (color)
333
+
334
+ Convert rgb(100, 200, 50) to HSL
335
+ → hsl(100, 60%, 49%) (color)
336
+
337
+ Convert hsl(120, 100%, 50%) to HEX
338
+ → #00FF00 (color)
339
+ ```
340
+
341
+ ### Semver
342
+
343
+ ```
344
+ Does 1.5.3 satisfy ^1.0.0?
345
+ → true (semver)
346
+
347
+ Compare 2.0.0 and 1.9.9
348
+ → 2.0.0 is greater (semver)
349
+
350
+ Is "1.2.3-beta.1" a valid semver?
351
+ → true (semver)
352
+ ```
353
+
354
+ ## Decode & Parse
355
+
356
+ ### JSON Validation
357
+
358
+ ```
359
+ Is '{"name":"test"}' valid JSON?
360
+ → valid, object, keys: ["name"] (json_validate)
361
+
362
+ Validate CSV with 3 columns
363
+ → valid, 10 rows, 3 columns (json_validate)
364
+
365
+ Is this valid XML? (XML input)
366
+ → valid (json_validate)
367
+ ```
368
+
369
+ ### JWT Decoding
370
+
371
+ ```
372
+ Decode this JWT: eyJhbGci...
373
+ → {
374
+ header: { alg: "HS256", typ: "JWT" },
375
+ payload: { sub: "1234567890", name: "John Doe" }
376
+ }
377
+ (jwt_decode)
378
+ ```
379
+
380
+ ### URL Parsing
381
+
382
+ ```
383
+ Parse https://example.com/search?q=hello&lang=en
384
+ → {
385
+ host: "example.com",
386
+ pathname: "/search",
387
+ searchParams: { q: "hello", lang: "en" }
388
+ }
389
+ (url_parse)
390
+
391
+ Extract query params from https://api.github.com/search?q=mcp&sort=stars
392
+ → { q: "mcp", sort: "stars" } (url_parse)
393
+ ```
394
+
395
+ ### Unicode Info
396
+
397
+ ```
398
+ Unicode info for "€"
399
+ → U+20AC, Currency Symbols (char_info)
400
+
401
+ What's the code point for "🌍"?
402
+ → U+1F30D, Miscellaneous Symbols and Pictographs (char_info)
403
+
404
+ Character info for "あ"
405
+ → U+3042, Hiragana (char_info)
406
+ ```
407
+
408
+ ---
409
+
410
+ ## Tips for Natural Language Queries
411
+
412
+ The AI automatically selects the right tool based on your question. For best results:
413
+
414
+ 1. **Be specific** — "Convert 100°F to Celsius" is better than "temperature conversion"
415
+ 2. **Include units** — "5 miles in km" is clearer than "5 miles"
416
+ 3. **Use examples** — "Extract numbers from 'abc123'" shows what you want
417
+ 4. **Ask naturally** — The AI understands conversational queries
418
+
419
+ Try asking in your own words — the AI will figure it out! 🚀