knowledge-to-action-mcp is an MCP server for people whose real project context lives in notes, decisions, roadmaps, and meeting docs, not just code. Most Obsidian MCP servers stop at "read a note" or "search a vault." This one goes further: That means an MCP client can move from: If you work out of Obsidian, your important context is usually spread across: - roadmap notes - meeting notes - decisio
Add this skill
npx mdskills install tac0de/knowledge-to-action-mcpGraph-aware Obsidian integration that transforms notes into structured context packets and actionable plans
Turn Obsidian notes into agent-ready context, preview-only plans, and safe repo handoffs.
![]()
knowledge-to-action-mcp is an MCP server for people whose real project context lives in notes, decisions, roadmaps, and meeting docs, not just code.
Most Obsidian MCP servers stop at "read a note" or "search a vault."
This one goes further:
notes -> retrieval -> context packet -> action plan -> repo handoff
That means an MCP client can move from:
"open this markdown file"
to:
"understand the note, pull nearby context, summarize risks,
propose next steps, and show which repo files probably matter"
If you work out of Obsidian, your important context is usually spread across:
Normal note integrations make an agent read those files.
knowledge-to-action-mcp helps an agent recover the surrounding context and turn it into something actionable without exposing a general shell runner.
| Capability | Typical vault MCP | knowledge-to-action-mcp |
|---|---|---|
| Read notes | Yes | Yes |
| Search notes | Yes | Yes |
| Follow links / backlinks | Sometimes | Yes |
| Graph-aware context recovery | Rarely | Yes |
| Optional embeddings | Rarely | Yes |
| Agent-ready context packet | No | Yes |
| Preview-only plan from note | No | Yes |
| Note-to-repo handoff | No | Yes |
| General shell access | Sometimes | No |
Install:
npm install @tac0de/knowledge-to-action-mcp
Run in graph-only mode:
OBSIDIAN_VAULT_ROOT="/path/to/vault" \
npx @tac0de/knowledge-to-action-mcp
Turn on optional embeddings and planning:
OBSIDIAN_VAULT_ROOT="/path/to/vault" \
EMBEDDINGS_ENABLED=true \
PLANNING_ENABLED=true \
OPENAI_API_KEY="..." \
npx @tac0de/knowledge-to-action-mcp
Then call:
context.retrievecontext.bundle_for_agentaction.plan_from_noteaction.handoff_to_repoSee also:
examples/sample-vault/examples/sample-output/examples/claude-desktop-config.jsonexamples/vscode-mcp.jsonexamples/cursor-mcp.jsonWhen embeddings are enabled, retrieval becomes:
lexical + graph + semantic rerank
No external graph database is required.
context.bundle_for_agent returns a structured packet instead of dumping raw markdown into a prompt.
That packet includes:
action.plan_from_note turns a note into:
It does not mutate files.
action.handoff_to_repo connects note context to a workspace using:
This is intentionally not a general-purpose shell runner.
Imagine you have these notes:
roadmap/search.mdmeetings/2026-03-07-search-review.mddecisions/search-scope.mdAnd a repo with:
src/search.tssrc/features/search/index.tsThis MCP can help an agent:
That jump from "read notes" to "prepare action safely" is the whole point.
If you want something concrete before wiring your own vault:
examples/sample-vault/context.bundle_for_agent output lives in examples/sample-output/context.bundle_for_agent.jsonaction.plan_from_note output lives in examples/sample-output/action.plan_from_note.jsonexamples/claude-desktop-config.jsonvault.list_notesvault.read_notevault.search_notesvault.get_metadatagraph.buildgraph.get_neighborsgraph.get_backlinkscontext.gatherembeddings.index_vaultcontext.retrievecontext.bundle_for_agentaction.plan_from_noteaction.handoff_to_repoexec.list_capabilitiesexec.rg_searchexec.list_direxec.git_statuscontext.bundle_for_agent:
{
"brief": "Implement search using the existing dashboard flow.",
"source": "roadmap/search.md",
"keyFacts": [
"Title: Search",
"Tags: roadmap,search"
],
"openQuestions": [
"Where is the current search entrypoint?"
],
"risks": [
"Assumption: repo layout may differ from note context"
],
"repoHints": {
"matchedFiles": [
"src/search.ts",
"src/features/search/index.ts"
],
"suggestedQueries": [
"Search",
"search"
]
}
}
action.plan_from_note:
{
"source": "roadmap/search.md",
"summary": "Implement search using the existing dashboard flow.",
"goals": [
"Ship dashboard search"
],
"constraints": [
"No mutation without explicit approval"
],
"openQuestions": [
"Where is the current search entrypoint?"
],
"suggestedActions": [
"Review matched repo files",
"Resolve open questions before implementation"
],
"generationMode": "deterministic"
}
OBSIDIAN_VAULT_ROOTEMBEDDINGS_ENABLED=falseEMBEDDING_PROVIDER=openaiEMBEDDING_MODEL=text-embedding-3-smallEMBEDDING_SQLITE_PATH=.knowledge-to-action-mcp/index.sqliteOPENAI_API_KEY=...PLANNING_ENABLED=falsePLANNING_PROVIDER=openaiPLANNING_MODEL=gpt-4.1-miniEXECUTION_ENABLED=falseEXECUTION_CAPABILITIES=workspace.search,workspace.inspect,workspace.git_statusEXECUTION_TIMEOUT_MS=5000EXECUTION_MAX_OUTPUT_BYTES=32768Example stdio config:
{
"command": "npx",
"args": ["-y", "@tac0de/knowledge-to-action-mcp"],
"env": {
"OBSIDIAN_VAULT_ROOT": "/path/to/vault"
}
}
Add to .vscode/mcp.json:
{
"servers": {
"knowledge-to-action": {
"command": "npx",
"args": ["-y", "@tac0de/knowledge-to-action-mcp"],
"env": {
"OBSIDIAN_VAULT_ROOT": "/path/to/vault"
}
}
}
}
Add to .cursor/mcp.json:
{
"mcpServers": {
"knowledge-to-action": {
"command": "npx",
"args": ["-y", "@tac0de/knowledge-to-action-mcp"],
"env": {
"OBSIDIAN_VAULT_ROOT": "/path/to/vault"
}
}
}
}
This package is designed to be useful without turning into a local shell bomb.
bash.exec or arbitrary command tool is exposedUse this project if you want:
@tac0de/knowledge-to-action-mcpobsidian-mcpv2.1.1 is usable now:
The project is still early, but the main workflow is already working.
MIT
Install via CLI
npx mdskills install tac0de/knowledge-to-action-mcpKnowledge-to-Action MCP is a free, open-source AI agent skill. knowledge-to-action-mcp is an MCP server for people whose real project context lives in notes, decisions, roadmaps, and meeting docs, not just code. Most Obsidian MCP servers stop at "read a note" or "search a vault." This one goes further: That means an MCP client can move from: If you work out of Obsidian, your important context is usually spread across: - roadmap notes - meeting notes - decisio
Install Knowledge-to-Action MCP with a single command:
npx mdskills install tac0de/knowledge-to-action-mcpThis downloads the skill files into your project and your AI agent picks them up automatically.
Knowledge-to-Action MCP works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.