Obsidian Project Management MCP Server
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 Project Management MCP Servercreate a new milestone for Q2 with owner Alice"
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 Project Management MCP Server
Current Version: v0.2.21
An MCP (Model Context Protocol) server for AI-native project management in Obsidian. Enables AI assistants to create, update, search, and manage project entities stored as markdown files with automatic relationship tracking.
What This Does
This MCP server lets AI assistants:
Manage project entities — create, update, and track milestones, stories, tasks, decisions, documents, and features
Handle dependencies — define relationships between entities with automatic bidirectional sync
Track progress — see project status, workstream health, and feature coverage
Navigate hierarchies — traverse parent-child relationships and dependency graphs
Batch operations — efficient bulk create/update/archive with dry-run preview
┌─────────────────────────────────────────────────────────────────────┐
│ Your Workflow │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────────┐ ┌──────────┐ │
│ │ Obsidian │◄────►│ MCP Server │◄────►│ AI │ │
│ │ Vault │ │ (this repo) │ │ Assistant│ │
│ └──────────┘ └──────────────┘ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘Installation
Prerequisites
Node.js 18 or later
An Obsidian vault
Configure Your AI Assistant
Add the MCP server to your AI client's configuration. No separate installation needed - npx handles it automatically.
Latest Version: v0.2.21
For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@ostanlabs/obsidian-mcp"],
"env": {
"VAULT_PATH": "/absolute/path/to/your/obsidian/vault",
"DEFAULT_CANVAS": "projects/main.canvas"
}
}
}
}With Semantic Search (optional):
To enable hybrid vector + keyword search, add the --semantic-search flag:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@ostanlabs/obsidian-mcp", "--semantic-search"],
"env": {
"VAULT_PATH": "/absolute/path/to/your/obsidian/vault",
"DEFAULT_CANVAS": "projects/main.canvas"
}
}
}
}Note: Semantic search requires downloading the BGE-M3 ONNX model (~2.3 GB) on first use. The model is stored at
~/.msrl/models/bge-m3and only needs to be downloaded once.
Variable | Required | Description |
| Yes | Absolute path to your Obsidian vault |
| No | Path to your main project canvas file (relative to vault) |
Flag | Description |
| Enable hybrid vector + keyword search. Downloads model on first use (~2.3 GB). |
| Print version and exit |
Vault Structure
The server will create entities in these folders (create them if they don't exist):
your-vault/
├── milestones/ # M-xxx.md
├── stories/ # S-xxx.md
├── tasks/ # T-xxx.md
├── decisions/ # DEC-xxx.md
├── documents/ # DOC-xxx.md
├── features/ # F-xxx.md
└── archive/ # Archived entitiesConfigure Workspaces
Workspaces define document collections that the AI can access. You can configure them in two ways:
Option 1: Ask the AI (recommended)
"Add a workspace called 'docs' pointing to /path/to/my/docs folder" "Add a notes workspace for my meeting notes at /path/to/notes"
Option 2: Edit manually
On first run, the server creates a workspaces.json file in your vault:
{
"docs": {
"path": "/absolute/path/to/your/vault/docs",
"description": "Project documentation and reference materials"
}
}Core Concepts
Entity Hierarchy
The system uses a hierarchical entity model:
Milestone (M-xxx)
└── Story (S-xxx)
└── Task (T-xxx)
Feature (F-xxx) ─── product features with coverage tracking
Decision (DEC-xxx) ─── captured choices, can affect other entities
Document (DOC-xxx) ─── specs/ADRs, can be implemented by storiesEntity Types
Type | ID Format | Key Fields |
Milestone |
|
|
Story |
|
|
Task |
|
|
Decision |
|
|
Document |
|
|
Feature |
|
|
Entity Status
Entity | Statuses |
Milestone, Story |
|
Task |
|
Decision |
|
Document |
|
Feature |
|
Relationships (Auto-Synced)
All relationships are bidirectional and automatically synchronized:
Relationship | Forward Field | Reverse Field |
Hierarchy |
|
|
Dependency |
|
|
Implementation |
|
|
Supersession |
|
|
Documentation |
|
|
Workstreams
Entities are organized by workstream. Values are automatically normalized:
infrastructure,infra→infraeng,engineering→engineeringbiz,business→businessops,operations→operationsr&d,rnd,research→researchux,ui,design→designmktg,marketing→marketing
MSRL Semantic Search
Search your entire vault using hybrid vector + keyword search.
Requires: Start the server with
--semantic-searchflag to enable.
Features:
Hybrid search - Combines vector embeddings with keyword matching
Auto-download - BGE-M3 model (~2.3 GB) downloaded automatically on first use
Fast indexing - Automatic index updates on document changes
Relevance ranking - Results ranked by semantic similarity
Model Storage:
The ONNX model is stored at ~/.msrl/models/bge-m3 and shared across all vaults.
Tools (only available with --semantic-search):
search_docs- Semantic search across workspace documentsmsrl_status- Check semantic search index statussearch_entitieswithsemantic: true- Hybrid search for entities
Example queries:
"Search for all documents about authentication" "Find references to database design decisions" "Show me documentation about API endpoints"
See Semantic Search Guide for setup and advanced usage.
Archive Structure
Archived entities are organized in a flat structure by type:
archive/
├── milestones/
├── stories/
├── tasks/
├── decisions/
├── documents/
└── features/Entities with status: archived are automatically moved to the appropriate folder and excluded from canvas and searches.
See Archive Structure Guide for workflows.
Migration Notes
Recent Schema Changes
Decision Relationships:
✅ Use
affectsfield (new)❌
blocksfield is deprecated
Story Workstreams:
✅ Use
workstreamfield (new)❌
effortfield is deprecated (auto-migrated)
CSS Classes:
✅ Use
canvas-workstream-*pattern (new)❌
canvas-effort-*pattern is deprecated
See Entity Schemas for complete schema documentation.
Available Tools
The MCP server provides 27 tools organized by function:
Entity Management
Tool | Description |
| Create a new entity (milestone, story, task, decision, document, or feature) |
| Update fields, status, relationships, or archive/restore. Returns before/after diff. |
Batch Operations
Tool | Description |
| Bulk create/update/archive with |
| Create multiple entities in one operation with relationship setup |
| Archive multiple entities with cascade option for children |
| Restore multiple entities from archive with relationship preservation |
Project Understanding
Tool | Description |
| High-level project status with workstream filtering |
| Deep analysis with blockers and recommendations |
| Feature implementation/test/documentation coverage with |
| Analyze dependency graphs, detect cycles, and identify critical paths |
| Project-wide metrics and statistics (velocity, completion rates, etc.) |
Search & Navigation
Tool | Description |
| Full-text search, list with filters, or navigate hierarchy |
| Get single entity with selective field retrieval |
| Bulk fetch multiple entities (~75% token savings) |
| Semantic search across workspace documents using MSRL hybrid search |
| Check MSRL semantic search index status |
Document Management
Tool | Description |
| Decision history, versioning, freshness checks |
Canvas Operations
Tool | Description |
| Populate canvas from vault entities with layout options |
| Refresh canvas layout and styling |
Maintenance
Tool | Description |
| Fix inconsistent bidirectional relationships |
| Get entity schema information |
Workspace Management
Tool | Description |
| List all configured workspaces |
| Add, update, or remove workspaces from configuration |
| List all markdown files in a workspace |
| Read a document from a workspace |
| Create, update, or delete documents in a workspace |
Utility Tools
Tool | Description |
| Validate entity data against schema with detailed error messages |
| Export project data in various formats (JSON, CSV, Markdown) |
Usage Examples
Once configured, ask your AI assistant things like:
Project Overview
"What's the status of my project?" "Show me the engineering workstream status" "What items are blocked?" "Analyze the project and identify risks"
Managing Entities
"Create a milestone for Q1 launch with target date March 31" "Create a story under M-001 for user authentication" "Add a task to S-003 for writing unit tests" "Mark T-005 as completed"
Dependencies
"S-004 depends on S-002 and S-003" "What's blocking S-006?" "Show me the dependency graph for M-001"
Decisions & Documents
"Create a decision about using PostgreSQL vs MongoDB" "What decisions have been made about authentication?" "Create a spec document for the API design" "Is DOC-003 up to date with recent decisions?"
Features
"What's the feature coverage for Phase 2?" "Which features are missing documentation?" "Show me F-001's implementation status"
Documents
"What workspaces are available?" "List files in the docs workspace" "Read the architecture document"
Documentation
For comprehensive documentation, see the obsidian_docs repository:
Quick Links
Quick Start Guide - Get started in 15 minutes
User Guide - Complete workflows and features
MCP Tools Reference - All 27 tools documented
Entity Schemas - Complete entity definitions
Feature Guides
Semantic Search - MSRL hybrid search
Feature Coverage - Track implementation status
Workspace Management - Multi-vault organization
Relationship Reconciliation - Data integrity
Archive Structure - Archive workflows
Workstream Normalization - Auto-normalization
Development
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Type check
npm run typecheckProject Structure
src/
├── index.ts # MCP server entry point
├── models/
│ └── v2-types.ts # Entity type definitions
├── services/v2/
│ ├── entity-parser.ts # Parse markdown to entities
│ ├── entity-serializer.ts # Serialize entities to markdown
│ ├── entity-validator.ts # Validate entity data
│ ├── index-manager.ts # Entity indexing
│ ├── lifecycle-manager.ts # Status transitions
│ ├── archive-manager.ts # Archive/restore
│ ├── workstream-normalizer.ts # Workstream normalization
│ ├── cycle-detector.ts # Dependency cycle detection
│ └── v2-runtime.ts # Main runtime
└── tools/
├── index.ts # Tool definitions
├── entity-management-tools.ts
├── batch-operations-tools.ts
├── project-understanding-tools.ts
├── search-navigation-tools.ts
└── decision-document-tools.tsLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/ostanlabs/obsidian_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server