Skip to main content
Glama
JujiuYey

Obsidian MCP Server

by JujiuYey

Obsidian MCP Server

English | 中文


English

Overview

Obsidian MCP Server is a Model Context Protocol (MCP) server that enables AI assistants to access and manage your local Obsidian vault through a standardized protocol. All data processing happens locally on your machine, ensuring privacy and offline functionality.

Features

  • Full Note Management: Create, read, update, and delete notes

  • Powerful Search: Full-text search with fuzzy matching using Fuse.js

  • Folder Operations: Navigate and manage your vault's folder structure

  • Tag Management: Extract, list, and search notes by tags

  • Real-time Indexing: Automatically indexes your vault for fast searches

  • Local-first: No data leaves your machine

Prerequisites

  • Node.js 18+

  • pnpm (recommended) or npm

  • An Obsidian vault

Installation

# Clone or navigate to the project
cd obsidian-mcp-server

# Install dependencies
pnpm install

# Build the project
pnpm build

Configuration

1. Set Environment Variable

The server requires your Obsidian vault path. You can set it in multiple ways:

Option A: Temporary (current terminal only)

export OBSIDIAN_VAULT_PATH="/Users/yourname/Documents/Obsidian Vault"

Option B: Permanent (add to shell profile)

echo 'export OBSIDIAN_VAULT_PATH="/Users/yourname/Documents/Obsidian Vault"' >> ~/.zshrc
source ~/.zshrc

2. Configure MCP Client

Claude Desktop (macOS)

Create or edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/absolute/path/to/obsidian-mcp-server/dist/index.js"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/Users/yourname/Documents/Obsidian Vault"
      }
    }
  }
}

Important: Use absolute paths, not ~ or relative paths.

Cursor IDE
  1. Open Cursor Settings

  2. Search for "MCP" in settings

  3. Add a new MCP server with:

    • Name: obsidian

    • Command: node

    • Args: /absolute/path/to/obsidian-mcp-server/dist/index.js

    • Env: OBSIDIAN_VAULT_PATH=/Users/yourname/Documents/Obsidian Vault

Cline MCP
  1. Open Cline Settings

  2. Navigate to MCP section

  3. Add a new MCP server:

    • Name: obsidian

    • Command: node

    • Args: /absolute/path/to/obsidian-mcp-server/dist/index.js

    • Env: OBSIDIAN_VAULT_PATH=/Users/yourname/Documents/Obsidian Vault

Other MCP Clients

Configure with these parameters:

  • Command: node

  • Args: /absolute/path/to/obsidian-mcp-server/dist/index.js

  • Env: OBSIDIAN_VAULT_PATH=/absolute/path/to/your/vault

Available Tools

Note Tools

Tool

Description

create_note

Create a new note

read_note

Read note content and metadata

update_note

Update note content or metadata

delete_note

Delete a note

list_notes

List notes with pagination

Search Tools

Tool

Description

search_notes

Full-text search across notes

search_notes_by_tag

Search notes by tag

Folder Tools

Tool

Description

list_folders

List vault folder structure

create_folder

Create a new folder

delete_folder

Delete a folder

Tag Tools

Tool

Description

list_tags

List all tags in the vault

get_note_tags

Get tags for a specific note

search_notes_by_tag

Find notes with specific tags

Usage Examples

# Search for notes containing "machine learning"
搜索包含"机器学习"的笔记

# List all notes with #work tag
列出所有包含#工作标签的笔记

# Read a specific note
读取我的项目笔记

# Create a new note
创建一篇新的读书笔记

# List folder structure
列出保险库的文件夹结构

Development

# Run in development mode (auto-reload)
pnpm dev

# Type check
pnpm typecheck

# Lint
pnpm lint

Troubleshooting

"fs.readFile is not a function" or similar filesystem errors

This error typically occurs when the fs-extra module fails to load properly. The solution is to:

  1. Clean and reinstall dependencies:

    rm -rf node_modules pnpm-lock.yaml
    pnpm install
    pnpm build
  2. Ensure you're using the compiled JavaScript in the dist/ directory, not the TypeScript source files.

Tools not appearing in Claude/Cursor/Cline

  1. Check if server starts correctly:

    cd /path/to/obsidian-mcp-server
    OBSIDIAN_VAULT_PATH=/your/vault/path pnpm start

    The server should run without errors and keep running.

  2. Verify configuration file path:

    cat ~/Library/Application\ Support/Claude/claude_desktop_config.json

    Ensure the path is absolute and correct.

  3. Check path permissions: Ensure the user running the MCP client has read/write access to your vault.

  4. Restart MCP client completely after configuration changes.

  5. Check output directory: The server uses dist/ directory (not build/):

    ls /path/to/obsidian-mcp-server/dist/

"Unknown tool" errors

  1. Make sure the tool name is exactly as documented. Tool names are case-sensitive.

  2. Check that the server started successfully without errors.

  3. Verify the correct dist/index.js file is being used.

Empty search results

  1. Verify OBSIDIAN_VAULT_PATH points to the correct folder

  2. Check that your vault contains .md files

  3. Ensure the path is absolute, not relative or using ~

  4. Check that notes are in the expected location (not in .obsidian or node_modules)

Server starts but tools don't work

  1. Check if there are errors in the server output

  2. Verify environment variable is set correctly:

    echo $OBSIDIAN_VAULT_PATH
  3. Try running the server manually to see error messages:

    OBSIDIAN_VAULT_PATH="/Users/yourname/Documents/Obsidian Vault" node dist/index.js

Project Structure

obsidian-mcp-server/
├── src/
│   ├── index.ts              # Main entry point
│   ├── types/
│   │   └── obsidian.ts       # TypeScript type definitions
│   ├── services/
│   │   ├── vault-manager.ts  # Vault management (file system operations)
│   │   ├── note-parser.ts    # Note parsing (frontmatter, links)
│   │   ├── search-engine.ts  # Search engine (Fuse.js integration)
│   │   └── tag-manager.ts    # Tag management
│   └── tools/
│       ├── note-tools.ts     # Note operation tools
│       ├── search-tools.ts   # Search tools
│       ├── folder-tools.ts   # Folder management tools
│       └── tag-tools.ts      # Tag operation tools
├── dist/                     # Compiled JavaScript (TypeScript output)
├── package.json
└── tsconfig.json

Related MCP server: Obsidian MCP Tool Server

中文

概述

Obsidian MCP Server 是一个 Model Context Protocol (MCP) 服务器,使 AI 助手能够通过标准化协议访问和管理您的本地 Obsidian 保险库。所有数据处理都在本地机器上完成,确保隐私和离线功能。

功能特性

  • 完整的笔记管理:创建、读取、更新和删除笔记

  • 强大的搜索功能:使用 Fuse.js 进行全文搜索和模糊匹配

  • 文件夹操作:导航和管理保险库的文件夹结构

  • 标签管理:提取、列出和按标签搜索笔记

  • 实时索引:自动为您的保险库建立索引以实现快速搜索

  • 本地优先:数据不会离开您的机器

环境要求

  • Node.js 18+

  • pnpm(推荐)或 npm

  • Obsidian 保险库

安装

# 克隆或进入项目目录
cd obsidian-mcp-server

# 安装依赖
pnpm install

# 构建项目
pnpm build

配置

1. 设置环境变量

服务器需要您的 Obsidian 保险库路径。您可以通过多种方式设置:

方式 A:临时设置(仅当前终端有效)

export OBSIDIAN_VAULT_PATH="/Users/您的用户名/Documents/Obsidian Vault"

方式 B:永久设置(添加到 shell 配置文件)

echo 'export OBSIDIAN_VAULT_PATH="/Users/您的用户名/Documents/Obsidian Vault"' >> ~/.zshrc
source ~/.zshrc

2. 配置 MCP 客户端

Claude Desktop (macOS)

创建或编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/绝对路径/to/obsidian-mcp-server/dist/index.js"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/Users/您的用户名/Documents/Obsidian Vault"
      }
    }
  }
}

重要提示:请使用绝对路径,不要使用 ~ 或相对路径。

Cursor IDE
  1. 打开 Cursor 设置

  2. 在设置中搜索 "MCP"

  3. 添加新的 MCP 服务器:

    • 名称:obsidian

    • 命令:node

    • 参数:/绝对路径/to/obsidian-mcp-server/dist/index.js

    • 环境变量:OBSIDIAN_VAULT_PATH=/Users/您的用户名/Documents/Obsidian Vault

Cline MCP
  1. 打开 Cline 设置

  2. 进入 MCP 部分

  3. 添加新的 MCP 服务器:

    • 名称:obsidian

    • 命令:node

    • 参数:/绝对路径/to/obsidian-mcp-server/dist/index.js

    • 环境变量:OBSIDIAN_VAULT_PATH=/Users/您的用户名/Documents/Obsidian Vault

其他 MCP 客户端

使用以下参数配置:

  • 命令node

  • 参数/绝对路径/to/obsidian-mcp-server/dist/index.js

  • 环境变量OBSIDIAN_VAULT_PATH=/绝对路径/to/您的保险库

可用工具

笔记工具

工具

描述

create_note

创建新笔记

read_note

读取笔记内容和元数据

update_note

更新笔记内容或元数据

delete_note

删除笔记

list_notes

列出笔记(支持分页)

搜索工具

工具

描述

search_notes

全文本搜索笔记

search_notes_by_tag

按标签搜索笔记

文件夹工具

工具

描述

list_folders

列出保险库文件夹结构

create_folder

创建新文件夹

delete_folder

删除文件夹

标签工具

工具

描述

list_tags

列出保险库中的所有标签

get_note_tags

获取特定笔记的标签

search_notes_by_tag

查找包含特定标签的笔记

使用示例

# 搜索包含"机器学习"的笔记
搜索包含"机器学习"的笔记

# 列出所有包含#工作标签的笔记
列出所有包含#工作标签的笔记

# 读取特定笔记
读取我的项目笔记

# 创建新笔记
创建一篇新的读书笔记

# 列出文件夹结构
列出保险库的文件夹结构

开发

# 开发模式运行(自动重载)
pnpm dev

# 类型检查
pnpm typecheck

# 代码检查
pnpm lint

常见问题排查

"fs.readFile is not a function" 或类似的文件系统错误

此错误通常发生在 fs-extra 模块无法正确加载时。解决方案:

  1. 清理并重新安装依赖:

    rm -rf node_modules pnpm-lock.yaml
    pnpm install
    pnpm build
  2. 确保使用 dist/ 目录中的编译后 JavaScript 文件,而非 TypeScript 源文件。

工具没有出现在 Claude/Cursor/Cline 中

  1. 检查服务器是否正确启动

    cd /path/to/obsidian-mcp-server
    OBSIDIAN_VAULT_PATH=/您的/保险库/路径 pnpm start

    服务器应该正常运行且保持运行状态。

  2. 验证配置文件路径

    cat ~/Library/Application\ Support/Claude/claude_desktop_config.json

    确保路径是绝对且正确的。

  3. 检查路径权限:确保运行 MCP 客户端的用户对您的保险库有读写权限。

  4. 完全重启 MCP 客户端:配置更改后需要完全重启。

  5. 检查输出目录:服务器使用 dist/ 目录(而非 build/):

    ls /path/to/obsidian-mcp-server/dist/

"Unknown tool" 错误

  1. 确保工具名称与文档中完全一致。工具名称区分大小写。

  2. 检查服务器是否成功启动且没有错误。

  3. 验证使用的是正确的 dist/index.js 文件。

搜索结果为空

  1. 验证 OBSIDIAN_VAULT_PATH 指向正确的文件夹

  2. 检查您的保险库是否包含 .md 文件

  3. 确保路径是绝对的,不是相对路径或使用 ~

  4. 检查笔记是否在预期位置(不在 .obsidiannode_modules 中)

服务器启动但工具无法工作

  1. 检查服务器输出中是否有错误

  2. 验证环境变量设置正确:

    echo $OBSIDIAN_VAULT_PATH
  3. 尝试手动运行服务器查看错误信息:

    OBSIDIAN_VAULT_PATH="/Users/您的用户名/Documents/Obsidian Vault" node dist/index.js

项目结构

obsidian-mcp-server/
├── src/
│   ├── index.ts              # 主入口
│   ├── types/
│   │   └── obsidian.ts       # TypeScript 类型定义
│   ├── services/
│   │   ├── vault-manager.ts  # 保险库管理(文件系统操作)
│   │   ├── note-parser.ts    # 笔记解析(frontmatter、链接)
│   │   ├── search-engine.ts  # 搜索引擎(Fuse.js 集成)
│   │   └── tag-manager.ts    # 标签管理
│   └── tools/
│       ├── note-tools.ts     # 笔记操作工具
│       ├── search-tools.ts   # 搜索工具
│       ├── folder-tools.ts   # 文件夹管理工具
│       └── tag-tools.ts      # 标签操作工具
├── dist/                     # 编译后的 JavaScript(TypeScript 输出)
├── package.json
└── tsconfig.json

许可证

MIT License

Available Tools

14 tools
add_tagB

Add a tag to a note

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to add
pathYesPath to the note

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does not mention whether existing tags are preserved, if the note must already exist, whether duplicate tags are allowed, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the action. Every word is functional, with no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple add operation, the description is minimally adequate but lacks important context such as return values, error conditions, or idempotency behavior. With no annotations and no output schema, it does not fully cover the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes both parameters (path and tag) with 100% coverage. The description adds no additional semantic meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add a tag to a note' uses a specific verb and resource, clearly indicating the operation. It distinguishes from siblings like remove_tag, get_tag_notes, and search_by_tag, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like update_note, which might also add tags, or remove_tag for the opposite operation. There are no exclusions or context cues beyond the basic action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_folderC

Create a new folder

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the new folder to create

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It fails to mention side effects, permissions, error cases, return values, or whether it overwrites an existing folder. This is a significant transparency gap for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no unnecessary words. It is front-loaded with the core purpose and avoids fluff, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no output schema, no annotations), the description is still incomplete. It fails to provide context about behavioral outcomes such as whether intermediate directories are created, what happens if a folder already exists, or what the success response looks like. The agent lacks sufficient information to anticipate side effects or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage of the single parameter 'path' with a description ('Path of the new folder to create'). The tool description adds no additional meaning beyond that, so the baseline score of 3 applies without any extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new folder' uses a specific verb (create) and resource (folder), clearly stating the tool's function. It differentiates from sibling tools like create_note and delete_folder by resource type and action, so there is no ambiguity about what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no context, and no exclusions or prerequisites. It only states the action, leaving the agent to infer usage without any strategic direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_noteC

Create a new note

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to add to the note (optional)
titleYesTitle of the note
folderNoFolder path where to create the note (optional, defaults to root)
aliasesNoAliases for the note (optional)
contentNoInitial content of the note (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action 'create' without explaining side effects, required permissions, idempotency, or what happens on conflict (e.g., duplicate title). No additional behavioral context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no wasted words. It is appropriately front-loaded, though extremely brief; it could include a bit more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal and does not cover return values, error behavior, or operational context. With no output schema and no annotations, the description is not complete enough for an agent to fully understand the tool's behavior beyond the basic action. The tool is relatively simple, but the description leaves too much unsaid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all parameters. The description adds no parameter-level meaning, but the baseline of 3 is appropriate since the schema handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new note' clearly states the action and resource, making it unambiguous that this tool creates a note. It implicitly distinguishes from siblings like update_note, delete_note, and read_note, though it does not explicitly reference alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or scenarios where a different tool would be more appropriate, leaving the agent to infer usage solely from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_folderB

Delete an empty folder

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the folder to delete

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only reveals that the folder must be empty; it does not disclose permanent deletion, error behavior on non-empty folders, or any output/confirmation. This is minimal for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—only four words—and has no filler. It is front-loaded and easy to parse, though the terseness borders on under-specification. Still, it wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutation tool with no annotations, no output schema, and only a one-line description. It does not explain what happens if the folder is non-empty, the irreversibility of the deletion, or any result/error behavior. The description is too incomplete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single 'path' parameter with a clear description. Since schema coverage is 100%, the description adds little beyond the name and basic purpose, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('delete') and resource ('folder'), and adds the important constraint 'empty'. It clearly distinguishes this tool from sibling tools like delete_note and aligns with create_folder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for deleting empty folders, which provides some usage context. However, it gives no explicit guidance on when to use this tool versus alternatives or what to do if the folder is not empty.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_noteC

Delete a note

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the note file to delete

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Delete a note' and does not mention whether deletion is permanent, reversible, or what happens to associated data, nor any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, but it is essentially a restatement of the tool name. It is under-specified rather than efficiently informative, lacking any added context beyond the action itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description is too sparse. It does not address reversibility, error behavior, or any other contextual details expected for a delete operation, leaving the agent with minimal guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the only parameter 'path' with its meaning ('Path to the note file to delete'), so the description does not need to add parameter details. The baseline of 3 applies given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete a note' states a specific verb and resource, clearly distinguishing this tool from siblings like delete_folder or remove_tag. It unambiguously identifies the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives, prerequisites, or situations to avoid. The description offers no contextual usage information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tag_notesB

Get all notes that contain a specific tag

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to search for

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the core read operation without detailing exact-match behavior, case sensitivity, return format, or potential limitations. This leaves an agent without enough information to anticipate edge cases or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the tool's purpose with no redundant or extraneous words. It is concise and well-structured, earning a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description gives a clear functional overview of what the tool does. While it does not explicitly describe the return structure, the phrase 'Get all notes' implies the notes are returned, which likely suffices for an agent to understand the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides complete coverage for the only parameter 'tag' with a description, so the baseline is 3. The tool description adds that notes 'contain' the tag, which slightly clarifies filtering semantics but does not substantially enrich the parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation ('Get') and resource ('all notes') plus the filtering condition ('that contain a specific tag'). It does not explicitly distinguish itself from the sibling tool 'search_by_tag', which likely serves a similar purpose, so it lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when all notes with a particular tag are needed, providing clear context but no exclusions or alternatives. Given that sibling tools like 'search_by_tag' and 'search_notes' exist, there is no guidance on when this tool should be preferred over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foldersB

List all folders in the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to list subfolders from (optional, defaults to root)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. However, it does not clarify whether 'all folders' means recursive listing, what happens when a path is invalid, or whether the operation is read-only. The parameter description in the schema hints at listing subfolders from a path, but ambiguity remains about default scope and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately states the purpose. It is easy to read and free of filler. While it could include more detail, the brevity is appropriate for such a simple operation, though it arguably borders on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description is mostly adequate. However, it lacks information about the return format, recursion behavior, and error cases. The absence of an output schema means the description should have disclosed what the list returns, but it does not, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter 'path' with full coverage (100%): 'Path to list subfolders from (optional, defaults to root)'. The tool description adds no further meaning, but since the schema already provides clear semantics, this meets the baseline for parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: 'List all folders in the vault.' The verb 'list' plus the resource 'folders' clearly identifies the operation, and it distinguishes itself from sibling tools like list_notes and list_tags by targeting folders specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing folders but provides no explicit guidance on when to use this tool versus alternatives or any exclusions. It is clear that this is the appropriate tool for folder enumeration, but lacks direct comparison or edge-case guidance such as when to use list_folders with a path versus listing all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notesB

List all notes in the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of notes to return
folderNoFilter notes by folder (optional)
offsetNoNumber of notes to skip
recursiveNoWhether to list notes recursively in subfolders

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does not mention pagination behavior, recursion defaults, or that it is a read-only operation. The description adds no behavioral context beyond the implied listing action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It conveys the core action efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having four parameters and no output schema or annotations, the description offers minimal context. It does not clarify output format, default behaviors, or when to prefer this tool over search alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented. The description adds no additional parameter meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: listing all notes in the vault. This distinguishes it from search_notes, which searches with queries, and get_tag_notes, which filters by tags.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like search_notes or get_tag_notes. The description provides only the basic action without context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tagsA

List all tags in the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoLimit to a specific folder

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. 'List' clearly implies a read-only operation with no side effects, which is transparent. However, it does not disclose the optional folder filter behavior or return format. It is minimal but not misleading, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no verbose content. Every word earns its place, and it is appropriately sized for a simple listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description is sufficiently complete. It states what the tool does and the scope. It could mention the folder filter or return format, but the schema covers the filter and a list semantics is implied. This is nearly complete, but not a 5 due to no explicit mention of the folder filter or result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for the single 'folder' parameter, with a clear description. The description adds no additional parameter semantics beyond saying 'all tags', which aligns with the optional folder filter. Baseline is 3 because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List all tags in the vault' uses a specific verb ('list') and resource ('tags') with clear scope ('the vault'). It unambiguously distinguishes itself from siblings like list_notes (lists notes) and get_tag_notes (gets notes for a tag), so the purpose is immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this to retrieve all tags. However, it does not explicitly state when not to use it or mention alternatives. The implied usage is evident from the verb and resource, but without explicit guidance on splitting from similar tools like search_by_tag or get_tag_notes, it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_noteA

Read the content of a specific note

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the note file (relative to vault root or absolute)
include_metadataNoWhether to include frontmatter metadata in the output

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It only says 'Read', which implies non-destructive, but does not explain return format, handling of missing paths, or the effect of include_metadata (which defaults to false). Additional behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence, front-loaded with the action and resource. No redundant words or unnecessary details are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool, the description states the core function, but lacks details about return value structure or usage context. Given no output schema and no annotations, it is minimally viable but has gaps in explaining what the agent can expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides complete descriptions for both parameters (path and include_metadata), so the tool description adds no extra parameter meaning. Since schema coverage is 100%, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read the content of a specific note' uses a specific verb and resource, clearly distinguishing it from list_notes (listing), search_notes (searching), and update_note (modifying). It precisely identifies the action and target.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you need the content of a single note, but it provides no explicit guidance on when to use it instead of alternatives like search_notes or list_notes. No when-not scenarios or alternative recommendations are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_tagB

Remove a tag from a note

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to remove
pathYesPath to the note

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden for behavioral disclosure. It only states the action but does not explain side effects, idempotency, error behavior, or whether the tag is also deleted globally. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the core action. There is no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the description omits critical details such as return values, error handling, and whether removing the tag has any side effects on the tag entity itself. With no annotations or output schema, the description should provide more behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters (path and tag). The description adds minimal extra meaning beyond what the schema already provides, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Remove a tag from a note' with a specific verb and resource. It distinguishes itself from siblings like add_tag and get_tag_notes by explicitly describing the inverse operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its usage (when you need to remove a tag), but does not provide explicit guidance on when to use it vs. alternatives like update_note, nor does it mention any exclusions or prerequisites. The purpose is clear enough that usage is inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_by_tagC

Find notes that have a specific tag

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to search for
folderNoLimit search to a specific folder

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it only says 'Find notes...' without disclosing return format, pagination, or whether it returns full note content. The read-only nature is implied but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise single sentence that communicates the core function without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and the presence of sibling tools, the description is underspecified. It does not explain what the result looks like, how it differs from similar tools, or any limitations like folder scoping behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (tag, folder) already described in the schema. The description adds no extra meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds notes by a specific tag, using a specific verb and resource. However, siblings like search_notes and get_tag_notes suggest overlapping functionality, and the description does not differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as search_notes or get_tag_notes. The description does not mention any exclusions or preferred contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_notesB

Search for notes using full-text search

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results
queryYesSearch query
folderNoLimit search to a specific folder

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'full-text search,' which implies a read-only search of note content, but it does not clarify scope, case sensitivity, result ordering, or any side effects. This is a significant gap for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no fluff. It earns its place by stating the core action and method, making it optimally concise for the information it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is too sparse. It does not mention return format, pagination, or how it handles limits/folders, and it lacks differentiation from search_by_tag. For a simple read tool, this is not enough to be considered complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters with 100% coverage, so the baseline is 3. The description adds no additional meaning to the parameters beyond the schema; it does not explain how the query interacts with full-text search or any parameter-specific nuances.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'search' with resource 'notes' and specifies the method 'full-text search'. This clearly distinguishes it from siblings like search_by_tag and list_notes, making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It merely states what the tool does, leaving the user to infer that it should be used for full-text searching. There is no mention of exclusion criteria or when to prefer search_by_tag or list_notes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_noteB

Update the content or metadata of a note

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the note file
tagsNoNew tags (optional, replaces existing)
titleNoNew title (optional, updates frontmatter)
appendNoWhether to append content instead of replacing
aliasesNoNew aliases (optional, replaces existing)
contentNoNew content to replace (optional)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Update' without revealing that content may be replaced or appended, that tags/aliases are replaced, or whether changes are reversible. The schema hints at these behaviors, but the description itself adds no value beyond a generic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of eight words, perfectly concise with no wasted words. It efficiently communicates the core function without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema or annotations, the description is incomplete. It does not explain return values, side effects, append behavior, or when partial updates are allowed. The user must rely entirely on the schema to infer usage, which is insufficient for a mutation tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter described. The description's phrase 'content or metadata' loosely maps to content, title, tags, and aliases, but adds no new meaning beyond what the schema already provides. Baseline 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'update' with a clear resource 'a note', and mentions content or metadata. It distinguishes itself from siblings like create_note and delete_note by implying modification of an existing note. However, it does not explicitly state the scope (e.g., partial versus full update), which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for modifying existing notes, which differentiates it from create_note and delete_note. However, it provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The context is clear but not formally stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.0.0
    • First observedadd_tag
    • First observedcreate_folder
    • First observedcreate_note
    • First observeddelete_folder
    • First observeddelete_note
    • First observedget_tag_notes
    • First observedlist_folders
    • First observedlist_notes
    • First observedlist_tags
    • First observedread_note
    • First observedremove_tag
    • First observedsearch_by_tag
    • First observedsearch_notes
    • First observedupdate_note

TDQS

B3.2/5.0

Scored across 14 tools

Disambiguation2/5

get_tag_notes and search_by_tag both retrieve notes by tag, making them functionally identical and confusingly overlapping. Other tools are distinct, but this duplication creates significant ambiguity.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (read_note, create_note, list_tags). Minor deviations like search_by_tag (verb_preposition_noun) and get_tag_notes (slightly awkward compound noun) break the pattern but are still readable.

Tool Count5/5

With 14 tools covering notes, tags, folders, and search, the count is well-scoped for an Obsidian note management server. Each functional area has appropriate coverage without bloat.

Completeness4/5

Core CRUD for notes, tag management, folder operations, and full-text search are all present. Minor gaps like moving/renaming notes exist, but agents can accomplish most workflows using the current surface.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides an MCP server that allows AI assistants to interact with Obsidian vaults, enabling reading/writing notes, managing metadata, searching content, and working with daily notes.
    37
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server that wraps the Obsidian CLI to give AI assistants direct access to read, edit, and manage notes within an Obsidian vault. It enables advanced operations such as frontmatter property management, context-aware searching, and the execution of internal Obsidian commands.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight MCP server that enables AI assistants to securely read, create, and modify notes in an Obsidian vault, with support for semantic search and web scraping.
    6,222
    MIT