Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Margins

by cflorczyk9version 0.15.3i★ –iRuns on your computer
Registry nameio.github.cflorczyk9/margins

Install

Overview

Description from the maker (original English)

Use your Claude Pro/Max subscription on your Obsidian vault. Reads markdown, proposes writes.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Docs, sheets & office work

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "margins": {
      "command": "npx",
      "args": [
        "-y",
        "margins-mcp"
      ]
    }
  }
}

Run this in your terminal

claude mcp add margins -- npx -y margins-mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "margins": {
      "command": "npx",
      "args": [
        "-y",
        "margins-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "margins": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "margins-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account cflorczyk9, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 2193 servers in this category
  • Published to the registry more recently than 10% of the other 2193 servers in this category
  • Basic checks equal to or better than 100% of the other 2193 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Margins safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.15.3) reached the registry 6 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Agent-Native Google Calendar - manage events, sync, and public booking

Runs in the cloud★ 7,620MITUpdated 2 months ago
Install

Excel MCP Server

by haris-musa

Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.

Runs on your computer★ 4,276MITUpdated 6 days ago
Install

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Runs on your computer★ 847MITUpdated 4 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

margins-mcp

Use your Claude Pro/Max subscription on your Obsidian vault. No API key. No per-token costs. No embedding pipelines. Claude reads your notes and proposes updates; your subscription pays for inference; your files stay on your disk.

margins-mcp is a small Node program that sits between Claude (Desktop or Code) and your Obsidian vault. When you chat with Claude, it reads your notes through margins-mcp. Your files stay local, Claude does the thinking, your existing subscription pays for it.

Which Margins are you?

Margins works for six common starting points. margins_start auto-detects your state on the first call, so you don't have to classify yourself — but knowing which row you're on helps set expectations.

You...PersonaFirst conversation
Obsidian, vault organized with wikilinksA1Q&A on your notes. margins_start then ask anything.
Obsidian, vault is empty or newA2Ask Claude to scaffold daily-note + meeting templates.
Obsidian, many files but few wikilinksA3Run propose_wikilinks on a page to surface connections you missed.
No Obsidian, organized markdownB1Same as A1. Install Obsidian for the proposal-review UX.
No Obsidian, emptyB2Use --starter-vault ~/Margins to scaffold one.
No Obsidian, messy folderB3Run propose_wikilinks on your busiest page. Install Obsidian to review proposals visually.

Requirements

  • Node.js 18 or newer
  • An Obsidian vault, or any folder with notes, PDFs, Office/OpenDocument files, email exports, EPUBs, or plain text
  • A Claude subscription: Pro ($20/mo), Max, or Claude Code

Install

Two commands:

npm install -g margins-mcp

margins-mcp install

The installer prompts for your vault path, detects Claude Desktop and Claude Code, writes the right config files, scaffolds raw/ + proposed/ + .margins/ inside your vault if missing, and runs a verification probe. Restart Claude Desktop (Cmd-Q on macOS, not just close the window), or in Claude Code run /mcp to see Margins listed.

Don't have a vault yet?

Scaffold a Margins-shaped one:

margins-mcp install --starter-vault ~/notes
Finding your Obsidian vault path

If you already use Obsidian and don't know your vault's absolute path:

  • In Obsidian: right-click the vault name in the file tree → "Reveal in Finder" (macOS) or "Show in Explorer" (Windows). The path is in the title bar.
  • macOS common paths: ~/Documents/ , or ~/Library/CloudStorage/iCloudDrive/Obsidian/ if iCloud-synced.
  • Linux common paths: ~/Documents/ , or ~/.local/share/Obsidian/ .
  • Windows common paths: %USERPROFILE%\Documents\ .

Pass it to the installer via --vault /absolute/path or answer the prompt.

Try-without-installing
npx margins-mcp install --vault /path/to/vault

You'll see a warning that npm may garbage-collect the npx cache and your configs would break weeks later. For real use, prefer npm install -g above. The npx path is fine for kicking the tires.

Manual install

If you'd rather edit config yourself, add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS; see Anthropic docs for Windows/Linux paths):

{

"mcpServers": { "margins": { "command": "node", "args": ["/absolute/path/to/margins-mcp/bin/margins-mcp.js"], "env": { "MARGINS_VAULT": "/absolute/path/to/your/vault" } } } }

Try it

In a new Claude conversation, ask:

Use margins to give me a summary of my recent notes.

Or:

What pages support the claim that my project deadline is May 30th? Use margins to find them.

Or:

I just dropped a spreadsheet into raw/. Compile it into a structured source page in my wiki.

The model can read your vault, propose new pages, propose edits to existing ones, and pull raw sources into structured wiki pages. propose_compile_from_raw accepts Markdown/plain text, PDFs, Word docs, spreadsheets, decks, email exports, EPUBs, OpenDocument files, RTF, HTML, CSV/TSV, JSON, YAML, and common text-ish formats. Every write stages to proposed/ first; nothing lands without you accepting.

Tools

Context (call once per conversation)
ToolPurpose
margins_startVault stats + pending proposals + uningested raw files + recent preferences + the vault's CLAUDE.md if present. Claude's grounding for the whole conversation.
recall_preferencesRead durable user preferences from .margins/preferences.md (filing conventions, naming patterns, prior corrections). Claude calls this before any propose.
Read
ToolPurpose
search_vaultFull-text + filename search across the vault.
read_pageRead one page by relative path.
list_recentMost recently modified pages.
get_backlinksPages that wikilink to a target slug.
search / fetchChatGPT Deep Research compatibility pair.
Propose writes (staged — nothing lands until accepted)
ToolPurpose
propose_pageStage a new page at proposed/ .
propose_editStage a string-replacement edit. before must appear exactly once.
append_toStage an append. Creates the page if missing; stacks on pending proposals.
propose_compile_from_rawTurn a raw transcript, note, PDF, Word doc, spreadsheet, deck, email, EPUB, or other supported document in raw/ into a structured source page.
list_proposalsList pending proposals + overwrite-risk flag per entry.
resolve_proposalaction: "accept" lands the proposal; action: "reject" discards it.
Suggest (for A3 / B3 — vaults with many files but few links)
ToolPurpose
propose_wikilinksScan a page for entity-shaped phrases and propose wikilinks to other vault pages that share the same slug. The model then chains propose_edit calls to apply the ones it likes.
Learn
ToolPurpose
record_preferenceAppend a durable rule to .margins/preferences.md. Claude calls this when the user corrects a proposal in a way that should apply next time (filing path, naming, summary length, etc.).
How the proposal flow works

Every write tool stages to proposed/ inside your vault. Nothing touches the live tree until you (or an MCP client acting on your behalf) call resolve_proposal with action: "accept". You can also inspect staged content (ls proposed/) and accept by moving files yourself.

Sequential edits stack: a second propose_edit on the same path reads from the pending proposal, not the vault.

Configuration

Env varDefaultPurpose
MARGINS_VAULT(required)Absolute path to your Obsidian vault or Markdown folder.
MARGINS_INDEX_ROOTSauto-detectedComma-separated subfolders to index. Auto-detection: .obsidian/ present → index root; wiki/ present → index wiki/ only; neither → index root.
MARGINS_TELEMETRY(consent file)Override telemetry: on or off. Default uses the consent decision made during install.

What Margins is NOT

To keep scope crisp:

  • Not an inference layer. Your Claude subscription pays for that. Margins makes zero LLM calls.
  • Not a web app. The chat surface lives in Claude Desktop / Claude Code / claude.ai. Margins is plumbing.
  • Not a cloud sync. Local-first. Your files stay on your disk.
  • Not a CRM integration. Different product.
  • Not API-key-based. Subscription-passthrough is the whole point.

Privacy

  • Vault content never leaves your machine. Margins is a Node process that reads/writes files locally and exposes structured tools over stdio.
  • Anonymous telemetry (opt-in at install time) reports tool-call counts to help me prioritize what to build next. Sample event payload: GET https://margins.goatcounter.com/count?p=/tool/search_vault. No vault content, no file paths, no user identifier beyond the standard 24-hour rolling session token GoatCounter assigns. Disable per-session with MARGINS_TELEMETRY=off. Decision stored at ~/.margins/consent.json.

Develop

git clone https://github.com/cflorczyk9/Margins.git

cd Margins npm install npm test MARGINS_VAULT=/path/to/test/vault npm start

The compiler (src/compiler/) was originally vendored from an earlier Margins web app. The web app and its landing page live on the legacy-webapp branch in this repo. Re-vendor with scripts/vendor-compiler.sh if you ever need to pull updates back from there.

How Margins gets smarter over time

Two things compound:

  1. Your vault's `CLAUDE.md` is auto-loaded by margins_start. Drop vault-specific rules in there — filing conventions, voice, naming patterns — and Claude obeys them in every conversation. No copy-paste.
  2. `.margins/preferences.md` is a Margins-maintained file inside your vault. When you correct Claude ("no, that should be in projects, not personal"), Claude calls record_preference to remember the rule. Next conversation it reads them via recall_preferences before proposing writes. The file is plain Markdown — you can audit it, hand-edit it, delete sections that no longer apply.

Both files live in the vault, so they travel with it. Switch machines, switch hosts (Claude Desktop → Claude Code → ChatGPT once that lands), and your conventions follow.

Roadmap

  • v0.6: web onboarding at marginsmcp.com — pick a folder via File System Access, scaffold a vault, get the install command. Closes B2/B3 personas without requiring CLI fluency.
  • v0.6: get_citations (semantic embedding search, opt-in dep).
  • v0.6: OCR/image, legacy Office binary, and audio/video ingestion for propose_compile_from_raw.
  • v0.7: HTTP / Streamable transport for claude.ai web and ChatGPT custom connectors.
  • v0.7+: Obsidian community plugin alongside MCP, if signal supports it.
  • v0.8+: file watcher / auto-scaffold on drop into raw/.

License

MIT

Ask PopNx