@cachly-dev/mcp-server 0.9.9 → 0.9.11
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 +60 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -10433
package/dist/index.js
CHANGED
|
@@ -2363,7 +2363,12 @@ const TOOLS = [
|
|
|
2363
2363
|
// ── Instance Management ──────────────────────────────────────────────────
|
|
2364
2364
|
{
|
|
2365
2365
|
name: 'list_instances',
|
|
2366
|
-
description: 'List all your cachly cache instances with their status and connection details.'
|
|
2366
|
+
description: 'List all your cachly cache instances with their status and connection details. ' +
|
|
2367
|
+
'Read-only. Returns an array of instance objects — each with id, name, tier, status, region, RAM, ' +
|
|
2368
|
+
'and redis:// connection string. Returns an empty array if no instances exist. ' +
|
|
2369
|
+
'No pagination: all instances are returned in one call (typical accounts have < 20). ' +
|
|
2370
|
+
'Use this first to discover instance UUIDs required by get_instance, cache_get, cache_set, ' +
|
|
2371
|
+
'and all other cache tools. Use get_instance to retrieve full metadata for a single instance.',
|
|
2367
2372
|
inputSchema: { type: 'object', properties: {}, required: [] },
|
|
2368
2373
|
},
|
|
2369
2374
|
{
|
|
@@ -2387,7 +2392,11 @@ const TOOLS = [
|
|
|
2387
2392
|
},
|
|
2388
2393
|
{
|
|
2389
2394
|
name: 'get_instance',
|
|
2390
|
-
description: 'Get
|
|
2395
|
+
description: 'Get full metadata for a specific cache instance: name, tier, status (provisioning / running / paused), ' +
|
|
2396
|
+
'region, RAM limit, Redis connection string, created_at, and expiry. Read-only. ' +
|
|
2397
|
+
'Returns an error if the instance_id is not found or belongs to another account. ' +
|
|
2398
|
+
'Call list_instances first to discover valid UUIDs. ' +
|
|
2399
|
+
'Use get_connection_string instead if you only need the redis:// URL for your app config.',
|
|
2391
2400
|
inputSchema: {
|
|
2392
2401
|
type: 'object',
|
|
2393
2402
|
properties: {
|
|
@@ -2438,11 +2447,15 @@ const TOOLS = [
|
|
|
2438
2447
|
{
|
|
2439
2448
|
name: 'cache_set',
|
|
2440
2449
|
description: 'Set a key-value pair in a running cache instance. ' +
|
|
2441
|
-
'
|
|
2450
|
+
'Overwrites any existing value at the key — not idempotent for new data. ' +
|
|
2451
|
+
'Returns "OK" on success; returns an error if the instance_id is invalid or the instance is paused. ' +
|
|
2452
|
+
'Value can be a string or a JSON-serialized object. Optionally set a TTL in seconds (omit for no expiry). ' +
|
|
2453
|
+
'Use cache_mset instead for setting multiple keys in a single pipeline round-trip. ' +
|
|
2454
|
+
'Use cache_stream_set instead for caching LLM token streams (ordered string chunks).',
|
|
2442
2455
|
inputSchema: {
|
|
2443
2456
|
type: 'object',
|
|
2444
2457
|
properties: {
|
|
2445
|
-
instance_id: { type: 'string' },
|
|
2458
|
+
instance_id: { type: 'string', description: 'UUID of the cache instance (from list_instances)' },
|
|
2446
2459
|
key: { type: 'string', description: 'Cache key' },
|
|
2447
2460
|
value: { type: 'string', description: 'Value to store (string or JSON)' },
|
|
2448
2461
|
ttl: { type: 'number', description: 'Time-to-live in seconds (optional, omit for no expiry)' },
|
|
@@ -2517,11 +2530,15 @@ const TOOLS = [
|
|
|
2517
2530
|
{
|
|
2518
2531
|
name: 'cache_stats',
|
|
2519
2532
|
description: 'Get real-time stats for a cache instance: memory usage, hit/miss rate, commands/sec, ' +
|
|
2520
|
-
'connected clients, keyspace info, and uptime.'
|
|
2533
|
+
'connected clients, keyspace info, and uptime. Read-only — no side effects. ' +
|
|
2534
|
+
'The instance_id identifies the target instance (obtain from list_instances). ' +
|
|
2535
|
+
'Use this for monitoring, capacity planning, or debugging performance issues — ' +
|
|
2536
|
+
'not for reading cached values (use cache_get for that). ' +
|
|
2537
|
+
'Use cache_exists or cache_ttl if you only need key-level information.',
|
|
2521
2538
|
inputSchema: {
|
|
2522
2539
|
type: 'object',
|
|
2523
2540
|
properties: {
|
|
2524
|
-
instance_id: { type: 'string' },
|
|
2541
|
+
instance_id: { type: 'string', description: 'UUID of the cache instance (from list_instances)' },
|
|
2525
2542
|
},
|
|
2526
2543
|
required: ['instance_id'],
|
|
2527
2544
|
},
|
|
@@ -2529,13 +2546,17 @@ const TOOLS = [
|
|
|
2529
2546
|
{
|
|
2530
2547
|
name: 'semantic_search',
|
|
2531
2548
|
description: 'Find cached entries that are semantically similar to a natural-language query. ' +
|
|
2532
|
-
'
|
|
2533
|
-
'
|
|
2534
|
-
'
|
|
2549
|
+
'Read-only — no side effects. ' +
|
|
2550
|
+
'Returns an array of objects, each with: key, value, similarity_score (0–1), and namespace. ' +
|
|
2551
|
+
'Returns an empty array if no entries meet the similarity threshold. ' +
|
|
2552
|
+
'Requires OPENAI_API_KEY (or compatible provider) and the Speed/Business tier with CACHLY_VECTOR_URL. ' +
|
|
2553
|
+
'Embeddings are computed server-side and never leave Germany (pgvector HNSW index). ' +
|
|
2554
|
+
'Example: "find all cached responses about password reset" or "what did we answer about pricing?". ' +
|
|
2555
|
+
'Use cache_get for exact key lookup; use smart_recall for brain lessons.',
|
|
2535
2556
|
inputSchema: {
|
|
2536
2557
|
type: 'object',
|
|
2537
2558
|
properties: {
|
|
2538
|
-
instance_id: { type: 'string' },
|
|
2559
|
+
instance_id: { type: 'string', description: 'UUID of the cache instance (from list_instances)' },
|
|
2539
2560
|
query: { type: 'string', description: 'Natural-language query to find similar cached content' },
|
|
2540
2561
|
threshold: {
|
|
2541
2562
|
type: 'number',
|
|
@@ -3287,9 +3308,12 @@ const TOOLS = [
|
|
|
3287
3308
|
{
|
|
3288
3309
|
name: 'global_learn',
|
|
3289
3310
|
description: 'Store a lesson that applies across ALL your projects (cross-project knowledge). ' +
|
|
3311
|
+
'Idempotent: if a lesson with the same topic already exists, it is updated in place — no duplicates are created. ' +
|
|
3312
|
+
'Returns a confirmation with the stored lesson key. No rate limits. ' +
|
|
3290
3313
|
'Global lessons are stored with the prefix cachly:global:lesson: and recalled from any instance via global_recall. ' +
|
|
3291
3314
|
'Use for tool preferences, personal workflows, platform quirks, and universal gotchas. ' +
|
|
3292
|
-
'Example: global_learn(topic="bash:macos-arrays", lesson="Arrays work differently on macOS bash 3.2")'
|
|
3315
|
+
'Example: global_learn(topic="bash:macos-arrays", lesson="Arrays work differently on macOS bash 3.2"). ' +
|
|
3316
|
+
'Use learn_from_attempts for project-specific session lessons; use team_learn to share lessons with your team.',
|
|
3293
3317
|
inputSchema: {
|
|
3294
3318
|
type: 'object',
|
|
3295
3319
|
properties: {
|
|
@@ -3339,8 +3363,12 @@ const TOOLS = [
|
|
|
3339
3363
|
{
|
|
3340
3364
|
name: 'import_public_brain',
|
|
3341
3365
|
description: 'Import community lessons from the Cachly Public Brain for a framework. ' +
|
|
3342
|
-
'
|
|
3343
|
-
'
|
|
3366
|
+
'Non-destructive: existing lessons with the same topic key are not overwritten. ' +
|
|
3367
|
+
'Returns the count of lessons imported and their topic slugs. ' +
|
|
3368
|
+
'Available frameworks: nextjs, fastapi, go, docker, kubernetes, react, typescript, python, rust, laravel, rails, spring. ' +
|
|
3369
|
+
'Use this to bootstrap a new brain with battle-tested community knowledge before your first session_start. ' +
|
|
3370
|
+
'Use publish_lesson to contribute your own lessons to the Public Brain; ' +
|
|
3371
|
+
'use learn_from_attempts for storing lessons from your own sessions.',
|
|
3344
3372
|
inputSchema: {
|
|
3345
3373
|
type: 'object',
|
|
3346
3374
|
properties: {
|
|
@@ -3545,12 +3573,16 @@ const TOOLS = [
|
|
|
3545
3573
|
},
|
|
3546
3574
|
{
|
|
3547
3575
|
name: 'causal_trace',
|
|
3548
|
-
description: 'Root Cause Analysis through memory
|
|
3549
|
-
'
|
|
3550
|
-
'
|
|
3576
|
+
description: 'Root Cause Analysis through memory: given a problem description, traces the causal chain ' +
|
|
3577
|
+
'from root cause through intermediate failures to the current symptom, then surfaces the ' +
|
|
3578
|
+
'exact solution that worked before. Read-only — does not modify any stored data. ' +
|
|
3579
|
+
'Requires prior learning: brain must have lessons stored via learn_from_attempts or brain_from_git. ' +
|
|
3580
|
+
'Returns an ordered chain of concepts with confidence scores plus the matching solution; ' +
|
|
3581
|
+
'returns an empty chain with a message if no causal path is found. ' +
|
|
3551
3582
|
'Example: causal_trace(problem="auth breaks after restart") → ' +
|
|
3552
|
-
'"Root: k8s:namespace-terminating → keycloak:jwks-race → Solution
|
|
3553
|
-
'
|
|
3583
|
+
'"Root: k8s:namespace-terminating → keycloak:jwks-race → Solution: PollUntilContextTimeout 3min". ' +
|
|
3584
|
+
'Use recall_best_solution for direct topic lookup, syndicate_search for community patterns, ' +
|
|
3585
|
+
'and causal_trace when you have a symptom and need the full root-cause chain.',
|
|
3554
3586
|
inputSchema: {
|
|
3555
3587
|
type: 'object',
|
|
3556
3588
|
properties: {
|
|
@@ -3581,12 +3613,16 @@ const TOOLS = [
|
|
|
3581
3613
|
},
|
|
3582
3614
|
{
|
|
3583
3615
|
name: 'autopilot',
|
|
3584
|
-
description: '
|
|
3585
|
-
'
|
|
3586
|
-
'
|
|
3587
|
-
'
|
|
3588
|
-
'
|
|
3589
|
-
'
|
|
3616
|
+
description: 'Generate a CLAUDE.md / copilot-instructions.md that makes any AI self-managing forever. ' +
|
|
3617
|
+
'Writes a configuration file to disk — will overwrite an existing file at the target path. ' +
|
|
3618
|
+
'No auth required beyond a valid instance_id. ' +
|
|
3619
|
+
'The generated file instructs Claude, Cursor, Copilot, Windsurf, or Gemini to automatically ' +
|
|
3620
|
+
'call session_start at window open, learn_from_attempts after every fix, and session_end ' +
|
|
3621
|
+
'before closing — without being asked. ' +
|
|
3622
|
+
'Returns the generated file content as a string and the path where it was written. ' +
|
|
3623
|
+
'Use style="minimal" for just the three hooks; style="full" for the complete ruleset with examples. ' +
|
|
3624
|
+
'One command. Every AI. Always on. ' +
|
|
3625
|
+
'Use setup_ai_memory instead if you want an interactive one-shot setup that also creates an instance.',
|
|
3590
3626
|
inputSchema: {
|
|
3591
3627
|
type: 'object',
|
|
3592
3628
|
properties: {
|