Files
ra-h-os/apps/mcp-server-standalone
“BeeRad”andClaude Opus 4.6 7c6197fc0d fix: MCP servers — broken INSERT into dropped type column, stale content refs
The previous schema sync (86f43c9) was incomplete — it renamed variables
but left the SQL statements writing to `type` and `content` columns that
no longer exist in the schema. Fresh installs crash on first node create.

nodeService.js:
- Remove `type` from INSERT/UPDATE, replace with `event_date`
- Fix `content` → `notes` in INSERT values and UPDATE SET clauses
- Add `sanitizeTitle()` and chunk fallback logic

sqlite-client.js:
- Remove `is_pinned` from CREATE TABLE
- Add `description` and `icon` to dimensions table

index.js:
- Add temporal filter fields to search schema
- Improved description prompts
- Dynamic date injection in instructions

server.js + stdio-server.js:
- Add content→notes mapping in update handlers
- Fix output returning `notes` instead of `content`
- Add extraction tool schemas and handlers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:16:51 +11:00
..

RA-H MCP Server

Connect Claude Code and Claude Desktop to your RA-H knowledge base. Direct SQLite access - works without the RA-H app running.

Install

npx ra-h-mcp-server

That's it. No manual setup required.

Configure Claude Code / Claude Desktop

Add to your Claude config (~/.claude.json or Claude Desktop settings):

{
  "mcpServers": {
    "ra-h": {
      "command": "npx",
      "args": ["ra-h-mcp-server"]
    }
  }
}

Restart Claude. Done.

Requirements

  • Node.js 18+
  • Database is created automatically at ~/Library/Application Support/RA-H/db/rah.sqlite on first connection

Environment Variables

Variable Default Description
RAH_DB_PATH ~/Library/Application Support/RA-H/db/rah.sqlite Database path

What to Expect

Once connected, Claude will:

  • Call rah_get_context first to orient itself (stats, hub nodes, dimensions, guides)
  • Proactively capture knowledge — when a new insight, decision, person, or reference surfaces, it proposes a specific node (title, dimensions, description) so you can approve with minimal friction
  • Read guides for complex tasks — system guides (immutable) teach it how your graph works; custom guides teach it your workflows
  • Search before creating to avoid duplicates

Available Tools

Tool Description
rah_get_context Get graph overview — stats, hub nodes, dimensions, recent activity
rah_add_node Create a new node
rah_search_nodes Search nodes by keyword
rah_get_nodes Load nodes by ID (includes chunk + metadata)
rah_update_node Update an existing node
rah_create_edge Create connection between nodes
rah_update_edge Update an edge explanation
rah_query_edges Find edges for a node
rah_list_dimensions List all dimensions
rah_create_dimension Create a dimension
rah_update_dimension Update/rename a dimension
rah_delete_dimension Delete a dimension
rah_list_guides List available guides (system + custom)
rah_read_guide Read a guide by name
rah_write_guide Create or update a custom guide
rah_delete_guide Delete a custom guide
rah_search_content Search through source content (transcripts, books, articles)
rah_sqlite_query Execute read-only SQL queries (SELECT/WITH/PRAGMA)

Guides

Guides are detailed instruction sets that teach Claude how to work with your knowledge base. System guides (schema, creating-nodes, edges, dimensions, extract) are bundled and immutable. You can create up to 10 custom guides for your own workflows.

Guides are stored at ~/Library/Application Support/RA-H/guides/ and shared with the main app.

What's NOT Included

This is a lightweight CRUD server. Advanced features are handled by the main app:

  • Embedding generation
  • AI-powered edge inference
  • Content extraction (URL, YouTube, PDF)
  • Real-time SSE events

Testing

# Test database connection
node -e "const {initDatabase,query}=require('./services/sqlite-client');initDatabase();console.log(query('SELECT COUNT(*) as c FROM nodes')[0].c,'nodes')"

# Run the server
node index.js