some-vault-some-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | SSE bind address | 0.0.0.0 |
| MCP_PORT | No | SSE port | 3789 |
| OLLAMA_URL | No | Ollama API endpoint (requires --extra ollama) | http://localhost:11434 |
| VAULT_PATH | Yes | Absolute path to Obsidian vault (required) | |
| LANCE_DB_PATH | No | Where the vector index lives | ./data/vault.lance |
| MCP_TRANSPORT | No | sse or stdio | sse |
| VAULT_API_KEY | No | Enables Bearer token auth on SSE transport | |
| OPENAI_API_KEY | No | Required if provider is openai (requires --extra openai) | |
| FASTEMBED_MODEL | No | Any fastembed-supported model. On Apple Silicon, auto-detects and uses the non-quantized variant | nomic-ai/nomic-embed-text-v1.5-Q |
| EMBEDDING_PROVIDER | No | fastembed, ollama, openai, or mock | fastembed |
| FASTEMBED_DIMENSIONS | No | Override dimension auto-detection | |
| some_vault_some_mcp_OVERRIDES | No | Path to YAML override file | |
| VAULT_SOFT_DELETE_IS_PERMANENT | No | true makes delete_note do hard deletes | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchB | Find notes by text, meaning, or exact string. |
| get_noteA | Read a single note with parsed frontmatter and tags. Path extension is optional. |
| list_notesB | List and filter vault notes by folder, tags, projects, status, area, or frontmatter. |
| create_noteA | Create a new note. Fails if it already exists. The .md extension is added automatically — do not add .md or other extensions to the path. Never create redirect stubs, backups, or temporary files. |
| append_to_noteA | Append text to the end of an existing note. The .md extension is added automatically. |
| prepend_to_noteA | Insert text after frontmatter, before the note body. The .md extension is added automatically. |
| update_frontmatterA | Merge key-value pairs into YAML frontmatter. Unlisted keys preserved. The .md extension is added automatically. |
| move_noteA | Move or rename a note. ALL wikilinks across the vault are updated automatically — do not create redirect stubs at the old path. The .md extension is added automatically. Do not use this to create backups; use delete_note instead (it moves to .trash). |
| delete_noteA | Delete a note. Moves to .trash by default (restore or empty trashed notes from within Obsidian or the filesystem — no tool lists/restores .trash); set permanent=true for an irreversible hard delete. |
| get_daily_noteA | Read today's or a specific date's daily note. |
| create_daily_noteA | Create a daily note for today or a given date. Fails if one exists. |
| get_tagsA | List all unique tags in the vault with usage counts. |
| get_backlinksA | Find notes that link to a given note. |
| get_outlinksA | List all outgoing wikilinks from a note. Shows valid and broken links. |
| find_orphansA | Find disconnected notes — no inbound links, no outbound links, or both. |
| find_broken_linksA | Find wikilinks pointing at notes that don't exist. |
| get_graph_neighborsA | Walk the link graph outward from a note. Depth 1-5, default 1. |
| vault_index_statusA | Check search index health and statistics. |
| vault_reindexA | Trigger incremental reindex for one note or the entire vault. |
| list_canvasesC | List all .canvas files in the vault. |
| read_canvasA | Read canvas structure (nodes + edges). |
| create_canvasB | Create a new .canvas file with optional initial nodes/edges. |
| add_canvas_nodeA | Add a node (text/file/link/group) to a canvas. Auto-layout when position omitted. |
| update_canvas_nodeC | Update any property of an existing canvas node by ID. |
| remove_canvas_nodesA | Remove nodes by ID. Auto-removes dangling edges. |
| add_canvas_edgeC | Add an edge between two canvas nodes with full property support. |
| update_canvas_edgeC | Update properties of an existing canvas edge by ID. |
| remove_canvas_edgesC | Remove edges from a canvas by ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_tags | Tag index with usage counts as JSON. |
| resource_daily | Today's daily note content. |
TDQS
Scored across 28 tools
Most tools target a distinct resource and action, but a few could be confused: search overlaps with list_notes for finding content, and get_graph_neighbors could be mistaken for a combined version of get_backlinks/get_outlinks. Overall, the descriptions are clear enough to separate the graph, note, and canvas operations.
The dominant verb_noun pattern is consistent (create_note, move_note, delete_note, add_canvas_node, etc.), with minor deviations like bare 'search', 'vault_index_status' (noun_status), and singular/plural mismatches in canvas operations (update_canvas_node vs remove_canvas_nodes). These are readable and predictable.
28 tools is on the heavy side for an MCP server, though the breadth is justified by covering notes, daily notes, link analysis, indexing, and canvases. It exceeds the typical well-scoped range and feels dense, but not bloated with near-duplicate functionality.
The note lifecycle is well-covered (create, read, update via append/prepend/frontmatter, move, delete), and link analysis plus canvas CRUD are thorough. Minor gaps exist: there is no in-place body editing or trash restore tool, and daily notes can only be created/read, not modified directly.