Odel
memxus remote mcp

memxus remote mcp

@gpitrellaCommunication1TypeScriptMITUpdated 1w ago

Multi-platform AI memory for individuals, groups and teams. One save, recall everywhere.

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

AI Memory Logo

AI Memory Remote MCP Server

OAuth 2.1 + PKCE remote MCP server for Claude Connectors. Streamable HTTP transport; proxies memory tools to Supabase.

Environment

Copy .env.example to .env and set:

  • MCP_PUBLIC_URL — public URL of this server (no trailing slash)
  • DASHBOARD_URL — Dash-AIMemory URL for login redirect
  • SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY
  • OAUTH_CLIENT_ID, ALLOWED_REDIRECT_URIS, CORS_ORIGINS
  • Optional: OPENAI_API_KEY for vector search

Run supabase/migration.sql after the dashboard migration.

Scripts

npm install
npm run dev      # tsx watch
npm run build    # tsc → dist/
npm start        # node dist/index.js
npm run lint
npm run typecheck

Railway deploy

Guía completa: STEP_BY_STEP.md §6.

  • Variables en Railway → Settings → Variables (no subir .env).
  • MCP_PUBLIC_URL = URL pública del servicio (Networking), sin /mcp.
  • Health check: /health (railway.toml).
  • Node 20 on Railway: Supabase Realtime needs the ws package (configured in src/lib/supabase.ts). Optional: RAILPACK_NODE_VERSION=22 for native WebSocket.
npx skills add railwayapp/railway-skills --skill deploy
npx skills add railwayapp/railway-skills --skill environment

OAuth flow

  1. Client reads /.well-known/oauth-authorization-server
  2. GET /oauth/authorize → pending ticket → redirect to dashboard /api/oauth/mcp/authorize
  3. User signs in (Google); dashboard sets user_id + code_hash on ticket
  4. POST /oauth/token with PKCE → issues aimem_* bearer token (stored in api_keys)
  5. POST /mcp with Authorization: Bearer aimem_...

POST /oauth/register implements Dynamic Client Registration (returns 201 with client_id).

Releases

  1. Add entries under ## [Unreleased] in CHANGELOG.md.
  2. Bump version in package.json, server.json, and src/mcp/server.ts when needed.
  3. Move the changelog section to ## [X.Y.Z] - YYYY-MM-DD, commit, tag, and push:
git tag -a vX.Y.Z -m "Memxus MCP vX.Y.Z"
git push origin vX.Y.Z

Pushing a v* tag runs .github/workflows/release.yml (quality gate + GitHub Release with server.json attached).

Production endpoint: https://mcp.memxus.com/mcp — see REVIEWER.md for OAuth and Bearer setup.

Deferred

npm publish, MCP Registry submit, Connectors Directory listing, refresh tokens, multi-client OAuth UX.