LABSCO SUMMARY
Per-task model routing is the unusual part.
Most knowledge-base servers give you one provider for everything. Here link-building, research, title generation, translation, concept extraction and diagramming each take their own provider and model override, which matters because those tasks have genuinely different cost profiles — bulk wiki-linking on a cheap local model, research on a strong one. The backlink repair on rename and delete is the other quietly valuable piece: it is the step people forget, and broken links are what kill a graph.
What it is
The backend of the Notemd Obsidian plugin, running standalone as a FastAPI service with a Node bridge that exposes it over MCP. It processes Markdown content to find key concepts and wire them together as [[wiki-links]], generates full documentation from a title, summarises web research, and keeps the graph intact when files are renamed or deleted.
What you get
/process_content— enriches a block of text with[[wiki-links]], building the interconnected graph rather than leaving notes isolated/generate_title— produces structured documentation from a single title or keyword, optionally with web research folded in/research_summarize— searches the web through Tavily or DuckDuckGo and returns an LLM summary- Diagram and translation work:
generate_diagramas the canonical flow withgenerate_experimental_diagramkept as a compatibility alias, preview variants that write no files, plus/translate_contentand/summarize_as_mermaid - Extraction utilities —
/extract_conceptsfor a deduplicated concept list,/extract_original_textfor verbatim matches against reference content,/check_duplicatesfor normalized duplicate terms - Graph integrity:
/handle_file_renamerewrites every backlink in the vault,/handle_file_deleteremoves links to a file that is gone /batch_fix_mermaid— scans a folder and corrects common Mermaid.js and LaTeX syntax errors in.mdfiles, which is the usual damage from LLM-generated content
Requirements
An LLM provider key — the config shows OPENAI_API_KEY and DEEPSEEK_API_KEY, and any OpenAI-compliant API works, including local models through LMStudio or Ollama. Web research additionally wants TAVILY_API_KEY unless you set the search provider to DuckDuckGo. Python 3.8+ with pip or uv for the Python path; Node.js and npx for the packaged route, which is npx notemd-mcp-server (the npm package is notemd-mcp-server, 0.6.1). Paths, providers and per-task model overrides all live in config.py, including VAULT_ROOT, which must point at your vault. MIT licensed.
Setup effort
One command plus a key — npx notemd-mcp-server, then supply credentials
USE CASES
01
Turning raw notes into a connected vault
Run the content through link enrichment so key concepts become wiki-links and concept notes get created, instead of linking by hand.
02
Drafting a document from nothing but a title
Generate structured documentation from a keyword, with web research pulled in for context where the topic is current.
03
Keeping the graph intact after a reorganisation
Update every backlink after a rename, or strip links to a note you deleted, so the vault does not quietly fill with dead references.
04
Fixing LLM-generated diagrams in bulk
Scan a folder and repair the common Mermaid and LaTeX syntax errors across every Markdown file in it.
05
Researching a topic and filing the result
Search the web, summarise it, then enrich the summary with links so it joins the rest of the vault rather than sitting alone.
BEFORE YOU INSTALL
What to know first
Requires
- npx on PATH
- OPENAI_API_KEY in your environment
- DEEPSEEK_API_KEY in your environment
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
JSON
{
"mcpServers": {
"notemd-mcp": {
"description": "Notemd MCP Server - AI-powered text processing and knowledge management\n for your Markdown files.",
"command": "npx",
"args": [
"-y",
"notemd-mcp-server"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
"DEEPSEEK_API_KEY": "<YOUR_DEEPSEEK_API_KEY>"
}
}
}
}npx
TERMINAL
npx notemd-mcp-server