enquire-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| obsidian_list_notesA | List notes in the vault. Filter by tag, folder, or modified-since date. Returns title, path, frontmatter, tags, and mtime — newest first. |
| obsidian_read_noteA | Read a note by relative path or by title (filename without .md). Default |
| obsidian_resolve_wikilinkA | Resolve an Obsidian [[wikilink]] (or ![[embed]]) to a vault file. Handles aliases (Note|alias), sections (Note#Heading), block refs (Note^block), and ../-relative paths. |
| obsidian_get_recent_editsA | List notes ordered by most recent modification. Useful for picking up where work was left off. |
| obsidian_stale_notesA | List notes not edited in N days (forgetting-aware staleness), oldest first. Use to surface facts that may be outdated before relying on them, or to pick notes to refresh. Cheap mtime-only scan; returns path / title / mtime / age_days. |
| obsidian_get_backlinksA | List every note in the vault that links (or embeds) the target note. Returns ranked hits with snippets and link kind (wikilink/embed/mixed). |
| obsidian_list_tagsA | List every unique tag in the vault with usage counts (frontmatter vs inline). Sorted by count desc. |
| obsidian_dataview_queryA | Run a Dataview-style query. Grammar: (LIST | TABLE col1, col2) FROM ("folder" | #tag) [WHERE pred (AND|OR pred)*] [SORT field [ASC|DESC]] [LIMIT n]. Operators: =, !=, contains, like (SQL-LIKE wildcard with *, escape with *). Special fields: file.name, file.path, file.mtime, file.tags. Other identifiers read frontmatter. No expressions, FLATTEN, GROUP BY, or joins — see docs/api.md for the unsupported set. |
| obsidian_get_unresolved_wikilinksA | Find every [[wikilink]] (and ![[embed]]) in the vault whose target does not resolve to a file. Useful as a vault-hygiene utility — broken links, typos, notes you intended to create. |
| obsidian_get_outbound_linksA | List every link this note points to — wikilinks and (optionally) embeds, with each one's resolution status. Symmetric counterpart to obsidian_get_backlinks. |
| obsidian_validate_note_proposalA | Lint a draft note BEFORE writing. Closes the #1 LLM-write pain: AI generates structurally-broken notes (bad YAML, fake wikilinks, inconsistent tags). This tool parses the proposed YAML, resolves every [[wikilink]] against the live vault (broken/resolved with did-you-mean), pre-classifies every tag (existing vs new), and checks for path/title collisions. Returns errors (blocking) + warnings (non-blocking) + per-link/tag diagnostics. Always available — does NOT require --enable-write. Recommended workflow: validate → fix → obsidian_create_note. |
| obsidian_find_similarA | Given a note, return up to N other notes that are 'related' — by tag overlap (Jaccard), title 3-gram overlap, shared outbound links, and co-backlinks. Score is a weighted sum of those four signals; each is also returned individually so the caller can re-rank. No embeddings, no native deps — pure structural retrieval over the existing vault graph. Runs O(N) over the whole vault per call; for vaults >5k notes prefer batching. v3.10: each result also carries |
| obsidian_get_note_neighborsA | Return a note's immediate graph neighborhood in one call: outbound wikilinks (resolved), inbound backlinks (with count), and tag-cluster siblings (notes sharing ≥1 tag, excluding outbound/inbound). Replaces the read_note → backlinks → outbound → resolve_wikilink chain with a single round-trip — designed for RAG-style 'give the LLM enough context to reason about THIS note'. |
| obsidian_statsA | Vault-wide summary: total notes, total bytes, average note length, recently-modified count (last 7 days), orphan notes (no inbound + no outbound), broken wikilink count, total tag count, and top-N tags by frequency. Cheap (one pass over the cached parse). Useful as the first call in a session so the LLM has structural context before issuing targeted reads. |
| obsidian_lint_wikiA | Comprehensive vault-hygiene check inspired by Karpathy's LLM-Wiki gist (gist.github.com/karpathy/442a6bf555914893e9891c11519de94f). Returns five buckets of findings in one call: orphans (no inbound + no outbound), broken wikilinks, stub pages (under N words), stale pages (frontmatter |
| obsidian_open_questionsA | Walks every note for lines matching deferred-thinking markers — |
| obsidian_paper_auditA | For each note tagged |
| obsidian_find_pathA | Multi-hop graph traversal: BFS from |
| obsidian_open_in_uiA | Returns an |
| obsidian_list_canvasesA | Lists |
| obsidian_get_communitiesA | v3.4.0 — Computes structural communities over the vault's wikilink graph via greedy modularity optimization (single-phase Louvain). Returns |
| obsidian_list_basesA | v3.2.0 — Lists |
| obsidian_read_baseA | v3.2.0 — Parses a |
| obsidian_query_baseA | v3.2.0 (extended in v3.5.0) — Runs a |
| obsidian_read_canvasA | Parses one |
| obsidian_list_pdfsA | Lists |
| obsidian_read_pdfA | Extracts plain text from one PDF, returning per-page text + a |
| obsidian_ocr_pdfA | Runs Tesseract OCR over each page of an image-only / scanned PDF, returning per-page text + per-page confidence + mean confidence + the same shape as |
| obsidian_hyde_searchA | v3.1.0 — HyDE retrieval (Gao et al 2023). Caller agent generates a synthetic answer to its own question, passes it as |
| obsidian_searchA | The default search tool for v2.0. Auto-detects every available retrieval signal — BM25 via FTS5 (if |
| obsidian_chat_thread_readA | Parse a note's |
| obsidian_context_packA | Given a question, retrieve the top relevant notes (via hybrid search), gather backlinks summaries + optionally recent dailies, deduplicate, pack to a token budget, return a single ready-to-paste markdown bundle. Saves the agent ~5 separate tool calls; produces a coherent context blob you can paste into any AI chat. |
| obsidian_frontmatter_getA | Return parsed YAML frontmatter for a note. With |
| obsidian_frontmatter_searchA | Find every note where frontmatter. matches a predicate. Useful as a precursor to bulk frontmatter_set: 'find all notes with status:draft and set their status to published'. Predicates are exclusive: pass exactly one of |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summarize_recent_edits | Use obsidian_get_recent_edits + obsidian_read_note to summarize what was worked on recently. |
| review_tag | Pull every note with a given tag and surface the open questions / unresolved threads. |
| find_orphans | Identify notes with no inbound links — candidates for archiving or wiring up. |
| weekly_review | Aggregate the last 7 days of vault edits and surface what shipped, what's open, what's stuck. |
| extract_todos | Surface every TODO / FIXME / QUESTION across the vault, grouped by note. |
| process_inbox | For every note in an inbox folder, propose where it should live and which existing notes link to it. |
| consolidate_tags | Surface near-duplicate or inconsistently-cased tags (#productivity vs #productive vs #Productivity) and propose unifications. |
| find_duplicates | Walk the vault for clusters of structurally similar notes (same tags, overlapping titles, shared backlinks) — candidates for merge. |
| lint_wiki | Run Karpathy's lint workflow over the vault — orchestrate obsidian_lint_wiki + obsidian_open_questions + obsidian_paper_audit, surface every actionable issue, propose fixes the agent can apply via the existing write tools after validate_note_proposal. Read-only — proposes only, never modifies. |
| monthly_review | 30-day version of `weekly_review` — aggregates a month of vault activity, identifies themes, and surfaces what stalled. |
| search_with_query_expansion | Higher-recall retrieval: paraphrase the query 3-5 ways, call obsidian_search per paraphrase, fuse results. Boosts recall on terse / ambiguous queries by 5-15 NDCG@10 over a single-pass search. Pure agent-side orchestration — no server-side LLM calls. |
| vault_synth | Karpathy LLM-Wiki ingest workflow: take raw source(s), extract entities/concepts/claims, decide which existing notes to update vs which new wiki pages to create, then propose drafts. The agent decides; this prompt sequences the calls. Cites every claim with the source location for trust. |
| vault_wiki_compile | The LLM-Wiki maintenance step: scan the vault for new/updated notes since last compile, regenerate the top-level `index.md` (table of contents + concept clusters) and append to `log.md` (a chronological compile-log). Run weekly or after a batch ingest. Idempotent. |
| vault_lint_extended | Beyond the structural lint of `obsidian_lint_wiki`: this prompt sequences a deeper inspection — contradictions across notes (semantic search for opposing claims), stale claims (notes with date references > 6mo old), missing cross-references (notes that mention an entity by name without `[[wikilinking]]` to its wiki page). |
| vault_capture | Mem.ai-style 'write don't organize' UX: the user pastes a thought; we file it intelligently. Auto-detect destination (today's daily note vs new wiki page vs append to most-relevant existing note via hybrid search) and propose a diff for user approval before writing. |
| vault_persona_search | Khoj-style agent persona pattern: scope retrieval to a folder + apply a persona-specific lens to the response. Useful when you want 'research-assistant' behavior over `Research/` distinct from 'editor' over `Drafts/`. Pure prompt template — orchestrates existing search tools with a fixed scope/instructions. |
| vault_automation_setup | Walks you through creating a cron'd vault query whose results land as a daily note or get appended to a digest. Bridges enquire-mcp tools + the host's `scheduled-tasks` MCP (or any cron tool the agent has access to). Pure orchestration — no server-side state. |
| vault_research | Multi-hop research workflow: break a complex question into 3-5 atomic sub-questions, retrieve per sub-question, synthesize a final answer with cited claims. Closes the gap to agentic-RAG patterns (sub-question decomposition + ReAct) without forcing the server to make LLM calls — the agent handles the decomposition. |
| vault_synthesis_page | Takes a topic the user already has scattered notes about and produces a single consolidated wiki page that cites every contributing note. Karpathy LLM-Wiki **synthesis** loop (vs `vault_synth` which is the *ingest* loop). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| vault-info | Root path, note count, write-enabled flag, and limits for the connected vault. |
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/oomkapwn/enquire-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server