Short answer
Yes, over MCP, and the route depends on where the notes live. A vault on a server connects as a custom connector: paste the URL into Claude Desktop's settings and sign in. The local config file is only for MCP servers that run on your own machine as a child process over stdio.
Almost every guide to connecting Claude Desktop to anything opens the same way: quit the app, find a JSON file buried in Application Support, paste a block into it, restart. That route is real and it still works, but for a vault your team shares it is the wrong one, and following it is how people end up convinced the desktop app cannot do this at all. The config file launches programs on your own machine. A team second brain usually is not one.
Can Claude Desktop read and write my team's notes?
Yes, over MCP, and which route you take depends on where the notes live. A vault running on a server, managed or self-hosted, connects as a custom connector: you paste one URL into Claude Desktop's settings and sign in. The local config file is for MCP servers that run on your own computer as a child process. Both are supported, they are not interchangeable.
Why is the config file the wrong route for a shared vault?
Because of the transport, not the difficulty.
claude_desktop_config.json lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows, and you open it from the Claude menu, then Settings, then the Developer tab, then Edit Config. Entries in it look like this:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/Notes"]
}
}
}Read what that actually says. It is a command and its args. Claude Desktop starts that program on your machine and talks to it over stdio, and the app only reads the file at launch, so a full quit and restart is required every time you change it. That shape fits a server that is a local binary. It does not fit an endpoint that lives at an HTTPS address, which is what a shared vault's MCP server is.
So the config file is right when the thing you are connecting runs beside you on the same computer. For anything with a URL, the connector route is both simpler and the one that works.
What is Baalda, in one paragraph?
Baalda is a team second brain built on plain markdown files on your own disk. Several people edit the same note at once over a CRDT, permissions are set per folder and per note, and the whole core is open source under Apache-2.0 and self-hostable. It exposes the vault over MCP at /api/mcp, so an assistant works on the same files a person does and is held to the same permissions that person has. Running it locally is free, and there is an optional managed Team plan for hosted sync. If the category itself is new, what a team second brain is covers the idea before any of the plumbing.
How do I connect Claude Desktop to a Baalda vault?
Four steps, no terminal, no file editing.
1. Open Connectors. In Claude Desktop, go to Settings and then Connectors. On a Team or Enterprise plan the same screen sits under organisation settings, and adding a connector there makes it available to the whole organisation rather than to you alone.
2. Add a custom connector and paste the URL. It is your server address plus /api/mcp. On the managed service that is https://api.baalda.com/api/mcp. Self-hosted, it is your own domain plus the same path. Running the server on your own machine for testing, it is http://localhost:3010/api/mcp.
3. Sign in. Baalda advertises /.well-known/oauth-protected-resource, so Claude Desktop discovers the authorisation server and runs an OAuth flow instead of asking you for a token. You log in as yourself. Nothing is pasted, and no long-lived secret sits in a file on your laptop.
4. Pick a vault on the consent screen. This step is specific to Baalda and it matters. An OAuth access token says who you are, not which vault you meant, so the vault you choose is recorded against that connector and that user. If you are a member of exactly one vault, it is used automatically. If you are in several and never chose, the connection is refused with a message telling you to log in again and pick one, rather than guessing and reading the wrong vault. To point the connector at a different vault later, re-authorise it and choose again.
There is a second credential path: Vault settings → MCP in the app mints an mcp_ token that encodes its own user and vault, for clients that want an Authorization: Bearer header. Claude Desktop's connector flow does not need it. Claude Code does use it, which the Claude Code version of this setup covers in full.
What can Claude Desktop actually do with the vault?
Once connected it has read_note, search_notes, create_note, edit_note, update_note, list_attachments and read_attachment_text.
The two worth understanding before you let it write:
read_notereturns arevision. Pass it back asexpectedRevisionon a write and an edit aimed at a note somebody changed in the meantime is refused rather than merged over the top.edit_notetakes anchored replace, insert and delete operations. An anchor that matches zero times, or more than once, fails the whole call with nothing written.
search_notes covers more than markdown: it ranks text pulled out of documents and spreadsheets alongside the notes, and every hit says whether it is a note or a file.
Writes flow through the same sync engine as human keystrokes, so if the note is open on your screen while Claude works, you watch the text appear. It is not a copy that gets reconciled later. It is the file.
What are the limits worth knowing before you set this up?
Four, and none of them are things a workaround fixes.
Custom connectors need a paid plan. Per Anthropic's help centre, remote MCP connectors are available on Pro, Max, Team and Enterprise. On the free plan this route is closed.
One vault per connector, per person. The binding is recorded for that pair. Two vaults means re-authorising when you switch, or a second connector.
It gets your permissions, not more. The MCP endpoint runs every call through the same per-folder access control a person is subject to. A folder you cannot open is a folder it cannot read, and there is no setting that changes that. This is the point, but it does surprise people who expected the assistant to see everything.
If the vault is a folder on the same machine and you use Claude Code, you need none of this. Local agents edit the .md files directly and the file watcher syncs the change to the team. The connector exists for the case where the notes are not reachable as files.
Claude Desktop or Claude Code for this?
| Claude Desktop | Claude Code | |
|---|---|---|
| Who it is for | anyone, no terminal | people already in a terminal |
| How it reaches the vault | custom connector over HTTPS | the folder on disk, or MCP |
| Setup | paste a URL, sign in | claude mcp add, or nothing at all |
| Scope | one vault, your permissions | the directory, or one vault |
If nobody on the team opens a terminal, the desktop app is the entire answer. If half the team writes code, expect both, pointed at the same vault.
Where do Obsidian and Notion still win?
Obsidian has the deeper plugin ecosystem by a wide margin, and for one person working alone it is excellent software. Community MCP servers for it exist. What it does not have is real-time multi-user editing or per-file permissions, which is the specific gap the multiplayer post goes through.
Notion is the honest pick for a team that does not care about owning files. It has a first-party connector, non-technical people already understand it, and databases with views are a genuinely different capability that markdown does not have. If your knowledge is fundamentally tabular, use a database. Baalda's side of that trade is laid out on the Notion comparison.
Baalda is the wrong choice if you want a workspace with database views, or if plain files on disk are not a requirement you would pay anything for. It is the right one when the notes have to stay yours, several people write in them at once, and an assistant needs to work in the same files rather than in a copy of them.
