In-depth architectural comparison of the Context Keeper (remote) and Lema 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
Context Keeper (remote)
Cloud Platforms · Local stdio
Quality: 43/100 (Fair) | Auth: No auth required
Lema MCP
Cloud Platforms · Local stdio
Quality: 49/100 (Fair) | Auth: No auth required
Verdict Summary: Choose Context Keeper (remote) if you need specialized Cloud Platforms tools running via a local process. Choose Lema MCP if your workspace requires Cloud Platforms integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Context Keeper (remote) when:
You need dedicated capabilities in the Cloud Platforms domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
Read or write config: `op='get'` reads a key, `op='set'` writes it (`value` required). Use key `default_project` (global scope, no `project`) to pick the project used when a call omits `project`.
set_config
Deprecated** aliases for `config(op='set')` / `config(op='get')`.
record_entry
Unified write: record a `decision`, `constraint`, or `pipeline`. Required field depends on kind — decision needs `summary`, constraint needs `rule`, pipeline needs `name`.
record_decision
Deprecated** alias for `record_entry(kind='decision')`: `summary`, `problem`, `why_chosen`, `what_we_tried`, `tradeoffs`, `tags`.
record_constraint
Deprecated** alias for `record_entry(kind='constraint')`: a rule that must hold — `rule`, `reason`, `tags`.
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).
Context Keeper (remote) is categorized under Cloud Platforms and uses a local stdio subprocess. In contrast, Lema MCP belongs to Cloud Platforms using local stdio subprocess. Select Context Keeper (remote) when you need capabilities focused on cloud platforms and Lema MCP when you require tools for cloud platforms.
Deprecated** alias for `record_entry(kind='pipeline')`: a reusable process — `name`, `purpose`, `steps` (extra fields kept verbatim).
get_context
Relevance-ranked retrieval for a query (keyword scoring; excludes deprecated unless `include_deprecated`). An entry that superseded something carries a one-line `predecessor` -- what the prior entry said and why it changed -- byte-identical to the local server's, so history reads the same over eith…
query_entries
Structured filters: `id`, `kind`, `tags` (all must match), `status` (`active`/`deprecated`/`all`), free `text`, and `limit`.
get_project_summary
One-call orientation: entry counts by kind and status, the ids present, the active constraints (compact), and the most recent decisions.
list_projects
The org registry: every project with entries, plus per-project active counts (decisions/constraints/pipelines), active/deprecated totals, and last-updated time. Enumerates the whole org in one call — discover exact, case-sensitive project names instead of guessing.
update_entry
Merge `patch` fields into an entry's payload; optionally change `status`.
deprecate_entry
Mark deprecated, optionally linking `superseded_by` and recording a `reason` (the reason is what the predecessor line quotes).
+6 more tools listed on main page
Lema MCP Tools (5)
record_decision
Capture a settled decision: the chosen option and the **rejected** alternatives (with why each was killed), plus rationale / refs / `supersedes`. Rejected and superseded options come back CLOSED. Append-only.
check_decided
Adjudicate one proposed direction against decisions already CLOSED → typed verdict (`ruled_out` / `not_ruled_out` / `incomplete` / `error`), off **both** your capture store **and** the repo's ADRs.
search_decisions
Natural-language query → the most relevant atomic claims (chosen / rejected / constraint / consequence) with their source ADR, under a token budget.
ask
One cited, synthesized answer over your team's **hosted** decision graph (hosted mode).
get_state_brief
Resume a hosted Run with a Project-scoped brief: primary-repository state first, then ACL-filtered context from other visible repositories.