Obsidian Semantic MCP Server
The Obsidian Semantic MCP Server is an AI-optimized interface that consolidates 21+ Obsidian tools into 5 semantic operations, offering:
Vault Operations:
list,read,create,update,delete,search, andfragmentsfor managing files and retrieving relevant content sections to conserve tokens.Smart Editing: Precise content modification with
window(fuzzy-matched replacements),append,patch(for structured edits),at_line, andfrom_buffer(for edit recovery).Content Viewing: Navigate notes with
file,window,active, andopen_in_obsidianactions with support for highlighting and centering.Workflow Guidance: Get contextual
suggestionsandanalyzeactions to guide your next steps.System Operations: Access
info,commands, andfetch_webfor retrieving web content.
The server includes state tracking to prevent invalid operations, error recovery with intelligent hints, and configurable fragment retrieval strategies (adaptive, proximity, semantic).
Provides a semantic interface for Obsidian note-taking, offering file and folder operations, content editing with fuzzy matching, viewing and navigation, workflow suggestions, and system operations. Enables working with vault files, editing content, following links, and managing notes with intelligent context-aware workflows.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Obsidian Semantic MCP Serverlist my recent notes about project planning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian Semantic MCP Server
🎉 Exciting News! We've taken everything we learned from this project and created something even better! Check out the new Obsidian MCP Plugin - a native Obsidian plugin that runs directly inside your vault with improved performance, simplified setup, and enhanced features. We encourage you to try it out!
A semantic, AI-optimized MCP server for Obsidian that consolidates 20 tools into 5 intelligent operations with contextual workflow hints.
🚀 Try Our New Native Plugin!
This MCP server taught us valuable lessons about AI integration with Obsidian. We've applied these insights to create the Obsidian MCP Plugin, which offers:
Native Integration: Runs directly inside Obsidian (no external dependencies!)
Better Performance: Direct vault access without REST API overhead
Easier Setup: Install like any Obsidian plugin - no API keys or external servers
Enhanced Features: Full access to Obsidian's internal APIs and search capabilities
Improved Reliability: No more connection issues or timeouts
👉 Get the Obsidian MCP Plugin
Related MCP server: Obsidian MCP Server
Prerequisites
Obsidian installed on your computer
Local REST API plugin installed in your Obsidian vault
Claude Desktop app
Installation
npm install -g obsidian-semantic-mcpOr use directly with npx (recommended):
npx obsidian-semantic-mcpView on npm: https://www.npmjs.com/package/obsidian-semantic-mcp
Quick Start
Install the Obsidian Plugin:
Open Obsidian Settings → Community Plugins
Browse and search for "Local REST API"
Install the Local REST API plugin by Adam Coddington
Enable the plugin
In the plugin settings, copy your API key (you'll need this for configuration)
Configure Claude Desktop:
The npx command is automatically used in the Claude Desktop configuration. Add this to your Claude Desktop config (usually found at
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):{ "mcpServers": { "obsidian": { "command": "npx", "args": ["-y", "obsidian-semantic-mcp"], "env": { "OBSIDIAN_API_KEY": "your-api-key-here", "OBSIDIAN_API_URL": "https://127.0.0.1:27124", "OBSIDIAN_VAULT_NAME": "your-vault-name" } } } }
Features
This server consolidates traditional MCP tools into an AI-optimized semantic interface that makes it easier for AI agents to understand and use Obsidian operations effectively.
Key Benefits
Simplified Interface: 5 semantic operations instead of 21+ individual tools
Contextual Workflows: Intelligent hints guide AI agents to the next logical action
State Tracking: Token-based system prevents invalid operations
Error Recovery: Smart recovery hints when operations fail
Fuzzy Matching: Resilient text editing that handles minor variations
Fragment Retrieval: Automatically returns relevant sections from large files to conserve tokens
Why Semantic Operations?
Traditional MCP servers expose many granular tools (20+), which can overwhelm AI agents and lead to inefficient tool selection. Our semantic approach:
Consolidates 20 tools into 5 semantic operations based on intent
Provides contextual workflow hints to guide next actions
Tracks state with tokens (inspired by Petri nets) to prevent nonsensical suggestions
Offers recovery hints when operations fail
The 5 Semantic Operations
vault- File and folder operationsActions:
list,read,create,update,delete,search,fragments
edit- Smart content editingActions:
window(fuzzy match),append,patch,at_line,from_buffer
view- Content viewing and navigationActions:
window(with context),open_in_obsidian
workflow- Get guided suggestionsActions:
suggest
system- System operationsActions:
info,commands,fetch_webNote:
fetch_webfetches and converts web content to markdown (uses onlyurlparameter)
Example Usage
Instead of choosing between get_vault_file, get_active_file, read_file_content, etc., you simply use:
{
"operation": "vault",
"action": "read",
"params": {
"path": "daily-notes/2024-01-15.md"
}
}The response includes intelligent workflow hints:
{
"result": { /* file content */ },
"workflow": {
"message": "Read file: daily-notes/2024-01-15.md",
"suggested_next": [
{
"description": "Edit this file",
"command": "edit(action='window', path='daily-notes/2024-01-15.md', ...)",
"reason": "Make changes to content"
},
{
"description": "Follow linked notes",
"command": "vault(action='read', path='{linked_file}')",
"reason": "Explore connected knowledge"
}
]
}
}State-Aware Suggestions
The system tracks context tokens to provide relevant suggestions:
After reading a file with
[[links]], it suggests following themAfter a failed edit, it offers buffer recovery options
After searching, it suggests refining or reading results
Advanced Features
Content Buffering
The window edit action automatically buffers your new content before attempting the edit. If the edit fails or you want to refine it, you can retrieve from buffer:
{
"operation": "edit",
"action": "from_buffer",
"params": {
"path": "notes/meeting.md"
}
}Fuzzy Window Editing
The semantic editor uses fuzzy matching to find and replace content:
{
"operation": "edit",
"action": "window",
"params": {
"path": "daily/2024-01-15.md",
"oldText": "meting notes", // typo will be fuzzy matched
"newText": "meeting notes",
"fuzzyThreshold": 0.8
}
}Smart PATCH Operations
Target specific document structures:
{
"operation": "edit",
"action": "patch",
"params": {
"path": "projects/todo.md",
"operation": "append",
"targetType": "heading",
"target": "## In Progress",
"content": "- [ ] New task"
}
}Fragment Retrieval for Large Documents
The system automatically uses intelligent fragment retrieval when reading files, significantly reducing token consumption while maintaining relevance:
{
"operation": "vault",
"action": "read",
"params": {
"path": "large-document.md"
}
}Returns relevant fragments instead of the entire file:
{
"result": {
"content": [
{
"id": "file:large-document.md:frag0",
"content": "Most relevant section...",
"score": 0.95,
"lineStart": 145,
"lineEnd": 167
}
],
"fragmentMetadata": {
"totalFragments": 5,
"strategy": "adaptive",
"originalContentLength": 135662
}
}
}Fragment Search Strategies:
adaptive - TF-IDF keyword matching (default for short queries)
proximity - Finds fragments where query terms appear close together
semantic - Chunks documents into meaningful sections
You can explicitly search for fragments across your vault:
{
"operation": "vault",
"action": "fragments",
"params": {
"query": "project roadmap timeline",
"maxFragments": 10,
"strategy": "proximity"
}
}To retrieve the full file (when needed), use:
{
"operation": "vault",
"action": "read",
"params": {
"path": "document.md",
"returnFullFile": true
}
}Workflow Examples
Daily Note Workflow
Create today's note → 2. Add template → 3. Link yesterday's note
Research Workflow
Search topic → 2. Read results → 3. Create synthesis note → 4. Link sources
Refactoring Workflow
Find all mentions → 2. Update links → 3. Rename/merge notes
Configuration
The semantic workflow hints are defined in src/config/workflows.json and can be customized for your workflow preferences.
Fragment Retrieval Configuration
The fragment retrieval system automatically activates when reading files to conserve tokens. You can control this behavior:
Default behavior: Returns up to 5 relevant fragments when reading files
Full file access: Use
returnFullFile: trueparameter to get complete contentStrategy selection: The system auto-selects based on query length, or you can specify:
adaptivefor keyword matching (1-2 word queries)proximityfor finding related terms together (3-5 word queries)semanticfor conceptual chunking (longer queries)
Error Recovery
When operations fail, the semantic interface provides intelligent recovery hints:
{
"error": {
"code": "FILE_NOT_FOUND",
"message": "File not found: daily/2024-01-15.md",
"recovery_hints": [
{
"description": "Create this file",
"command": "vault(action='create', path='daily/2024-01-15.md')"
},
{
"description": "Search for similar files",
"command": "vault(action='search', query='2024-01-15')"
}
]
}
}Environment Variables
The server automatically loads environment variables from a .env file if present. Variables can be set in order of precedence:
Existing environment variables (highest priority)
.envfile in current working directory.envfile in the server directory
Required variables:
OBSIDIAN_API_KEY- Your API key from the Local REST API plugin
Optional variables:
OBSIDIAN_API_URL- API URL (default: https://localhost:27124)Supports both HTTP (port 27123) and HTTPS (port 27124)
HTTPS uses self-signed certificates which are automatically accepted
OBSIDIAN_VAULT_NAME- Vault name for context
Example .env file:
OBSIDIAN_API_KEY=your-api-key-here
OBSIDIAN_API_URL=http://127.0.0.1:27123
OBSIDIAN_VAULT_NAME=MyVaultPATCH Operations
The PATCH operations (patch_active_file and patch_vault_file) allow sophisticated content manipulation:
Target Types:
heading: Target content under specific headings using paths like "Heading 1::Subheading"block: Target specific block referencesfrontmatter: Target frontmatter fields
Operations:
append: Add content after the targetprepend: Add content before the targetreplace: Replace the target content
Example: Append content under a specific heading:
{
"operation": "append",
"targetType": "heading",
"target": "Daily Notes::Today",
"content": "- New task added"
}Development
# Clone and install
git clone https://github.com/aaronsb/obsidian-semantic-mcp.git
cd obsidian-semantic-mcp
npm install
# Development mode
npm run dev
# Testing
npm test # Run all tests
npm run test:coverage # With coverage report
# Build
npm run build # Build the server
npm run build:full # Test + Build
# Start
npm start # Start the serverArchitecture
The semantic system consists of:
Semantic Router (
src/semantic/router.ts) - Routes operations to handlersState Tokens (
src/semantic/state-tokens.ts) - Tracks context stateWorkflow Config (
src/config/workflows.json) - Defines hints and suggestionsCore Utilities (
src/utils/) - Shared functionality like file reading and fuzzy matching
Testing
The project includes comprehensive Jest tests for the semantic system:
npm test # Run all tests
npm test semantic-router # Test routing logic
npm test semantic-tools # Test integrationKnown Issues
Search functionality: The search operation may occasionally timeout on large vaults due to API limitations in the Obsidian Local REST API plugin.
Contributing
Contributions are welcome! Areas of interest:
Additional workflow patterns in
workflows.jsonNew semantic operations
Enhanced state tracking
Integration with Obsidian plugins
License
MIT
Available Tools
5 toolseditC
Smart editing operations - window (auto-buffers content), append, patch, at_line, from_buffer
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The specific action to perform | |
| content | No | Content to write or append | |
| fuzzyThreshold | No | Similarity threshold for fuzzy matching (0-1) | |
| lineNumber | No | Line number for at_line action | |
| mode | No | Insert mode for at_line action | |
| newText | No | Text to replace with | |
| oldText | No | Text to search for (supports fuzzy matching) | |
| operation | No | Patch operation: append (add after), prepend (add before), or replace | |
| path | No | Path to the file or directory | |
| target | No | Target identifier - e.g., "Daily Notes::Today" for heading, block ID, or frontmatter field name | |
| targetType | No | What to target: heading (by path like "H1::H2"), block (by ID), or frontmatter (field) |
TDQS
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 mentions 'auto-buffers content' for the window action and 'supports fuzzy matching' in the schema, but doesn't explain what these mean operationally. Critical behavioral aspects like whether edits are destructive, require specific permissions, have side effects, or how errors are handled are completely undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single phrase listing five actions. While efficient, it's arguably too terse given the tool's complexity. The structure is front-loaded with the action names, but lacks any explanatory context. Every word earns its place, but more context would be helpful for such a multi-action tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 11-parameter tool with no annotations and no output schema, the description is inadequate. It doesn't explain what gets edited (files? buffers? notes?), how different actions relate to each other, what the expected outcomes are, or any error conditions. The agent must rely entirely on parameter schemas without understanding the broader editing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly with descriptions and enums. The description adds minimal value by listing the five action names, but doesn't explain their differences or relationships to parameters. The baseline of 3 is appropriate when the schema does the heavy lifting, though the description could have better explained how actions map to parameter requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists five specific actions (window, append, patch, at_line, from_buffer) which gives some specificity about what the tool does, but it doesn't clearly state the overall purpose or what resource is being edited. The phrase 'Smart editing operations' is vague and doesn't distinguish this from potential sibling tools like 'view' or 'workflow'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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's no mention of when to choose 'edit' over other sibling tools like 'view' or 'workflow', nor any context about which action to select for different editing scenarios. The agent must infer usage entirely from parameter names and enums.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
systemC
System operations - info, commands, fetch_web
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The specific action to perform | |
| url | No | URL to fetch and convert to markdown |
TDQS
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 lists actions but doesn't describe what each does (e.g., 'info' might return system status, 'commands' could list available commands, 'fetch_web' likely retrieves web content). It omits critical details like permissions needed, rate limits, side effects, or response format, leaving significant gaps for a tool with multiple operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but under-specified—it's a single phrase listing actions without elaboration. While concise, it lacks structure and front-loading of key information. Every word earns its place, but the content is insufficient, making it more of a placeholder than a helpful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple actions under one tool), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns or how actions differ, leaving the agent to guess. For a tool with 2 parameters and varied operations, this minimal description is inadequate to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents both parameters: 'action' with enum values and 'url' for fetch_web. The description adds no meaning beyond this—it doesn't explain what each action entails or when 'url' is required. Baseline 3 is appropriate since the schema does the heavy lifting, but the description fails to compensate with additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'System operations - info, commands, fetch_web' lists three operations but doesn't specify what each does or what 'system operations' means. It's vague and doesn't clearly distinguish this tool from siblings like 'edit', 'vault', 'view', or 'workflow'. The description essentially restates the tool name 'system' with appended action names, making it tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description doesn't explain the context for 'info', 'commands', or 'fetch_web', nor does it mention prerequisites or exclusions. Without any usage instructions, an agent must infer from the action names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultC
File and folder operations - list, read, create, update, delete, search
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The specific action to perform | |
| content | No | Content to write or append | |
| directory | No | Directory path for list operations | |
| includeContent | No | Include file content in search results (slower but more thorough) | |
| maxFragments | No | Maximum number of fragments to return (default: 5) | |
| page | No | Page number for paginated results | |
| pageSize | No | Number of results per page | |
| path | No | Path to the file or directory | |
| query | No | Search query | |
| returnFullFile | No | Return full file instead of fragments (WARNING: large files can consume significant context) | |
| strategy | No | Fragment retrieval strategy (default: auto) |
TDQS
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. While it lists operations, it provides no information about permissions required, whether operations are destructive, rate limits, error conditions, or what happens during conflicts. For a tool with 11 parameters including 'delete' and 'update' actions, this is a significant gap in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single phrase listing the core operations. Every word earns its place, and it's front-loaded with the essential information. There's no wasted verbiage or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 11 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, how different actions behave, error handling, or performance characteristics. The description provides only a high-level capability list without the context needed for effective tool selection and use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'File and folder operations' followed by a list of specific actions (list, read, create, update, delete, search). This provides a clear verb+resource combination. However, it doesn't differentiate this tool from potential sibling tools like 'view' or 'edit', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With sibling tools named 'edit', 'system', 'view', and 'workflow', there's no indication of which scenarios call for 'vault' versus those other tools. The description simply lists capabilities without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewC
Content viewing and navigation - file, window, active, open_in_obsidian
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The specific action to perform | |
| lineNumber | No | Line number to center view around | |
| path | No | Path to the file or directory | |
| searchText | No | Text to search for and highlight | |
| windowSize | No | Number of lines to show |
TDQS
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 mentions 'viewing and navigation', which implies read-only operations, but doesn't clarify if this tool requires specific permissions, has side effects (e.g., opening files in Obsidian), or handles errors. For a tool with multiple parameters and actions, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose ('Content viewing and navigation'), followed by a list of actions. It wastes no words, though it could be slightly more structured by grouping related actions or adding brief explanations. Overall, it's efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, multiple actions) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., file content, window details), how actions differ in behavior, or prerequisites (e.g., 'path' required for 'file' action). For a multi-action tool, this leaves too much undefined for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly (e.g., 'action' with enum values, 'lineNumber', 'path', etc.). The description adds minimal value by listing action names but doesn't provide additional context like how parameters interact (e.g., 'path' is needed for 'file' action) or usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Content viewing and navigation' and lists specific actions (file, window, active, open_in_obsidian), which provides a good overview of what it does. However, it doesn't explicitly differentiate this viewing/navigation tool from sibling tools like 'edit' (which likely modifies content) or 'vault' (which might manage files), leaving some ambiguity about when to choose this tool over alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'edit' or 'vault'. It lists actions but doesn't explain the context for choosing 'view' over other tools, such as for read-only operations versus modifications. This lack of explicit usage context leaves the agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflowC
Workflow guidance and suggestions based on current context
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The specific action to perform | |
| type | No | Type of analysis or workflow |
TDQS
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. While it mentions providing 'guidance and suggestions,' it doesn't describe what form these take, whether they're actionable recommendations, informational tips, or something else. There's no information about permissions needed, rate limits, side effects, or what constitutes 'current context' that triggers the suggestions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise at just 6 words. It's front-loaded with the core purpose ('Workflow guidance and suggestions') and adds qualifying context ('based on current context'). There's no wasted language, though the brevity contributes to the vagueness noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what kind of output to expect (structured data, natural language, actionable steps), what domains it covers, or how the 'current context' is determined. The combination of vague purpose, missing behavioral details, and unspecified output format leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema. It doesn't explain how 'type' relates to 'workflow guidance' or what values might be appropriate for 'type' beyond the schema's basic type declaration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Workflow guidance and suggestions based on current context' states a general purpose (providing guidance/suggestions) but lacks specificity about what resources or domains it operates on. It doesn't distinguish itself from sibling tools like 'edit', 'system', 'vault', or 'view' - all of which could potentially provide guidance in different contexts. The description is vague about what exactly 'workflow' refers to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus the sibling tools. There's no mention of prerequisites, appropriate contexts, or alternatives. The phrase 'based on current context' implies some situational awareness but doesn't specify what constitutes appropriate context or when other tools might be better choices.
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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
edit - First observed
system - First observed
vault - First observed
view - First observed
workflow
TDQS
Each tool has a clearly distinct purpose: edit handles content modifications, system manages system-level operations, vault deals with file management, view focuses on content display and navigation, and workflow provides contextual suggestions. There is no overlap in functionality that would cause confusion for an agent.
All tool names follow a consistent, simple noun-based pattern (edit, system, vault, view, workflow) without mixing conventions like camelCase or snake_case. This predictability makes it easy for an agent to understand and select tools.
With 5 tools, the server is well-scoped for an Obsidian integration, covering key areas like file operations, content editing, system interactions, viewing, and workflow assistance. Each tool earns its place without feeling excessive or insufficient.
The tool set provides comprehensive coverage for core Obsidian workflows, including CRUD operations via vault, editing capabilities, and navigation. A minor gap might be the lack of explicit tools for plugin management or advanced search, but agents can likely work around this with existing tools like system and vault.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Shared long-term memory vault for AI agents with 20 MCP tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA lightweight server that enables AI assistants like Cursor & Claude to read from and write to Obsidian vaults, allowing actions like creating notes, checking existing content, and managing todos through natural language.5,78431Apache 2.0
- AlicenseAqualityDmaintenanceA server that enables AI agents to perform sophisticated knowledge discovery and analysis across Obsidian vaults through the Local REST API plugin, supporting complex multi-step workflows with advanced filtering and full content retrieval.321MIT
- AlicenseBqualityFmaintenanceEnables seamless integration between AI models and Obsidian knowledge bases with 25 advanced tools for note management, intelligent search, AI-powered content analysis, auto-linking, tag management, template systems, and knowledge graph generation.253526MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to search, create, and manage notes in an Obsidian vault via 40+ local tools.5227MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aaronsb/obsidian-semantic-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server