{"name":"io.github.jarmstrong158/cambium","slug":"jarmstrong158-cambium","title":"Cambium","description":"Knowledge-lifecycle MCP: turn agent work into memory, recall it across projects, promote to org.","url":"https://mcp.market/server/jarmstrong158-cambium","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":17,"stars":0,"forks":0,"downloads_week":27,"last_push_at":"2026-08-22T12:17:52.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/jarmstrong158/cambium","website":null,"version":"0.2.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"cambium-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Absolute path to the project git clone cambium reads/writes. Defaults to the current repo (cwd git root) when unset.","format":"string","name":"CAMBIUM_REPO"},{"description":"Your unique agent id, attributed to captures/endorsements/promotions.","format":"string","name":"CAMBIUM_AGENT_ID"},{"description":"Path to the org knowledge repo clone (org scope). Omit to keep promotions at team scope.","format":"string","name":"CAMBIUM_ORG_REPO"}]}],"tools":[{"name":"capture","description":"Save a knowledge item to your LOCAL scope: a fact, design note, gotcha, or troubleshooting step worth remembering. This is the manual capture path; distill() is the automatic one.","write_action":false,"price_micros":0,"input_schema":null},{"name":"deprecate","description":"Retire a knowledge item so recall stops serving it — the counterpart to verify_entry (which re-affirms). This is the action stale_report points at: when an entry's premise has died (\"we've left NetSuite\"), deprecate it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"distill","description":"Automatically turn work that already happened into knowledge. Reads two substrates natively — no export step, no copy-paste:","write_action":false,"price_micros":0,"input_schema":null},{"name":"endorse","description":"Vouch for an item — the strong trust signal, and a human judgement that nothing else in this server can substitute for.","write_action":false,"price_micros":0,"input_schema":null},{"name":"export_markdown","description":"Render knowledge to a human-readable KNOWLEDGE.md — grouped by scope then project, each item showing summary, kind, provenance (dec-NNN / claim origin), recall count and promoted date. cp1252 mojibake (em dashes, curly quotes) is normalized so the text is clean.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generalize","description":"Restate an ALREADY-PROMOTED item's body as the cross-project rule, in place, keeping the concrete version as `example`. The remediation counterpart of the org generalization gate: items that reached org (or team) before the gate — or were forced past it — are listed by review_promotions() under `org_needs_generalization`; this rewrites one to its general form.","write_action":false,"price_micros":0,"input_schema":null},{"name":"import_memory","description":"Ingest an external memory export into cambium as LOCAL-scope, provenance- tagged knowledge items — a source adapter alongside distill's substrate readers. Import/ingest only: it reads the source READ-ONLY and never writes back to it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"promote","description":"Graduate knowledge up a scope as it earns trust — the compound-growth step. With no arguments, scans your local items and promotes every one that qualifies to team. With an item_id, promotes that item one level (local->team, or team->org with to_scope=\"org\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall","description":"Search knowledge across scopes and return the best matches. THE read endpoint for every agent type — a coding agent, a Slack KB bot, an SRE bot — they all ask here, so knowledge captured once serves them all.","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_need","description":"Record a NEED — something missing, wanted, or blocking. Needs are first-class alongside memories: \"we need staging seeds\", \"docs for X are missing\", \"no way to replay a failed job\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_promotions","description":"What's ready to move up? Lists local items eligible for team, team items eligible for org (endorsed), and org PRs already opened. The human-readable checkpoint before running promote().","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_primer","description":"A compact digest of what's ALREADY known for this project — built to be injected automatically at session start so recall is passive, not a step an agent has to remember. Returns the highest-value active knowledge (most- recalled, then most-recently-updated) across local+team+org, plus any promoted assumptions (valid_while premises) that look stale and worth re-checking.","write_action":false,"price_micros":0,"input_schema":null},{"name":"setup","description":"Finish cambium's setup in one call — the tool status() and every unconfigured error point you to. Validates paths, scaffolds .cambium/ (and gitignores it), and writes a local fallback config the server reads when env vars are absent (env still wins when set, and it takes effect immediately — no restart).","write_action":false,"price_micros":0,"input_schema":null},{"name":"stale_report","description":"Which promoted knowledge might be going stale? Lists team + org entries (the ones that cleared the trust gate) sorted OLDEST-VERIFIED-FIRST, with never-reverified entries flagged at the top and each entry's valid_while premise surfaced so a reader can spot dead assumptions (\"while we're on NetSuite\" long after the NetSuite migration).","write_action":false,"price_micros":0,"input_schema":null},{"name":"status","description":"First thing to call — especially when cambium looks broken. Returns structured config state: what's set, what's missing, what each gap costs in plain terms, and the exact setup() call that fixes it. NEVER raises on missing config. When fully configured it also reports item counts per scope/type, distill watermarks, and which substrates are actually wired.","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_entry","description":"Confirm a knowledge entry still holds — stamp its last_verified to now. This is the event that keeps promoted knowledge honest: promotion's trust gate defends what comes IN, verification keeps an entry from silently going stale after. An optional note records what was confirmed. Absent/old last_verified is a signal (see stale_report), never an automatic downgrade. Works on local and team entries;","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-24T12:00:56.379Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T12:00:56.362Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 33 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"cambium-mcp","version":"0.2.0","found":true,"weeklyDownloads":27,"license":"PolyForm-Noncommercial-1.0.0","dependencyCount":1,"publishedAt":"2026-08-02T13:37:15.575248Z","repositoryUrl":"https://github.com/jarmstrong158/cambium"}],"repo":{"found":true,"owner":"jarmstrong158","repo":"cambium","archived":false,"pushedAt":"2026-08-22T12:17:52Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/242202596?v=4","ownerCreatedAt":"2025-11-05T12:48:20Z","license":"NOASSERTION"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":27,"license":"NOASSERTION","lastPushAt":"2026-08-22T12:17:52.000Z","score":17}}}},"grade_history":[],"reviews":[]}