Obsidian-based Model Context Protocol server for AI-assisted software development. Provides tools for task management, work logging, session tracking, code atlas generation, semantic knowledge management, and project continuity.
OBSMCP exposes 30 tools with basic schemas and descriptions, but falls short of production quality. All tools have descriptions (10-150 chars, mostly adequate) and input schemas with typed parameters. However, schemas lack depth: no enums for constrained values (e.g., resume_strategy accepts 'auto|new|resume' but not declared as enum), no output schemas documented, and error handling is absent. Parameter descriptions are generic ('Actor label (default: ctx)' repeated 8+ times). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Naming is verb-first and clear (start_task, log_work, session_open), but composition issues exist: session_open conflates multiple concerns (open + resume + heartbeat config). Missing recovery guidance in descriptions.
Append a daily note entry.
Force regenerate atlas.
Get status of a specific scan job.
List background scan jobs.
Regenerate atlas if stale.
Check atlas state.
Wait for a scan job to complete.
Check client/server compatibility.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. All 30 tools lack return type documentation.
No error handling guidance. Tools lack recovery hints (e.g., 'If session not found, call session_list() first'). Errors will not guide LLM retry logic.
Constrained parameters lack enum declarations. resume_strategy accepts 'auto|new|resume', job_status accepts specific values, but not declared as enums. LLMs will hallucinate invalid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Create a handoff for another model or tool.
Describe a feature tag.
Describe a module/file.
Describe a function or class.
Show open blockers.
Show the current task.
Show the project status snapshot.
Get symbol candidates for a name.
Search semantic knowledge.
Append a work log entry.
Run startup safety checks before opening or resuming a session.
List registered projects.
Migrate legacy repo-local obsmcp notes/context into the centralized workspace.
Show workspace paths for a project.
Register a repo with obsmcp.
Show the startup resume dashboard.
Close a session and optionally create a handoff.
Heartbeat an active session.
List active sessions.
Open a tracked AI work session.
Set the current task and mark it in progress.
Regenerate .context and Obsidian files.
Generic parameter descriptions repeated across tools. 'Actor label (default: ctx)' appears 8+ times. Descriptions should explain WHEN to use each tool and what distinguishes it from similar tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes. session_close and project_migrate are destructive but unmarked.