@coo-quack/calc-mcp 1.5.0 → 1.6.1

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/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
  }
package/dist/index.js CHANGED
@@ -33166,6 +33166,7 @@ var tool11 = {
33166
33166
  };
33167
33167
 
33168
33168
  // src/tools/hash.ts
33169
+ import { createHash } from "node:crypto";
33169
33170
  var schema12 = {
33170
33171
  input: exports_external.string().describe("String to hash"),
33171
33172
  algorithm: exports_external.enum(["md5", "sha1", "sha256", "sha512", "crc32"]).describe("Hash algorithm to use")
@@ -33191,9 +33192,7 @@ function execute12(input) {
33191
33192
  if (input.algorithm === "crc32") {
33192
33193
  return crc32(input.input);
33193
33194
  }
33194
- const hasher = new Bun.CryptoHasher(input.algorithm);
33195
- hasher.update(input.input);
33196
- return hasher.digest("hex");
33195
+ return createHash(input.algorithm).update(input.input).digest("hex");
33197
33196
  }
33198
33197
  var tool12 = {
33199
33198
  name: "hash",
@@ -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,117 @@
1
+ # Changelog
2
+
3
+ All notable changes to Calc MCP are documented here.
4
+
5
+ ## v1.6.1 (2026-02-12)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **hash** — Replace `Bun.CryptoHasher` with `node:crypto` for Node.js compatibility (#18)
10
+
11
+ ## v1.6.0 (2026-02-12)
12
+
13
+ ### Features
14
+
15
+ - **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)
16
+
17
+ ### Documentation
18
+
19
+ - Added documentation site link to README
20
+ - Added release checklist to CONTRIBUTING.md (#15)
21
+ - Updated npx examples with `--prefix /tmp` for better node_modules compatibility
22
+ - Added common ignore patterns to .gitignore
23
+
24
+ ## v1.5.0 (2026-02-11)
25
+
26
+ ### Features
27
+
28
+ - **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
29
+ - **Shuffle** — Fisher-Yates algorithm with `crypto.getRandomValues` for unbiased list shuffling
30
+
31
+ ### Documentation
32
+
33
+ - README title: `@coo-quack/calc-mcp` → `Calc MCP`
34
+ - Added "Why?" section with AI-alone vs calc-mcp comparison
35
+ - Quick Start moved to top
36
+ - Install guides consolidated (Claude Desktop/Cursor/Windsurf share same JSON format)
37
+
38
+ ### Tests
39
+
40
+ - Random tool tests: 12 → 27 (+15)
41
+ - Total: 194 tests, 280 assertions
42
+
43
+ ## v1.4.0 (2026-02-11)
44
+
45
+ ### Features
46
+
47
+ - **Time conversion** — ms, s, min, h, d, wk, mo, yr (now 8 categories, 72 units)
48
+ - **`--version` flag** — `npx @coo-quack/calc-mcp --version`
49
+
50
+ ### Improvements
51
+
52
+ - serverInfo.version synced with package.json (was hardcoded "0.1.0")
53
+ - Error messages now list all supported units on unknown unit
54
+ - Semver test coverage: 9 → 23 tests
55
+ - CI git config for tag authoring
56
+ - README badges (npm, CI, license)
57
+ - CONTRIBUTING.md added
58
+ - GitHub topics set
59
+ - README examples: Japanese text replaced with English alternatives
60
+
61
+ ## v1.3.0 (2026-02-11)
62
+
63
+ ### Documentation
64
+
65
+ - Overhaul README with natural language examples (22 verified examples)
66
+ - Add install guides for Claude Code, Claude Desktop, VS Code, Cursor, Windsurf
67
+ - Add unit conversion coverage details (7 categories, 58 units)
68
+ - Add encode/decode examples (Base64, URL, HTML)
69
+
70
+ ## v1.1.0 (2026-02-11)
71
+
72
+ ### Features
73
+
74
+ - **random**: Add UUID v7 support (`uuidVersion: "v7"`) — Time-ordered UUIDs, ideal for database primary keys
75
+
76
+ ## v1.0.0 (2026-02-11)
77
+
78
+ ### Features
79
+
80
+ Initial release with **21 MCP tools** for calculations and operations AI models struggle with:
81
+
82
+ - **random** — UUID (v4), ULID, secure password, random number
83
+ - **hash** — SHA-1, SHA-256, SHA-512, MD5
84
+ - **base64** — Encode/decode Base64
85
+ - **encode** — URL encode/decode, HTML entity encode/decode
86
+ - **datetime** — Current time, convert, format, Unix timestamp
87
+ - **count** — Character, word, line, byte counting (grapheme-aware)
88
+ - **math** — Precise math evaluation via mathjs
89
+ - **date** — Date arithmetic (add/subtract/diff)
90
+ - **regex** — Test, match, replace with regex
91
+ - **base** — Number base conversion (bin/oct/dec/hex/custom)
92
+ - **diff** — Text diff between two strings
93
+ - **json_validate** — JSON schema validation
94
+ - **cron_parse** — Cron expression to human-readable description
95
+ - **luhn** — Luhn algorithm validation (credit cards, etc.)
96
+ - **ip** — IPv4/IPv6 parsing, CIDR subnet info
97
+ - **color** — Color format conversion (hex/rgb/hsl/hwb)
98
+ - **convert** — Unit conversion (length, weight, temp, data, time)
99
+ - **char_info** — Unicode character info (codepoint, name, category)
100
+ - **jwt_decode** — Decode JWT tokens (header + payload)
101
+ - **url_parse** — URL parsing into components
102
+ - **semver** — Semantic versioning operations (compare, satisfy, sort)
103
+
104
+ ### CI/CD
105
+
106
+ - GitHub Actions: test + lint on push/PR
107
+ - Publish workflow: test + lint gate before npm publish on tag
108
+
109
+ ### Infrastructure
110
+
111
+ - Biome for linting and formatting
112
+ - Renovate with OSV vulnerability alerts
113
+ - 160 tests, 92%+ line coverage
114
+
115
+ ---
116
+
117
+ 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! 🚀