A side-by-side look at the Cairn and Google Drive MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Cairn for file systems work as a local process; choose Google Drive for file systems. You can also run both side by side in one mcpServers block.
list_dir, get_file_tree, read_detail.get_account, get_file, list_folder.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | File Systems | File Systems |
| Quality signal | 59/100 · Good | 45/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 48 | 35 |
| Full listing | View Cairn | View Google Drive |
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.
get_accountWho is signed in, storage used, whether this account has shared drives, and which of this server's tools are registeredget_fileEverything about one file: kind, location, link, size, owner, who can see it, who cannot download it, and what you may do with itlist_folderOne page of a folder's contents, or a budgeted tree of everything below itsearch_filesFind files across My Drive, files shared with you, and every shared drive, or under one folder at any depthread_fileThe text of a file: a Doc as markdown, a Sheet as csv, a Word, Excel or PowerPoint file (or its OpenDocument counterpart) read here as text, a log or source file as itself, windowed with a continuationextract_textThe text in a PDF or an image, read by Google's OCR through a temporary Google Doc copy that is deleted againdownload_fileWrite a file to the local directory, converting a Google document on the way out, checksum-verifiedcreate_fileA new empty Google file, or one written from text you have here, with optional conversionupload_fileSend a local file, in one request or in chunks that survive a dropped connectionupdate_contentReplace what is inside a file, keeping its id, its place and everything that points at it, and refusing to lose the comments Google Docs keeps in a Markdown filecreate_folderA new folder, refusing a duplicate name unless you allow itupdate_fileRename, describe, star, color, set properties, restrict downloads and re-sharing, or give a folder limited accessPaste 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.
{
"mcpServers": {
"cairn-4": {
"command": "uvx",
"args": [
"cairn-mcp-server"
]
}
}
}
No confirmed install command for Google Drive yet — follow the setup steps linked from its listing page rather than a guessed package name.