Skip to content

Integration

The output of Reasons Forge is a reasons.db file — a self-contained SQLite database with all beliefs, justifications, and metadata. This file is the universal interchange format between Forge (production) and client tools (consumption).

A menu bar app that runs a Reasons MCP server. Download from reasonsforge.com.

  1. Build your knowledge base: reasonsforge code --repo ./project --output reasons.db
  2. Add it as a domain in ~/.reasons/domains.toml
  3. Reasons.app serves it via MCP to Claude Desktop, Claude Code, and other clients

Direct terminal access to any reasons database.

Terminal window
# Search
reasons --db reasons.db search "authentication"
# Show a specific belief
reasons --db reasons.db show auth-jwt-decision
# Explain why a belief is IN or OUT
reasons --db reasons.db explain auth-jwt-decision
# Visualize the dependency tree
reasons --db reasons.db tree auth-jwt-decision --direction both
# List high-impact beliefs
reasons --db reasons.db list --by-impact

Add the reasons MCP server to Claude Code:

Terminal window
claude mcp add --scope user reasons -- reasons mcp --db /path/to/reasons.db

Or use the CLI directly in Claude Code sessions — it’s faster (one Bash call vs multiple MCP round trips).

Drag the reasons-mcp.skill.md file into Claude Desktop to add the Reasons skill. Or configure the MCP server in claude_desktop_config.json:

{
"mcpServers": {
"reasons": {
"command": "reasons",
"args": ["mcp", "--db", "/path/to/reasons.db"]
}
}
}

Configure the reasons MCP server for Gemini CLI using MCP stdio transport.

The reasons MCP server supports both stdio and Streamable HTTP transports. Any MCP-compatible client can connect.

Stdio: reasons mcp --db /path/to/reasons.db

HTTP: Reasons.app runs on http://localhost:6519/mcp

It’s just a database file. Open it with any SQLite client:

Terminal window
sqlite3 reasons.db "SELECT node_id, text, status FROM beliefs WHERE status = 'IN' LIMIT 10"