Cachly MCP vs Moxie Docs MCP — MCP Server Comparison | AllMCPs
Side-by-Side Model Context Protocol Comparison
Cachly MCP vs Moxie Docs MCP
In-depth architectural comparison of the Cachly MCP and Moxie Docs MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Cachly MCP
Knowledge & Memory · Local stdio
Quality: 60/100 (Good) | Auth: API Key required
Moxie Docs MCP
Knowledge & Memory · Local stdio
Quality: 82/100 (Excellent) | Auth: API Key required
Verdict Summary: Choose Cachly MCP if you need specialized Knowledge & Memory tools running via a local process. Choose Moxie Docs MCP if your workspace requires Knowledge & Memory integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Cachly MCP when:
You need dedicated capabilities in the Knowledge & Memory domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Freemium).
You have access to required keys: CACHLY_API_KEY, REDIS_URL, VALKEY_SECRET.
Persistent AI memory brain for Claude Code, Cursor, Copilot, Windsurf, Cline & Zed. sessionstart() briefs your AI on last session, lessons, and open tasks in one call. 84 tools — Team Brain, semantic BM25+ search, Team Telepathy, Ambient Git Learning, Memory Crystals, Analytics, and managed Valkey/Redis. npx @cachly-dev/init — free tier, no credit card. Website
Tools & Capabilities Breakdown
Cachly MCP Tools (126)
list_instances
List all your cachly cache instances with their status and connection details. Read-only. Returns an array of instance objects — each with id, name, tier, status, region, RAM, and redis:// connection string. Returns an empty array if no instances exist. No pagination: all instances are returned in one call (typical accounts have < 20). Use this first to discover instance UUIDs required by get_instance, cache_get, cache_set, and all other cache tools. Use get_instance to retrieve full metadata for a single instance.
create_instance
Create a new managed Valkey/Redis cache instance on cachly.dev. Free tier provisions in ~30 seconds. Paid tiers return a Stripe checkout URL. Available tiers: free (25 MB), dev (200 MB, €19/mo), pro (900 MB, €49/mo), speed (900 MB Dragonfly + Semantic Cache, €79/mo), business (7 GB, €199/mo).
get_instance
Get full metadata for a specific cache instance: name, tier, status (provisioning / running / paused), region, RAM limit, Redis connection string, created_at, and expiry. Read-only. Returns an error if the instance_id is not found or belongs to another account. Call list_instances first to discover valid UUIDs. Use get_connection_string instead if you only need the redis:// URL for your app config.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Cachly MCP is categorized under Knowledge & Memory and uses a local stdio subprocess. In contrast, Moxie Docs MCP belongs to Knowledge & Memory using local stdio subprocess. Select Cachly MCP when you need capabilities focused on knowledge & memory and Moxie Docs MCP when you require tools for knowledge & memory.
Get the Redis/Valkey connection string (redis:// URL) for a running instance. Use this to configure your application or set environment variables.
delete_instance
Permanently delete a cache instance. Deprovisions the Kubernetes workload and removes all data. This action is irreversible.
cache_get
Get a value from a running cache instance by key. Returns the stored value (string or deserialized JSON object) or null if the key does not exist or has expired. Read-only — no side effects. Use cache_mget when you need multiple keys in one round-trip. Use cache_exists to check existence without retrieving the value. Use semantic_search when you need fuzzy/vector search across stored values.
cache_set
Set a key-value pair in a running cache instance. Overwrites any existing value at the key — not idempotent for new data. Returns "OK" on success; returns an error if the instance_id is invalid or the instance is paused. Value can be a string or a JSON-serialized object. Optionally set a TTL in seconds (omit for no expiry). Use cache_mset instead for setting multiple keys in a single pipeline round-trip. Use cache_stream_set instead for caching LLM token streams (ordered string chunks).
cache_delete
Permanently delete one or more keys from a running cache instance (uses Redis DEL). This operation is destructive and irreversible — deleted keys cannot be recovered. Deleting a non-existent key is safe and returns 0 for that key (no error). Returns the count of keys that were actually deleted (existing keys only). Use this to explicitly remove stale entries; prefer cache_set with a short TTL for auto-expiring data. Do NOT use this to clear an entire instance — use the dashboard or delete_instance for that.
cache_exists
Check whether one or more keys exist in a running cache instance (uses Redis EXISTS). Read-only — no side effects. Returns the count of keys that currently exist (integer 0 to N). If none of the keys exist, returns 0. If all exist, returns the total key count passed in. Duplicate keys in the input array are each counted separately (Redis behavior). Use this to check presence before a cache_get to avoid null handling, or to verify a cache warm-up completed. Use cache_get instead if you also need the value; use cache_ttl if you need expiry info.
cache_ttl
Get the remaining time-to-live (TTL) of a key in seconds. Returns -1 if the key exists but has no expiry, -2 if the key does not exist. Read-only — no side effects. Use cache_set with a ttl parameter to set or update the expiry.
cache_keys
List keys in a cache instance matching an optional glob pattern (e.g. "user:*", "session:*"). Uses SCAN to avoid blocking the server. Returns at most `count` keys.
cache_stats
Get real-time stats for a cache instance: memory usage, hit/miss rate, commands/sec, connected clients, keyspace info, and uptime. Read-only — no side effects. The instance_id identifies the target instance (obtain from list_instances). Use this for monitoring, capacity planning, or debugging performance issues — not for reading cached values (use cache_get for that). Use cache_exists or cache_ttl if you only need key-level information.
+114 more tools listed on main page
Moxie Docs MCP Tools (12)
moxie.get_ai_context
Compact pre-edit briefing: repo status, verified commands, top conventions, open gaps, team notes. Read this first.
moxie.get_doc_impact
Given the paths you're about to change (and any you're deleting), returns the conventions, gaps, and existing docs whose evidence overlaps them - and flags net-new/undocumented surfaces.
moxie.get_api_context
Given paths you're about to touch, returns structured context for any API endpoints they map to: method, path, schema, and known consumers/features.
moxie.review_change
Self-review a change before opening the PR; returns a severity-ranked verdict (clean / warnings / must-fix) covering convention breaches, stale docs, undocumented surface, and broken references.
moxie.get_conventions
Discovered coding conventions, grouped by category, with confidence scores, agent guidance, and source-file citations.
moxie.search_docs
Semantic + keyword search over generated docs, conventions, gaps, and AI context.
moxie.get_doc_gaps
Unresolved documentation gaps with severity and the paths they concern.
moxie.get_documentation_opportunities
Recommended doc work: missing docs, drift repairs, and PR templates.
moxie.get_documentation_patterns
How the repository organizes and maintains its docs (where new docs belong).
moxie.list_docs
Paginated, section-grouped table of contents of every generated doc.
moxie.propose_doc_update
Add or update a doc as part of your current change; returns the target path + Markdown to write into your branch.
moxie.propose_doc_removal
Remove a Moxie-tracked doc your change makes obsolete; returns the path to delete in your branch.