Outline Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Outline Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Tree-structured knowledge base as an MCP server.
LLM sessions are ephemeral. outline-mcp gives them a persistent, editable knowledge tree — sections and content nodes that can be browsed (toc), annotated with properties, and evolved across sessions. Nodes with inject=true are automatically included in session context.
cargo install --path .~/.claude.json)#### Native binary (after cargo install)
{
"mcpServers": {
"outline": {
"command": "outline-mcp",
"args": ["/path/to/your-book.json"]
}
}
}#### Docker (no Rust toolchain required)
{
"mcpServers": {
"outline": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/data:/data",
"ghcr.io/ynishi/outline-mcp:latest",
"/data/your-book.json"
]
}
}
}If the path argument is omitted, defaults to outline-book.json in the current directory.
shelf → select_book → toc → node_create / node_update / node_move
node_batch_move / node_batch_update / node_query
checklist / import / init / gen_routing
snapshot_create / snapshot_list / snapshot_restore
node_history / dumpproperties)1, 2-3). Supports filter by propertiesinject=true property have their body auto-appended (draft nodes excluded)active/draft) of a nodeactive/draft), or type (section/content); optionally include body in resultsrouting property across all bookstoc assigns human-friendly numbered IDs:
1. Coding Standards
1-1. Naming Conventions
1-2. Error Handling
2. Testing
2-1. Unit Tests
2-2. Integration TestsThese IDs (1, 1-2, 2-1, etc.) work in most tools. Full UUIDs and title substring matching are also supported as fallbacks.
Note:node_batch_moveandnode_batch_updaterequire UUID or UUID-prefix IDs. Hierarchical toc IDs are intentionally rejected to prevent positional drift when the tree is modified mid-batch.
Nodes can have key-value properties for metadata:
node_create title="My Rule" properties={"inject": "true", "scope": "rust"}select_book output (context injection)gen_routing output. Use | to assign multiple scenes (e.g. routing="testing|TDD")§ID Title reference in the routing table (e.g. routing_ref="select_book で全体参照")"true" appear as tags in toc: 1. My Rule [inject]toc supports filtering: filter={"inject": "true"} shows only matching nodessrc/
├── domain/ # Core model (TemplateBook, TemplateNode, NodeId)
│ ├── model/ # Aggregate root + value objects
│ ├── error.rs # Domain errors
│ └── repository.rs # BookRepository trait
├── application/ # Use cases
│ ├── service.rs # BookService (CRUD)
│ └── eject.rs # EjectService (Markdown/JSON export & import)
├── infra/ # Persistence
│ └── json_store.rs # JSON file repository (atomic write)
└── interface/ # Transport
└── mcp.rs # MCP server (rmcp, stdio)# My Runbook
## Design
- [ ] Define requirements
> requirements list: ___
- [ ] API design
REST endpointsTree-structured format that can be re-imported:
{
"title": "My Runbook",
"max_depth": 4,
"nodes": [
{
"title": "Design",
"node_type": "section",
"children": [...]
}
]
}Licensed under either of
at your option.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.