cachly — experience for coding agents (MCP server)BLOCK
Solve it once. From then on, your AI knows. Experience for coding agents over MCP, EU-hosted. 124 MCP tools.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Solve it once. From then on, your AI knows. Every fix, every decision and every dead end becomes experience your AI uses at the right moment. You build faster, and your team builds on what you figured out.
[](https://www.npmjs.com/package/@cachly-dev/mcp-server)
@cachly-dev/mcp-server connects cachly to Claude Code, Cursor, GitHub Copilot, Windsurf, Cline, Continue.dev, Zed, Codex CLI and Gemini CLI over MCP. It offers 124 MCP tools. Your AI stores a lesson after a fix, and finds it again when the same problem returns. Your Brain (the store of your lessons) lives on EU servers.
Start without an account
Claude Code
/plugin marketplace add cachly-dev/cachly-mcp /plugin install cachly-brain@cachly
There is no JSON to write, no path to set and no key to copy. On the first tool call without a key, cachly creates a test Brain on EU servers. The test Brain has 14 days of the Dev tier. After that it runs on the free tier with the same key.
Check it with claude mcp list. You should see plugin:cachly-brain:cachly ... ✔ Connected. claude plugin details shows MCP servers (0) even when the server runs, because it does not count them.
The plugin adds three Claude Code hooks:
Turn on auto-update once: /plugin → Marketplaces → cachly → Enable auto-update. Claude Code leaves it off for marketplaces outside Anthropic's own.
f62d26ddffcaOBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add mcp-server -- npx -y @cachly-dev/[email protected]
Exposed tools (124)
86 read · 33 write · 5 destructive. Blast radius: 5 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
auto_learn_session | read | Auto-learn from a list of session observations WITHOUT explicit learn_from_attempts calls. |
autopilot | read | Generate a CLAUDE.md / copilot-instructions.md that makes any AI self-managing forever. |
brain_briefing | write | Push-based Brain warning: instead of waiting for you to ask, the Brain proactively checks |
brain_changelog | read | Generate a human-readable Markdown changelog of lessons learned in the last N days. |
brain_collab_pairs | read | Show the Person↔Person Collaboration Graph for your team (W5). |
brain_confirm_ci | read | Close the CI feedback loop: tell the Brain whether a CI job passed or failed and which topics |
brain_conflicts | read | READ-ONLY — list every unresolved belief_conflict (a previously confirmed fix now contradicted by a failure) |
brain_contribute_signal | read | Contribute a privacy-safe signal to the global Brain commons. Only the topic category, outcome, |
brain_coverage | read | Knowledge-coverage health score for your codebase — scored 0-100. |
brain_diff | read | git log for your AI Brain — see exactly what changed since a point in time. |
brain_discover | read | Search and browse publicly shared Brain snapshots in the cachly marketplace. |
brain_doctor | read | Check the health of your AI Brain and get actionable recommendations. |
brain_federate | write | FedBrain Layer 6 — Private org knowledge transfer: copy CKG edges + lessons from a source brain |
brain_file_map | read | Show what cachly knows about a list of files — experts + related lessons per file. |
brain_from_ci | write | Bulk-ingest CI run outcomes into the Brain — the brain_from_git equivalent for CI history. |
brain_from_git | write | Bootstrap brain lessons from git history. Parses commit messages and infers fix/feature/refactor |
brain_get_pref | read | Read back one or all preferences stored for this Brain instance. |
brain_graph | read | Export the Causal Knowledge Graph as a 3D-render-ready node/link payload (schema cachly.brain_graph/v1) — |
brain_hygiene | read | Autonomously sweep and maintain your Brain — flags stale lessons as provisional, archives long-dormant ones, |
brain_import | write | Import lessons from a publicly shared Brain snapshot into your own Brain instance. |
brain_import_meta | write | Import k-anonymous meta-lessons from the global Brain commons into your local Brain. |
brain_install | write | Install a Domain Brain into your local Brain — pulls its curated, high-trust lessons so they surface in |
brain_marketplace | read | Browse the Domain Brain marketplace — curated, installable packs of high-trust community lessons, |
brain_metrics | read | Report the three decisive Brain metrics: (1) time-to-first-recall (onboarding friction), |
brain_plan | read | READ-ONLY — no side effects, no writes, no external network calls. |
brain_portability | read | Bring your own model, keep your brain: the same memory in every AI editor. |
brain_predict | read | READ-ONLY — no side effects, no writes, no external network calls. |
brain_predict_failures | write | Pre-deploy failure prediction with probability percentages. Given a change context (e.g. |
brain_resolve_conflict | read | Arbitrate a contested topic by picking the winning side. winner= |
brain_search | read | BM25+ full-text search over ALL brain data: lessons, context entries, session history, CKG nodes, roadmap items. |
brain_seed_starter | write | Seed a fresh Brain with a curated set of universal, high-value engineering lessons |
brain_service_map | read | Map everything the Brain knows about a running service or system: who operates it, |
brain_set_pref | write | Persist a user preference for this Brain instance. |
brain_share | write | Export a Brain snapshot and create a publicly shareable link that anyone can import. |
brain_share_list | read | List all Brain snapshots you have previously shared with brain_share. |
brain_unshare | destructive | Revoke and permanently delete a public Brain share by its share ID. |
brain_watch | write | Install an ambient git post-commit hook that automatically learns from every commit — |
brain_who_knows | read | Find who in your team has the most expertise on a given topic. |
cache_delete | destructive | Permanently delete one or more keys from a running cache instance (uses Redis DEL). |
cache_exists | read | Check whether one or more keys exist in a running cache instance (uses Redis EXISTS). |
cache_get | read | Get a value from a running cache instance by key. |
cache_keys | read | List keys in a cache instance matching an optional glob pattern (e.g. |
cache_lock_acquire | write | Acquire a distributed lock using Redis SET NX PX (Redlock-lite). |
cache_lock_release | read | Release a previously acquired distributed lock. |
cache_mget | read | Retrieve multiple keys in one round-trip using native Redis MGET. |
cache_mset | write | Set multiple key-value pairs in a single pipeline round-trip. |
cache_org_stats | read | Show shared cache statistics for an org namespace. |
cache_set | write | Set a key-value pair in a running cache instance. |
cache_stats | read | Get real-time stats for a cache instance: memory usage, hit/miss rate, commands/sec, |
cache_stream_get | read | Retrieve a previously cached stream as an ordered list of string chunks. |
cache_stream_set | write | Cache a list of string chunks (e.g. LLM token stream) via Redis RPUSH. |
cache_ttl | read | Get the remaining time-to-live (TTL) of a key in seconds. |
cache_warmup | read | Pre-warm the semantic cache with a list of prompt/value pairs. |
causal_trace | read | Root Cause Analysis through memory: given a problem description, traces the causal chain |
ckg_inspect | read | Inspect the Causal Knowledge Graph (CKG) for a concept. Shows all typed edges (fixes, requires, co-occurs, causes) |
cls_ingest | read | Continuous Learning Stream (CLS — Layer 5): Ingest learning signals WITHOUT explicit session_end calls. |
cls_install_hooks | write | READ-ONLY — outputs text only, writes no files, makes no network calls, has no side effects. |
compact_recover | read | Call FIRST after any context limit hit / compaction. Reconstructs full context from Memory Crystal + |
create_instance | write | Create a new managed Valkey/Redis cache instance on cachly.dev. |
create_org | write | Create a new Cachly organization for team collaboration. |
crystal_view | read | Inspect the current Memory Crystal — the compressed wisdom distilled from all past sessions. |
delete_instance | destructive | Permanently delete a cache instance. Deprovisions the Kubernetes workload and removes all data. |
detect_namespace | read | Classify a prompt into one of 5 semantic namespaces using text heuristics. |
fedbrain_confirm | read | Confirm that a syndicated lesson from the global commons worked for you. |
fedbrain_contribute | read | FedBrain (Layer 6): Contribute a lesson to the global Knowledge Commons with a cryptographic |
fedbrain_search | read | FedBrain context-weighted search: Search the global commons, weighting results by tech-stack similarity. |
fedbrain_status | read | Show your FedBrain federation status: lessons contributed to global commons, recent confirmations, |
forget_context | destructive | Delete one or more cached context entries. |
get_api_status | read | Full diagnostic for your cachly Brain — call this FIRST whenever anything is not working. |
get_connection_string | read | Get the Redis/Valkey connection string (redis:// URL) for a running instance. |
get_instance | read | Get full metadata for a specific cache instance: name, tier, status (provisioning / running / paused), |
get_org_plan | read | Get the current org plan, seat usage, and billing info for an organization. |
global_learn | read | Store a lesson that applies across ALL your projects (cross-project knowledge). |
global_recall | read | Read-only retrieval of cross-project lessons stored via global_learn. No side effects. |
import_public_brain | write | Import community lessons from the Cachly Public Brain for a framework. |
index_project | read | Index local source files into the cachly semantic cache so AI assistants can use |
invite_member | read | MUTATION — sends an invite email immediately and cannot be undone via MCP. |
knowledge_decay | read | Confidence scoring for every lesson in your Brain — because old knowledge rots. |
learn_from_attempts | write | Store a lesson AFTER any non-trivial task (deploy, debug, fix, decision); future sessions recall it. |
lesson_verified | read | Report that you RAN the check for a lesson and what came back. This is the only way a lesson gets fresh again — |
list_instances | read | List all your cachly cache instances with their status and connection details. |
list_orgs | read | List your Cachly organizations (team/org plans). |
list_remembered | read | List all cached context entries for this project. |
madc_deliberate | read | Multi-Agent Deliberation Chamber (MADC — Layer 3): When conflicting lessons exist for a topic, |
memory_consolidate | read | Cognitive memory consolidation — the weekly garbage collector for your AI Brain. |
memory_crystalize | read | Compress the last 30-50 sessions and auto-learned lessons into a dense Memory Crystal. |
publish_lesson | write | Publish a lesson to the Cachly Public Brain (anonymized community knowledge base). |
recall_at | read | Brain Archaeology — see what a lesson looked like at a specific point in time. |
recall_best_solution | read | Recall the best known solution for a topic from past lessons. |
recall_context | read | Retrieve previously saved context from the cache. |
recall_feedback | read | Tell the Brain whether a recalled lesson ACTUALLY SOLVED your problem. |
remember_context | write | Save context information to the cache so you can recall it later without re-computing. |
roadmap_add | write | Add a new item to the persistent project roadmap stored in the Brain. |
roadmap_list | read | List all roadmap items, optionally filtered by status, priority, tag, or milestone. |
roadmap_next | read | Get the single most important next actionable roadmap item. |
roadmap_update | write | Update the status, priority, or details of a roadmap item. |
semantic_search | read | Find cached entries that are semantically similar to a natural-language query. |
session_end | write | Save a session summary when you finish working. |
session_handoff | write | Save a detailed handoff for the NEXT chat window / session. |
session_ping | read | Lightweight checkpoint — call this every ~5 tool calls or whenever you complete a significant step. |
session_start | write | Single-call session briefing. Call this at the START of every session INSTEAD of multiple separate smart_recall/recall_best_solution calls. |
session_start_summary | write | Focused session briefing for large brains. Returns only the top-N most relevant lessons for the given focus topic, |
set_cost_per_call | write | Set the assumed cost per avoided LLM API call (USD) for this instance. |
setup_ai_memory | read | One-shot setup of the cachly 3-layer AI Memory system for a project.\n\n |
skill_gaps | read | Show knowledge blind spots in your Brain — domains with unresolved failures, |
smart_recall | read | Semantically search cached context using natural language. instance_id may be omitted; the configured instance is used — never guess one. |
sync_file_changes | write | Associate recent file changes with brain knowledge. |
syndicate | read | Contribute a verified lesson to the GLOBAL Cachly Knowledge Commons — |
syndicate_search | read | Search the GLOBAL Cachly Knowledge Commons for solutions contributed by the entire community. |
syndicate_stats | read | Show the health of the global Knowledge Commons: total lessons, total confirms, |
syndicate_trending | read | Show the TRENDING lessons in the global Knowledge Commons — those with the fastest confirmation velocity |
team_assign_role | read | Assign a role (admin | reviewer | contributor | viewer) to a team member on a shared brain instance. |
team_audit | read | View the governance audit log for a shared brain — an immutable trail of who changed roles and who confirmed which lessons, with timestamps. |
team_confirm | read | Endorse (review-confirm) a team lesson so trusted, human-reviewed knowledge ranks above unreviewed auto-learned entries. |
team_crystallize | write | Create a Team Crystal — the team-wide, causal counterpart to memory_crystalize. |
team_expertise_map | read | Full team expertise overview — who knows what, at a glance. |
team_grant_scope | destructive | Add or remove a team member to/from a named group (sub-team) on a shared brain. |
team_learn | read | Store a lesson in a shared team brain so all team members benefit. |
team_recall | read | Recall lessons from a shared team brain, showing who learned what. |
team_roster | read | Show all team members and their assigned roles on a shared brain instance. |
team_scopes | read | List team groups and their members, or the groups a specific person belongs to. |
team_synthesize | write | Team Brain Synthesis — merge multiple contributors\ |
team_whoami | read | Show your own role and capabilities on a shared brain instance. |
trace_dependency | read | Causal Chain — find all lessons that depend on a given prerequisite. |
Trust audit
BLOCKgrade F · trust 45/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (8 observation(s))
- Shell
- declared (6 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (25)
pipeline(): { get(k: string): unknown; exec(): Promise<Array<[null, string | null]>> } {exec(): Promise<unknown>;
console.error(' ssh -i ~/.ssh/cachly-deploy -o "ProxyCommand=ssh -i ~/.ssh/cachly-deploy \\');~/.ssh ... curl
console.log(`Gestrichen wuerden ${(100 * tokenWeg / tokenAlle).toFixed(1)} % der Token`);console.log(` CACHLY_JWT=${token.slice(0, 12)}... CACHLY_BRAIN_INSTANCE_ID=${instance.id}`);['update', ['アップデート', '更新', '업데이트', 'upgrade', 'تحديث', 'עדכון', 'بهروزرسانی', 'अपडेट', 'aktualisieren', 'aktualisierung', 'actualizar', 'aggiornare', 'atualizar', 'обновление', 'обновить', 'günc
['backup', ['バックアップ', '备份', '백업', 'نسخ احتياطي', 'גיבוי', 'پشتیبانگیری', 'बैकअप', 'sicherung', 'sauvegarde', 'respaldo', 'cópia de segurança', 'резервная копия', 'резерв', 'yedekleme']],
['debug', ['デバッグ', '调试', '디버그', 'debugging', 'breakpoint', 'تصحيح', 'איתור באגים', 'اشکالزدایی', 'डीबग', 'debuggen', 'déboguer', 'depurar', 'отладка', 'дебаг', 'hata ayıklama']],
['restart', ['再起動', '重启', '재시작', 'reboot', 'إعادة تشغيل', 'הפעלה מחדש', 'راهاندازی مجدد', 'पुنरारंभ', 'neustart', 'redémarrer', 'reiniciar', 'riavviare']],
['بهروزرسانی', ['update', 'upgrade']],
brain_unshare, cache_delete, delete_instance, forget_context, team_grant_scope
.env.test.example
new Function('require', 'module', 'exports', outputText)(pipeline(): { get(k: string): unknown; exec(): () => Promise<Array<[null, string | null]>> } | {get(k: string): unknown; exec(): Promise<Array<[null, string | null]>>;
return `${art}:${createHash('sha1').update(text).digest('hex').slice(0, 16)}`;return `${art}:${createHash('sha1').update(text).digest('hex').slice(0, 16)}`;return createHash('sha1').update(s).digest('hex');return createHash('md5').update(text).digest('hex').slice(0, 12);return createHash('sha1').update(instanceId).digest('hex').slice(0, 12);const lang = 'ssh -i ~/.ssh/key -p 2222 [email protected] ' + 'x'.repeat(120);
'ssh -i ~/.ssh/cachly-deploy -p 2222 [email protected]',
commands: ['wg show wg0 allowed-ips', 'ssh -i ~/.ssh/cachly-deploy -p 2222 [email protected]'],
const root = (p: string) => new URL(`../../../../${p}`, import.meta.url);Gates applied: no_behavioural_pass.
f62d26ddffcafull audit observations/trust-audit/mcp-server/cachly-dev__cachly-mcp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | f62d26ddffca | BLOCK | F | 45 | first audit |
Questions
What is the @cachly-dev/mcp-server MCP server?
Solve it once. From then on, your AI knows. Experience for coding agents over MCP, EU-hosted. 124 MCP tools.
What tools does @cachly-dev/mcp-server expose?
124 in total: 86 read-only, 33 that write, and 5 that can delete or overwrite (brain_unshare, cache_delete, delete_instance, forget_context, team_grant_scope). Every one is listed on this page with its risk.
Is @cachly-dev/mcp-server safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (45/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 5 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does @cachly-dev/mcp-server need?
It reads CACHLY_ADMIN_KEY, CACHLY_API_KEY, CACHLY_AUTHOR, CACHLY_GITLAB_TOKEN, COHERE_API_KEY, E2E_API_KEY, GEMINI_API_KEY, GH_TOKEN, GITHUB_TOKEN, MISTRAL_API_KEY, OPENAI_API_KEY and TELEGRAM_BOT_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does @cachly-dev/mcp-server run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @cachly-dev/mcp-server at 0.10.184.
How current is this page?
The grade is for one exact copy of the source (f62d26ddffca), read on 2026-10-12. The repository is watched and re-audited when it changes.