Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
A simple MCP server for Obsidian
| Date | Stars |
|---|---|
| 2026-07-31 | 719 |
| 2026-08-01 | 719 |
| 2026-08-06 | 719 |
| 2026-08-12 | 721 |
| 2026-08-18 | 722 |
| 2026-08-19 | 723 |
| 2026-08-21 | 723 |
| 2026-08-22 | 724 |
| 2026-08-23 | 725 |
| 2026-08-25 | 727 |
| 2026-08-27 | 729 |
| 2026-08-30 | 730 |
| 2026-09-01 | 731 |
| 2026-09-05 | 733 |
| 2026-09-06 | 733 |
| 2026-09-08 | 733 |
| 2026-09-09 | 733 |
| 2026-09-11 | 732 |
| 2026-09-12 | 733 |
| 2026-09-13 | 733 |
| 2026-09-20 | 733 |
Today
— stars today
This week
— stars this week
This month
+10 stars this month
Momentum
15.0
growth rate 0.00%/day
# Obsidian MCP
A local [Model Context Protocol](https://modelcontextprotocol.io/) server that lets MCP-compatible assistants safely read and modify explicitly configured Obsidian vaults.
Version 2 supports both MCP `2026-07-28` and 2025-era clients by default, and requires Node.js 22 or newer. It works directly with Markdown files, so Obsidian does not need to be open. Legacy protocol and v1 positional-path compatibility are deprecated and print exact migration instructions to stderr.
> [!IMPORTANT]
> MCP clients can invoke destructive tools. Back up important vaults, review client permission prompts, and use revision preconditions for concurrently edited notes.
## Quick start
Node.js 22 or newer is required:
```bash
node --version # v22 or newer
```
Run with `npx` without installing the package globally. Pinning the major version receives compatible 2.x updates without automatically crossing a future major version:
```bash
npx -y obsidian-mcp@2 serve --vault notes=/absolute/path/to/vault
```
Configure an MCP client to launch the same command over stdio:
```json
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "obsidian-mcp@2", "serve", "--vault", "notes=/absolute/path/to/vault"]
}
}
}
```
Alternatively, install the package globally and use `"command": "obsidian-mcp"` with the same arguments beginning at `"serve"`:
```bash
npm install -g obsidian-mcp@2
```
Each vault must already contain an `.obsidian` directory and must be configured using an absolute path.
Both protocol eras are served from the same tool definitions. After confirming that your MCP client negotiates `2026-07-28`, you may opt into modern-only mode by adding `"--legacy", "reject"` to `args`.
Vault ids use lowercase letters, digits, `_`, and `-`, must begin with a letter, and are the values assistants pass to tools. Up to ten vaults may be configured. Repeat `--vault` to expose more than one vault:
```bash
obsidian-mcp serve \
--vault work=/Users/me/Documents/WorkVault \
--vault personal=/Users/me/Documents/PersonalVault
```
Network, removable, hidden, and synced locations are allowed because an explicit `--vault` is treated as authorization; the same containment protections apply to every location.
## Design principles
- Vault access is explicitly allowlisted at process startup.
- Every tool path is vault-relative, segment-checked, and blocked from symlinks and reserved state.
- File mutations are journaled, conflict-checked, atomically replaced, and rolled back as one transaction.
- The server never listens on a network interface or sends telemetry.
- stdout is reserved exclusively for MCP messages; structured diagnostics go to stderr.
- Results are bounded, paginated where appropriate, and available as both text and structured content.
## Tools
| Tool | Purpose |
| --------------------------- | ----------------------------------------------------------------------------- |
| `obsidian_list_vaults` | List configured vault ids without exposing host paths. |
| `obsidian_read_note` | Read a bounded page of a note and return its SHA-256 `etag`. |
| `obsidian_create_note` | Atomically create a note without overwriting. |
| `obsidian_edit_note` | Append, prepend, or replace exact note content. |
| `obsidian_delete_note` | Move a note to MCP trash or permanently delete it with explicit confirmation. |
| `obsidian_move_note` | Move or rename a note and update unambiguous backlinks transactionally. |
| `obsidian_create_directory` | Transactionally create a directory inside a vault. |
| `obsidian_search_vault` | Search content, filenames, or tags with bounded cursor pagination. |
| `obsidian_add_tags` | Add tags to one or moExcerpt of 8,329 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:20ff04d473ea4359, desc:mcp server