MarkScribe
Provides tools for managing Logseq workspaces, including reading/writing notes, handling bidirectional links, managing tags, and validating notes against schemas for convention enforcement.
Provides tools for managing Obsidian vaults, including reading/writing notes, handling wikilinks, managing tags, and validating notes against schemas for convention enforcement.
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., "@MarkScribesearch for 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.
MarkScribe
Convention-aware markdown MCP server for the Model Context Protocol. MarkScribe lets AI agents read, write, search, and validate markdown files — enforcing conventions through user-defined YAML schemas. Works with any markdown directory: Obsidian vaults, Foam workspaces, digital gardens, documentation repos.
Features
Read, write, move, and delete notes with atomic file operations
Full-text search (BM25 ranking) across content and frontmatter
Wikilink-aware: backlinks, broken link detection, orphan finding, unlinked mention discovery
YAML frontmatter parsing, validation, and bulk updates
Tag management (frontmatter and inline)
Convention enforcement via schemas — note schemas validate frontmatter/content, folder schemas enforce structural rules
Convention cascade:
_conventions.mdfiles scope schemas to directory subtreesPath security:
.obsidian/,.git/,node_modules/always blocked
Installation
npm install -g markscribeUsage
As an MCP server
{
"mcpServers": {
"markscribe": {
"command": "markscribe",
"args": ["--root", "/path/to/your/notes"]
}
}
}CLI flags
Flag | Default | Description |
| Current working directory | Root directory to serve |
|
| Directory to load schema YAML files from |
|
| Log level ( |
Per-directory config
Place a .markscribe/config.yaml in your root directory:
paths:
blocked:
- private/
- drafts/
allowed_extensions:
- .md
- .markdown
- .txt
search:
max_results: 50
excerpt_chars: 40Schemas
Schemas define conventions for your notes and folders. Place them in your schemas directory (~/.markscribe/schemas/ by default).
Note schema — validates frontmatter fields and content rules:
name: blog-post
description: Blog post with required metadata
type: note
frontmatter:
fields:
title:
type: string
required: true
tags:
type: list
required: true
content:
rules:
- name: has-outgoing-link
check: hasPattern
pattern: "\\[\\[.+?\\]\\]"Folder schema — enforces structural rules on directories:
name: project-folder
description: Project folder with hub note
type: folder
noteSchemas:
default: blog-post
hub: project-hub
classification:
supplemental: [assets, templates]
skip: [archive]
hub:
detection:
- pattern: "_{{folderName}}"
required: trueNotes opt into schemas via note_schema: <name> in frontmatter, or automatically via the convention cascade (_conventions.md files).
Tools
Tool | Description |
| List files and subdirectories |
| Note count, total size, recent files |
| Change the active root directory |
| Read a note with parsed frontmatter |
| Create or update a note |
| String replacement within a note |
| Delete a note (with confirmation) |
| Move/rename with optional link updates |
| Batch read up to 10 notes |
| Convention-aware note creation |
| Read YAML frontmatter only |
| Merge or replace frontmatter fields |
| Add, remove, or list tags |
| Full-text BM25 search |
| Validate a note against its schema |
| Classify and validate a folder |
| Recursive subtree validation |
| Full directory tree validation |
| List all loaded schemas |
| Find notes linking to a note |
| Find wikilinks to non-existent notes |
| Find notes with no incoming links |
| Find plain-text mentions that should be wikilinks |
Compatible viewers
MarkScribe works with any tool that reads markdown files:
Obsidian — PKM app with graph view and community plugins
Foam — VS Code extension for linked notes
Logseq — Outliner with bidirectional links
Any text editor or static site generator
Acknowledgements
Built with Claude Code.
License
MIT
Maintenance
Appeared in Searches
Latest Blog Posts
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/Erodenn/markscribe'
If you have feedback or need assistance with the MCP directory API, please join our Discord server