Settle into your library.
Connect your private library, save straight from your browser, and bring your collection into conversations with Claude or ChatGPT.
Connect your private library
CaptureMem needs a dedicated Supabase project and a Next.js deployment. The project’s README.md, .env.example, and docs/worker.md contain the full operational instructions.
- Apply the SQL migrations from
supabase/migrations/in filename order. Keep the email authentication provider enabled, disable public signup, and invite your owner account. - Set the deployment environment variables below. Only the publishable key belongs in a public variable; the server key stays on the server.
- Set the Supabase Auth Site URL and callback allow-list to your app’s HTTPS origin and
/auth/callback. - Install the database schedule in
docs/worker.md. It calls/api/jobswith the worker secret so saved links are enriched and organized after capture. - Redeploy, sign in, and save a link. Verify it appears immediately and its metadata becomes ready after a worker run.
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your-public-key SUPABASE_SECRET_KEY=your-server-only-key APP_URL=https://capturemem.com CRON_SECRET=your-random-secret-at-least-32-bytes
GITHUB_TOKEN is optional and increases the public API rate limit. OPENAI_API_KEY enables model-generated summaries; source-based summaries and automatic filing work without it.
For local development, follow the README and run npm run worker alongside npm run dev. A hosted app must be reachable by the worker, Shortcuts, and MCP clients; deployment protection may need configuration.
Save from iPhone & Mac
The Apple-signed Save to Library Shortcut accepts URLs and shared text. It saves without asking you to choose folders or tags.
- In CaptureMem, open Settings & connections. Create a Capture only credential with a device name such as “iPhone Shortcut”. Copy it when shown.
- Download the Shortcut below and open it in Apple Shortcuts. Select Add Shortcut. The import questions ask for your HTTPS capture URL (
https://capturemem.com/api/capture) and credential. - If your Shortcuts version skips the questions, edit the first two Text actions after the opening comment: endpoint first, credential second.
- In Chrome on iPhone, open a page, choose Share → Save to Library, and allow network access when asked. If it is missing, check Show in Share Sheet in Shortcuts and enable URL and Text input.
- On Mac, install the same Shortcut and enable its Share sheet / Services entry in Shortcuts Details. The native Share menu depends on the app. Use the extension below for a direct Chrome save button.
What a successful save means
Saved to CaptureMem or Already saved appears only after the database confirms persistence. Metadata and folder assignments arrive afterward. If a server or network error appears, share the page again to retry; repeated saves are deduplicated.
The credential stays in your private Shortcut and may sync through your Apple account. Keep an export containing your credential private. Revoke a lost device’s credential in Settings.
Save from Chrome on desktop
- Download the ZIP below and extract it.
- Open
chrome://extensions, enable Developer mode, choose Load unpacked, and select the extracted folder containingmanifest.json. - Open the extension’s Connection settings, enter your CaptureMem site address and a capture-only credential, and approve access to your site.
- Pin the extension. Click it on a page and select Save to Library, or press ⌘ ⇧ S on Mac / Ctrl Shift S elsewhere. Configure conflicts at
chrome://extensions/shortcuts.
A successful toolbar badge or confirmation means persistence completed. A red ! indicates failure; reopen the popup and choose Retry last failed save. The extension remembers the failed URL locally.
The extension reads the current page URL after your save action. It requests access only to your configured CaptureMem origin, stores credentials locally, and does not inject page content. This release is installed unpacked and has not been published to the Chrome Web Store.
Ask your library with MCP
Use your deployed HTTPS URL followed by /api/mcp as the remote MCP server. Set the deployment’s APP_URL to that exact origin. Localhost cannot be reached by account-based Claude or ChatGPT connections.
https://capturemem.com/api/mcp
Claude
Open Customize → Connectors → + → Add custom connector. Enter “CaptureMem” and your MCP URL, then complete OAuth by signing in to CaptureMem and approving read access. Team or Enterprise administrators may need to allow the connector first.
As checked September 8, 2026, Anthropic lists remote custom connectors on Free, Pro, Max, Team, and Enterprise plans; Free has a one-custom-connector limit. See Anthropic’s connection requirements.
ChatGPT
Where your account or workspace permits it, enable developer mode and create a custom MCP app from Settings → Apps. Workspace administrators may use Workspace settings → Apps → Create. Enter the MCP URL, choose OAuth, approve access in CaptureMem, and scan the available tools.
As checked September 8, 2026, OpenAI documents full developer-mode MCP on ChatGPT web for Business and Enterprise/Edu with workspace controls, plus read/fetch custom MCP connectivity for Pro in developer mode. Availability may change. Check OpenAI’s current MCP requirements.
Access and useful questions
OAuth requests library:read and may request offline_access for renewable access. Access tokens last one hour; rotating refresh tokens last 30 days. Revoke the “MCP: client name” credential in Settings to stop both. Your notes are part of read access.
Ask: “Find the document-processing repos I saved and show their licenses.” Tools can search, filter, discover folders and tags, and retrieve individual items with notes, source URLs, README content, and freshness timestamps.
CaptureMem supports public OAuth clients with dynamic registration and PKCE S256. It does not support confidential client secrets or URL-based Client ID Metadata Documents. A client that requires these needs a compatible public PKCE configuration. For local tools supporting manual headers, a Read library credential can be used; capture credentials cannot read the library.