Cairn vs GEML — a plain Text document format built to be edited in place, one section at a time

A side-by-side look at the Cairn and GEML — a plain Text document format built to be edited in place, one section at a time MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Cairn logoCairnFile Systems · Local subprocess (stdio)Local-first file-organization tools for your AI agent: tag, query, and digest a folder. No cloud.56GoodAuth: not declaredGEML — a plain Text document format built to be edited in place, one section at a time logoGEML — a plain Text document format built to be edited in place, one section at a timeFile Systems · Local subprocess (stdio)One section in, one section out — on Markdown/GEML files, bad writes refused.47FairAuth: not declared

Verdict: choose Cairn for file systems work as a local process; choose GEML — a plain Text document format built to be edited in place, one section at a time for file systems as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Cairn logoChoose Cairn when

  • You need dedicated capabilities in the File Systems domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like list_dir, get_file_tree, read_detail.
Explore Cairn

GEML — a plain Text document format built to be edited in place, one section at a time logoChoose GEML — a plain Text document format built to be edited in place, one section at a time when

  • You need dedicated capabilities in the File Systems domain.
  • You prefer a local stdio subprocess transport.
Explore GEML — a plain Text document format built to be edited in place, one section at a time

Feature & specification comparison

Rows where the two servers differ are marked.

SpecCairn logoCairnGEML — a plain Text document format built to be edited in place, one section at a time logoGEML — a plain Text document format built to be edited in place, one section at a time
CategoryFile SystemsFile Systems
Quality signal56/100 · Good47/100 · Fair
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars229
Directory activity 3 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools48Not listed

Tools & capabilities

Cairn tools 48

  • list_dirList files and folders directly under a workspace-relative directory.
  • get_file_treeReturn the nested file/folder tree under a directory (default: whole workspace).
  • read_detailRead a file. For .uni docs returns HTML content, flattened text, and tags; for text/.md files returns raw text plus any YAML frontmatter tags & metadata.
  • search_filesFind files/folders whose name contains `query` (case-insensitive).
  • grepSearch file contents for `pattern`; returns {path, line, text} matches.
  • get_file_tagsReturn a document's tags — from a .uni's tags array or a text file's YAML frontmatter.
  • get_tag_treeReturn {tag: [file paths]} aggregated across the workspace.
  • find_by_metaFind documents whose metadata matches all `filters` (exact, not fuzzy). Reads .uni JSON fields and .md YAML frontmatter alike. Scalar fields match case-insensitively; `tags` (or any list field) matches when every requested value is present. Example: {"status": "to-read", "project": "amazon"}.
  • list_tasksList tasks (documents with `category: task`), sorted by due date. A task is an ordinary frontmatter note with a lifecycle; this is the task view over it. `status` defaults to the open set (todo/doing/blocked) — pass "all" to include done, or a specific status / comma-separated list. `project` and `context` (e.g. "@errand") are exact case-insensitive filters; `due_before` (YYYY-MM-DD) keeps only tasks due before that date. Each result carries derived `overdue` and `today` flags relative to the current date.
  • digest_workspaceReturn a token-efficient map of the workspace: one entry (title, date, tags, summary) per document, grouped by `folder`, `tag`, or a metadata field like `status`/`project`. Read this before loading individual files.
  • list_templatesList available document templates (built-ins + workspace .cairn/templates).
  • semantic_retrieveReturn the documents most relevant to `query`. Uses embeddings when an embedding endpoint is configured (env), else lexical scoring.
  • +36 more on the listing page

GEML — a plain Text document format built to be edited in place, one section at a time tools

No tool names declared yet. Check the project README from the listing page.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Cairn

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "cairn-4": {
      "command": "uvx",
      "args": [
        "cairn-mcp-server"
      ]
    }
  }
}

GEML — a plain Text document format built to be edited in place, one section at a time

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "geml-a-plain-text-document-format-built-to-be-edited-in-place-on": {
      "command": "npx",
      "args": [
        "-y",
        "@geml/geml"
      ]
    }
  }
}

Frequently asked questions

Cairn is categorized under File Systems and uses a local stdio subprocess. GEML — a plain Text document format built to be edited in place, one section at a time belongs to File Systems and uses a local stdio subprocess. Pick Cairn for file systems work and GEML — a plain Text document format built to be edited in place, one section at a time for file systems.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Cairn has no declared pricing — check the project's own site. GEML — a plain Text document format built to be edited in place, one section at a time has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add cairn-4 and geml-a-plain-text-document-format-built-to-be-edited-in-place-on as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Cairn has a quality signal of 56/100 (Good) with 3 views, 0 installs and 2 GitHub stars. GEML — a plain Text document format built to be edited in place, one section at a time has 47/100 (Fair) with 1 views, 0 installs and 29 GitHub stars.