Atlas / MCP servers / cachly-dev / cachly — experience for coding agents (MCP server)

cachly — experience for coding agents (MCP server)BLOCK

mcp/cachly-dev/cachly-mcp

Solve it once. From then on, your AI knows. Experience for coding agents over MCP, EU-hosted. 124 MCP tools.

Verdict
BLOCK
Grade
F
Trust score
45 /100
Exposed tools
124 86r · 33w · 5d
Transport
stdio · streamable-http
License
Apache-2.0
Stars
2
01

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.

Read from source at commit f62d26ddffcaOBSERVED · 2026-10-12
Advertisement
02

Connect

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-code (npm)
claude mcp add mcp-server -- npx -y @cachly-dev/[email protected]
03

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.

ToolRiskDescription
auto_learn_sessionreadAuto-learn from a list of session observations WITHOUT explicit learn_from_attempts calls.
autopilotreadGenerate a CLAUDE.md / copilot-instructions.md that makes any AI self-managing forever.
brain_briefingwritePush-based Brain warning: instead of waiting for you to ask, the Brain proactively checks
brain_changelogreadGenerate a human-readable Markdown changelog of lessons learned in the last N days.
brain_collab_pairsreadShow the Person↔Person Collaboration Graph for your team (W5).
brain_confirm_cireadClose the CI feedback loop: tell the Brain whether a CI job passed or failed and which topics
brain_conflictsreadREAD-ONLY — list every unresolved belief_conflict (a previously confirmed fix now contradicted by a failure)
brain_contribute_signalreadContribute a privacy-safe signal to the global Brain commons. Only the topic category, outcome,
brain_coveragereadKnowledge-coverage health score for your codebase — scored 0-100.
brain_diffreadgit log for your AI Brain — see exactly what changed since a point in time.
brain_discoverreadSearch and browse publicly shared Brain snapshots in the cachly marketplace.
brain_doctorreadCheck the health of your AI Brain and get actionable recommendations.
brain_federatewriteFedBrain Layer 6 — Private org knowledge transfer: copy CKG edges + lessons from a source brain
brain_file_mapreadShow what cachly knows about a list of files — experts + related lessons per file.
brain_from_ciwriteBulk-ingest CI run outcomes into the Brain — the brain_from_git equivalent for CI history.
brain_from_gitwriteBootstrap brain lessons from git history. Parses commit messages and infers fix/feature/refactor
brain_get_prefreadRead back one or all preferences stored for this Brain instance.
brain_graphreadExport the Causal Knowledge Graph as a 3D-render-ready node/link payload (schema cachly.brain_graph/v1) —
brain_hygienereadAutonomously sweep and maintain your Brain — flags stale lessons as provisional, archives long-dormant ones,
brain_importwriteImport lessons from a publicly shared Brain snapshot into your own Brain instance.
brain_import_metawriteImport k-anonymous meta-lessons from the global Brain commons into your local Brain.
brain_installwriteInstall a Domain Brain into your local Brain — pulls its curated, high-trust lessons so they surface in
brain_marketplacereadBrowse the Domain Brain marketplace — curated, installable packs of high-trust community lessons,
brain_metricsreadReport the three decisive Brain metrics: (1) time-to-first-recall (onboarding friction),
brain_planreadREAD-ONLY — no side effects, no writes, no external network calls.
brain_portabilityreadBring your own model, keep your brain: the same memory in every AI editor.
brain_predictreadREAD-ONLY — no side effects, no writes, no external network calls.
brain_predict_failureswritePre-deploy failure prediction with probability percentages. Given a change context (e.g.
brain_resolve_conflictreadArbitrate a contested topic by picking the winning side. winner=
brain_searchreadBM25+ full-text search over ALL brain data: lessons, context entries, session history, CKG nodes, roadmap items.
brain_seed_starterwriteSeed a fresh Brain with a curated set of universal, high-value engineering lessons
brain_service_mapreadMap everything the Brain knows about a running service or system: who operates it,
brain_set_prefwritePersist a user preference for this Brain instance.
brain_sharewriteExport a Brain snapshot and create a publicly shareable link that anyone can import.
brain_share_listreadList all Brain snapshots you have previously shared with brain_share.
brain_unsharedestructiveRevoke and permanently delete a public Brain share by its share ID.
brain_watchwriteInstall an ambient git post-commit hook that automatically learns from every commit —
brain_who_knowsreadFind who in your team has the most expertise on a given topic.
cache_deletedestructivePermanently delete one or more keys from a running cache instance (uses Redis DEL).
cache_existsreadCheck whether one or more keys exist in a running cache instance (uses Redis EXISTS).
cache_getreadGet a value from a running cache instance by key.
cache_keysreadList keys in a cache instance matching an optional glob pattern (e.g.
cache_lock_acquirewriteAcquire a distributed lock using Redis SET NX PX (Redlock-lite).
cache_lock_releasereadRelease a previously acquired distributed lock.
cache_mgetreadRetrieve multiple keys in one round-trip using native Redis MGET.
cache_msetwriteSet multiple key-value pairs in a single pipeline round-trip.
cache_org_statsreadShow shared cache statistics for an org namespace.
cache_setwriteSet a key-value pair in a running cache instance.
cache_statsreadGet real-time stats for a cache instance: memory usage, hit/miss rate, commands/sec,
cache_stream_getreadRetrieve a previously cached stream as an ordered list of string chunks.
cache_stream_setwriteCache a list of string chunks (e.g. LLM token stream) via Redis RPUSH.
cache_ttlreadGet the remaining time-to-live (TTL) of a key in seconds.
cache_warmupreadPre-warm the semantic cache with a list of prompt/value pairs.
causal_tracereadRoot Cause Analysis through memory: given a problem description, traces the causal chain
ckg_inspectreadInspect the Causal Knowledge Graph (CKG) for a concept. Shows all typed edges (fixes, requires, co-occurs, causes)
cls_ingestreadContinuous Learning Stream (CLS — Layer 5): Ingest learning signals WITHOUT explicit session_end calls.
cls_install_hookswriteREAD-ONLY — outputs text only, writes no files, makes no network calls, has no side effects.
compact_recoverreadCall FIRST after any context limit hit / compaction. Reconstructs full context from Memory Crystal +
create_instancewriteCreate a new managed Valkey/Redis cache instance on cachly.dev.
create_orgwriteCreate a new Cachly organization for team collaboration.
crystal_viewreadInspect the current Memory Crystal — the compressed wisdom distilled from all past sessions.
delete_instancedestructivePermanently delete a cache instance. Deprovisions the Kubernetes workload and removes all data.
detect_namespacereadClassify a prompt into one of 5 semantic namespaces using text heuristics.
fedbrain_confirmreadConfirm that a syndicated lesson from the global commons worked for you.
fedbrain_contributereadFedBrain (Layer 6): Contribute a lesson to the global Knowledge Commons with a cryptographic
fedbrain_searchreadFedBrain context-weighted search: Search the global commons, weighting results by tech-stack similarity.
fedbrain_statusreadShow your FedBrain federation status: lessons contributed to global commons, recent confirmations,
forget_contextdestructiveDelete one or more cached context entries.
get_api_statusreadFull diagnostic for your cachly Brain — call this FIRST whenever anything is not working.
get_connection_stringreadGet the Redis/Valkey connection string (redis:// URL) for a running instance.
get_instancereadGet full metadata for a specific cache instance: name, tier, status (provisioning / running / paused),
get_org_planreadGet the current org plan, seat usage, and billing info for an organization.
global_learnreadStore a lesson that applies across ALL your projects (cross-project knowledge).
global_recallreadRead-only retrieval of cross-project lessons stored via global_learn. No side effects.
import_public_brainwriteImport community lessons from the Cachly Public Brain for a framework.
index_projectreadIndex local source files into the cachly semantic cache so AI assistants can use
invite_memberreadMUTATION — sends an invite email immediately and cannot be undone via MCP.
knowledge_decayreadConfidence scoring for every lesson in your Brain — because old knowledge rots.
learn_from_attemptswriteStore a lesson AFTER any non-trivial task (deploy, debug, fix, decision); future sessions recall it.
lesson_verifiedreadReport that you RAN the check for a lesson and what came back. This is the only way a lesson gets fresh again —
list_instancesreadList all your cachly cache instances with their status and connection details.
list_orgsreadList your Cachly organizations (team/org plans).
list_rememberedreadList all cached context entries for this project.
madc_deliberatereadMulti-Agent Deliberation Chamber (MADC — Layer 3): When conflicting lessons exist for a topic,
memory_consolidatereadCognitive memory consolidation — the weekly garbage collector for your AI Brain.
memory_crystalizereadCompress the last 30-50 sessions and auto-learned lessons into a dense Memory Crystal.
publish_lessonwritePublish a lesson to the Cachly Public Brain (anonymized community knowledge base).
recall_atreadBrain Archaeology — see what a lesson looked like at a specific point in time.
recall_best_solutionreadRecall the best known solution for a topic from past lessons.
recall_contextreadRetrieve previously saved context from the cache.
recall_feedbackreadTell the Brain whether a recalled lesson ACTUALLY SOLVED your problem.
remember_contextwriteSave context information to the cache so you can recall it later without re-computing.
roadmap_addwriteAdd a new item to the persistent project roadmap stored in the Brain.
roadmap_listreadList all roadmap items, optionally filtered by status, priority, tag, or milestone.
roadmap_nextreadGet the single most important next actionable roadmap item.
roadmap_updatewriteUpdate the status, priority, or details of a roadmap item.
semantic_searchreadFind cached entries that are semantically similar to a natural-language query.
session_endwriteSave a session summary when you finish working.
session_handoffwriteSave a detailed handoff for the NEXT chat window / session.
session_pingreadLightweight checkpoint — call this every ~5 tool calls or whenever you complete a significant step.
session_startwriteSingle-call session briefing. Call this at the START of every session INSTEAD of multiple separate smart_recall/recall_best_solution calls.
session_start_summarywriteFocused session briefing for large brains. Returns only the top-N most relevant lessons for the given focus topic,
set_cost_per_callwriteSet the assumed cost per avoided LLM API call (USD) for this instance.
setup_ai_memoryreadOne-shot setup of the cachly 3-layer AI Memory system for a project.\n\n
skill_gapsreadShow knowledge blind spots in your Brain — domains with unresolved failures,
smart_recallreadSemantically search cached context using natural language. instance_id may be omitted; the configured instance is used — never guess one.
sync_file_changeswriteAssociate recent file changes with brain knowledge.
syndicatereadContribute a verified lesson to the GLOBAL Cachly Knowledge Commons —
syndicate_searchreadSearch the GLOBAL Cachly Knowledge Commons for solutions contributed by the entire community.
syndicate_statsreadShow the health of the global Knowledge Commons: total lessons, total confirms,
syndicate_trendingreadShow the TRENDING lessons in the global Knowledge Commons — those with the fastest confirmation velocity
team_assign_rolereadAssign a role (admin | reviewer | contributor | viewer) to a team member on a shared brain instance.
team_auditreadView the governance audit log for a shared brain — an immutable trail of who changed roles and who confirmed which lessons, with timestamps.
team_confirmreadEndorse (review-confirm) a team lesson so trusted, human-reviewed knowledge ranks above unreviewed auto-learned entries.
team_crystallizewriteCreate a Team Crystal — the team-wide, causal counterpart to memory_crystalize.
team_expertise_mapreadFull team expertise overview — who knows what, at a glance.
team_grant_scopedestructiveAdd or remove a team member to/from a named group (sub-team) on a shared brain.
team_learnreadStore a lesson in a shared team brain so all team members benefit.
team_recallreadRecall lessons from a shared team brain, showing who learned what.
team_rosterreadShow all team members and their assigned roles on a shared brain instance.
team_scopesreadList team groups and their members, or the groups a specific person belongs to.
team_synthesizewriteTeam Brain Synthesis — merge multiple contributors\
team_whoamireadShow your own role and capabilities on a shared brain instance.
trace_dependencyreadCausal Chain — find all lessons that depend on a given prerequisite.
04

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (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)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/bench/mini-redis.ts:73
pipeline(): { get(k: string): unknown; exec(): Promise<Array<[null, string | null]>> } {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/suchstatistik.ts:28
exec(): Promise<unknown>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/bench/eingaenge-einbetten.ts:336
console.error('  ssh -i ~/.ssh/cachly-deploy -o "ProxyCommand=ssh -i ~/.ssh/cachly-deploy \\');
Why it matters. touches a credential store
HIGHNetwork egress · net.env_exfil · CWE-200, CWE-319
src/bench/eingaenge-einbetten.ts:336
~/.ssh ... curl
Why it matters. reads secrets in the same file that sends data out
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/bench/schablonen-stutzen.ts:152
console.log(`Gestrichen wuerden ${(100 * tokenWeg / tokenAlle).toFixed(1)} % der Token`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/index.ts:4652
console.log(`     CACHLY_JWT=${token.slice(0, 12)}... CACHLY_BRAIN_INSTANCE_ID=${instance.id}`);
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/search.ts:612
['update',      ['アップデート', '更新', '업데이트', 'upgrade', 'تحديث', 'עדכון', 'بهروزرسانی', 'अपडेट', 'aktualisieren', 'aktualisierung', 'actualizar', 'aggiornare', 'atualizar', 'обновление', 'обновить', 'günc
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/search.ts:626
['backup',      ['バックアップ', '备份', '백업', 'نسخ احتياطي', 'גיבוי', 'پشتیبانگیری', 'बैकअप', 'sicherung', 'sauvegarde', 'respaldo', 'cópia de segurança', 'резервная копия', 'резерв', 'yedekleme']],
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/search.ts:643
['debug',       ['デバッグ', '调试', '디버그', 'debugging', 'breakpoint', 'تصحيح', 'איתור באגים', 'اشکالزدایی', 'डीबग', 'debuggen', 'déboguer', 'depurar', 'отладка', 'дебаг', 'hata ayıklama']],
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/search.ts:645
['restart',     ['再起動', '重启', '재시작', 'reboot', 'إعادة تشغيل', 'הפעלה מחדש', 'راهاندازی مجدد', 'पुنरारंभ', 'neustart', 'redémarrer', 'reiniciar', 'riavviare']],
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/search.ts:843
['بهروزرسانی',      ['update', 'upgrade']],
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
brain_unshare, cache_delete, delete_instance, forget_context, team_grant_scope
Why it matters. 5 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.env.test.example
.env.test.example
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/__tests__/confidence-vectors.test.ts:119
new Function('require', 'module', 'exports', outputText)(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/wortindex.test.ts:36
pipeline(): { get(k: string): unknown; exec(): () => Promise<Array<[null, string | null]>> } | {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/wortindex.test.ts:37
get(k: string): unknown; exec(): Promise<Array<[null, string | null]>>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/bench/einbetten-schnell.ts:68
return `${art}:${createHash('sha1').update(text).digest('hex').slice(0, 16)}`;
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/bench/eingaenge-einbetten.ts:43
return `${art}:${createHash('sha1').update(text).digest('hex').slice(0, 16)}`;
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/bench/pruefsatz-frisch.ts:51
return createHash('sha1').update(s).digest('hex');
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/confidence.ts:105
return createHash('md5').update(text).digest('hex').slice(0, 12);
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/einblendung.ts:136
return createHash('sha1').update(instanceId).digest('hex').slice(0, 12);
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/__tests__/badge-nennt-den-pruefbefehl.test.ts:51
const lang = 'ssh -i ~/.ssh/key -p 2222 [email protected] ' + 'x'.repeat(120);
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/__tests__/lesson-preview.test.ts:34
'ssh -i ~/.ssh/cachly-deploy -p 2222 [email protected]',
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/__tests__/recall-vorschau.test.ts:32
commands: ['wg show wg0 allowed-ips', 'ssh -i ~/.ssh/cachly-deploy -p 2222 [email protected]'],
Why it matters. touches a credential store
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/__tests__/DOC-001.doc-truth.test.ts:5
const root = (p: string) => new URL(`../../../../${p}`, import.meta.url);

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha f62d26ddffcafull audit observations/trust-audit/mcp-server/cachly-dev__cachly-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12f62d26ddffcaBLOCKF45first audit
06

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.

Advertisement