@lifeascode/mcp
v2.0.0
Published
MCP server for Life-as-Code v2 — Claude-native node lifecycle tools
Readme
@lifeascode/mcp
MCP server for Life-as-Code v2. Gives Claude Code full node lifecycle awareness — create, fill, advance, search, and graph-build without leaving the conversation.
Setup
Claude Code (claude_desktop_config.json or .claude/mcp.json)
{
"mcpServers": {
"lac": {
"command": "npx",
"args": ["@lifeascode/mcp", "/absolute/path/to/your/project"]
}
}
}Or if installed globally:
{
"mcpServers": {
"lac": {
"command": "lac-mcp",
"args": ["/absolute/path/to/your/project"]
}
}
}The first argument is the workspace root — where lac.config.json lives.
Tools
Orientation
get_node_status(id)— completeness, missing fields, suggested next action. Call this first.summarize_workspace()— counts, active work, blocked nodes, avg completenessroadmap_view()— all nodes sorted by priority, filterable by status/type/domain
Node lifecycle
create_node(type, title, domain)— scaffold a new node in the right folderread_node_context(id)— full node + all linked nodeswrite_node_fields(id, fields)— write dot-path field updates, respects locksadvance_node(id, status)— validate requirements + transition statusfill_node(id)— identify gaps and build a fill prompt for Claude
Graph
build_graph()— regenerate.lac/graph.json,index.json,DOMAINS.mdsearch_nodes(query)— full-text search across configured fieldsget_lineage(id)— parent, children, blockedBy, enables, supersedes
Analysis
audit_decisions()— all decision nodes with choicesblame_file(file)— which node owns a file viaviews.dev.componentFilecross_node_impact(file)— all nodes that reference a filenode_similarity(title)— check for duplicate nodes before creatingsuggest_split(id)— detect over-scoped nodesnode_changelog(id)— statusHistory as a readable timeline
Management
spawn_child_node(parent_id, type, title)— create a child + update parentlock_node_fields(id, fields)— protect fields from AI overwritenode_summary_for_pr(id)— generate a PR description from a node
Typical Claude session flow
1. summarize_workspace() → understand the project state
2. get_node_status("feat-001") → orient on a specific node
3. fill_node("feat-001") → see what's missing
4. write_node_fields(...) → fill the gaps
5. advance_node("feat-001", "active") → transition when ready
6. build_graph() → regenerate artifacts