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.
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.
- `/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_diagram` as the canonical flow with `generate_experimental_diagram` kept as a compatibility alias, preview variants that write no files, plus `/translate_content` and `/summarize_as_mermaid`
- Extraction utilities — `/extract_concepts` for a deduplicated concept list, `/extract_original_text` for verbatim matches against reference content, `/check_duplicates` for normalized duplicate terms
- Graph integrity: `/handle_file_rename` rewrites every backlink in the vault, `/handle_file_delete` removes links to a file that is gone
- `/batch_fix_mermaid` — scans a folder and corrects common Mermaid.js and LaTeX syntax errors in `.md` files, which is the usual damage from LLM-generated content
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.
One command plus a key — npx notemd-mcp-server, then supply credentials
