lifeos-mcp
Provides MCP-compatible AI agents with read access to a LifeOS knowledge base, exposing identity, preferences, projects, wiki, skills, and rules via tools and resources.
README
LifeOS MCP
Give any AI agent read access to your LifeOS knowledge base — Claude Desktop, Claude Code, Cursor, ChatGPT, Codex, or any MCP-compatible client.
The server reads from ~/lifeos/ and surfaces everything through lifeos:// resource URIs and lifeos__* tool names.
Install
Once published (coming soon)
npx lifeos-mcp
From source (now)
git clone https://github.com/bwats/lifeos-mcp
cd lifeos-mcp
npm install && npm run build
node bin/lifeos-mcp.js
Global install from source
cd ~/lifeos-mcp
npm install -g .
lifeos-mcp # starts the MCP server on stdio
What it exposes
lifeos-mcp gives any MCP-compatible AI client direct read access to:
| Surface | Path in ~/lifeos/ | Tool |
|---|---|---|
| Identity | identity.md |
lifeos__get_identity |
| Preferences | preferences.md |
lifeos__get_preferences |
| Skills | skills/*/ |
lifeos__list_skills, lifeos__read_skill |
| Projects | projects/*.md |
lifeos__list_projects, lifeos__read_project |
| Wiki | wiki/pages/**/*.md |
lifeos__list_wiki_pages, lifeos__read_wiki_page |
| Rules | system/*.md |
lifeos__list_rules, lifeos__read_rule |
| Any file | (path-safe) | lifeos__read_file |
| Search | (full-text) | lifeos__search |
Modes
| Invocation | What happens |
|---|---|
lifeos-mcp |
Start MCP server on stdio (default) |
lifeos-mcp --stdio |
Start MCP server on stdio (explicit) |
lifeos-mcp list |
List rituals in ~/lifeos/cadence/rituals/ |
lifeos-mcp validate <ritual.md> |
Validate a ritual spec file |
lifeos-mcp render <ritual.md> --to <harness> |
Render ritual to a target harness |
lifeos-mcp --help |
Show all subcommands and options |
Configure MCP clients
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"lifeos": {
"command": "npx",
"args": ["lifeos-mcp"]
}
}
}
Or from source:
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": ["/Users/yourname/lifeos-mcp/bin/lifeos-mcp.js"]
}
}
}
Cursor (settings.json)
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": ["/Users/yourname/lifeos-mcp/bin/lifeos-mcp.js"]
}
}
}
Claude Code (~/.claude/settings.json)
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": ["/Users/yourname/lifeos-mcp/bin/lifeos-mcp.js"]
}
}
}
OpenAI Codex (codex.json)
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": ["/Users/yourname/lifeos-mcp/bin/lifeos-mcp.js"]
}
}
}
Custom LifeOS path
Pass --lifeos-path or set LIFEOS_PATH env var:
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": [
"/Users/yourname/lifeos-mcp/bin/lifeos-mcp.js",
"--lifeos-path", "/custom/path/to/lifeos"
]
}
}
}
Environment variables
| Variable | Default | Description |
|---|---|---|
LIFEOS_PATH |
~/lifeos |
Absolute path to the LifeOS root directory |
Tools
| Tool | Description |
|---|---|
lifeos__health |
Check server health and LifeOS availability |
lifeos__get_identity |
Read identity.md — frontmatter + body |
lifeos__get_preferences |
Read preferences.md — frontmatter + body |
lifeos__list_skills |
List all skill directory names in ~/lifeos/skills/ |
lifeos__read_skill |
Read documentation for a named skill |
lifeos__list_rules |
List rule/guideline names from ~/lifeos/system/ |
lifeos__read_rule |
Read a specific rule file |
lifeos__list_projects |
List project filenames from ~/lifeos/projects/ |
lifeos__read_project |
Read a specific project definition |
lifeos__list_wiki_pages |
List all wiki page paths recursively |
lifeos__read_wiki_page |
Read a wiki page by path |
lifeos__search |
Full-text search across all LifeOS files |
lifeos__read_file |
Read any file under ~/lifeos/ by relative path (path-traversal safe) |
lifeos__propose_edge |
Propose a typed semantic edge between two knowledge nodes |
lifeos__accept_edge |
Accept a proposed edge (write-opt-in required) |
lifeos__reject_edge |
Reject a proposed edge (write-opt-in required) |
lifeos__read_pending_queue |
List pending edge proposals (always read-only) |
Resources
| URI | Description |
|---|---|
lifeos://identity |
LifeOS identity profile (identity.md) |
lifeos://preferences |
User preferences (preferences.md) |
lifeos://skills/{name} |
Skill documentation for ~/lifeos/skills/{name}/ |
lifeos://projects/{name} |
Project definition for ~/lifeos/projects/{name}.md |
lifeos://wiki/{+path} |
Wiki page at ~/lifeos/wiki/pages/{path}.md |
lifeos://rules/{name} |
System rule at ~/lifeos/system/{name}.md |
All template resources support listing — clients can enumerate available resources.
CLI subcommands
# List all rituals with id, title, and trigger summary
lifeos-mcp list
# Validate a ritual spec (structural check)
lifeos-mcp validate ~/lifeos/cadence/rituals/morning-review.md
# Render a ritual to a harness
lifeos-mcp render ~/lifeos/cadence/rituals/morning-review.md --to openclaw
lifeos-mcp render ~/lifeos/cadence/rituals/morning-review.md --to claude-code
Renderer interface (pluggable)
Third-party renderers plug in at runtime via registerRenderer:
import { registerRenderer } from "lifeos-mcp/dist/renderers/index.js";
registerRenderer({
name: "my-harness",
async render(spec, body, ctx) {
return {
files: [{ path: "/out/job.json", content: JSON.stringify(spec) }],
summary: `Rendered ${spec.id} to my-harness`,
};
},
});
Built-in renderers: openclaw (cron job JSON), claude-code (slash command + launchd plist).
Security
- All file paths are validated to stay within the LifeOS root — no path traversal possible.
- The server is read-only by default; write tools (
lifeos__propose_edge,lifeos__accept_edge,lifeos__reject_edge) require explicit opt-in via~/Library/Application Support/LifeOS/mcp-write-config.json. - Only files under
~/lifeos/(orLIFEOS_PATH) are accessible.
Build
cd ~/lifeos-mcp
npm install
npm run build
# Output: dist/ + bin/lifeos-mcp.js
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.