Loading...
Loading...
Deploy a Relay MCP server to the user's own Railway account, giving Claude read/write access to their Obsidian vault via the Relay.md sync protocol. Bundled source ships inside the skill — no separate repo clone needed. The user only pastes a Railway account token; the relay vault and folders inside it are auto-discovered after they OAuth in. Use when the user wants to "set up the os MCP", "deploy relay MCP to railway", "self-host the obsidian MCP server", or "give Claude access to my Obsidian vault".
npx skill4agent add monkkim/secondbrain-suite os-mcp${CLAUDE_PLUGIN_ROOT}/skills/os-mcp/reference/relay-mcp-server/https://railway.com/account/tokens| Var | Source | Value |
|---|---|---|
| preset | |
| preset | |
| preset | |
| preset | |
| preset | |
| auto-generated | |
| auto-generated | |
| preset | blank (any authenticated Relay.md user) |
| preset | blank (OAuth-only; no static fallback) |
| not set | auto-discovered at runtime per user |
| derived | from |
STATIC_MCP_BEARERvault_relaysRELAY_IDrailway variablesrailway --versionbrew install railwaynpm i -g @railway/cliOpen, click Create Token, name ithttps://railway.com/account/tokens, copy the value, and paste it here.os-mcp-deploy
export RAILWAY_API_TOKEN="<paste>"
railway whoamirailway whoamicd "${CLAUDE_PLUGIN_ROOT}/skills/os-mcp/reference/relay-mcp-server"
# Create a new Railway project (interactive — let user pick name)
railway init
# Persistent volume for clients.json + sessions.enc
railway volume add --mount-path /data
# Upload source, build via Dockerfile, deploy
railway uprailway logsJWT_SECRET=$(openssl rand -hex 32)
STATIC_MCP_BEARER=$(openssl rand -hex 24)RELAY_IDrailway variables \
--set "RELAY_API_URL=https://api.system3.md" \
--set "PB_AUTH_URL=https://auth.system3.md" \
--set "PB_COLLECTION=users" \
--set "DATA_DIR=/data" \
--set "PORT=3000" \
--set "JWT_SECRET=$JWT_SECRET" \
--set "STATIC_MCP_BEARER=$STATIC_MCP_BEARER"--setrailway domain # assigns + prints public domainrailway variables --set "PUBLIC_URL=https://<the-domain>"
railway up # final redeploy so OAuth issuer/audience matchcurl https://<the-domain>/health200 OK{"status":"ok","version":"2.0.0",...}claude mcp add --transport http vault https://<the-domain>/mcphttps://<the-domain>/mcpSTATIC_MCP_BEARER<value>vault_relays*vault_foldersrailway variables --set "RELAY_ID=<the-vault-guid-from-vault_relays>"railway whoamipackage.jsontsconfig.json${CLAUDE_PLUGIN_ROOT}/skills/os-mcp/reference/relay-mcp-server//healthrailway logsassertRequiredConfigvault_relaysvault_foldersvault_relaysshared_foldersvault_relaysPUBLIC_URLrailway variables --set "ALLOWED_EMAILS=email1@x.com,email2@x.com"railway down