Skip to main content
Use the hosted Memex MCP server when your agent runtime supports the Model Context Protocol. Server URL: https://memex.garden/api/mcp Use the same base URL for both OAuth and API-key clients. Do not point clients at /oauth/* directly unless the client explicitly asks for issuer metadata.

Before your first call

  1. Get credentials from Authentication.
  2. Fetch the latest parameter catalog from Available endpoints.
  3. Parse responses using Response shape.
  4. If credits run out, follow Buy credits.

Checkout

  1. Fetch the plan catalog from POST https://memex.garden/api/get-available-plans.
  2. Ask the human which plan they want.
  3. For one-time plans, obtain a Stripe Shared Payment Token from the runtime payment harness.
  4. Call POST https://memex.garden/api/checkout with the user’s Memex bearer token and the token.
  5. For subscription plans, send the user to https://memex.garden/pricing.

Available tools

  • discover_actions
  • execute_action
  • search_content
  • save_content_by_url
  • list_subscribed_feeds
  • create_sharing_link
  • list_sharing_links
  • list_handoffs
  • drain_handoff
  • ensure_tag_on_contents
Use discover_actions then execute_action for all new integrations. Discovery returns the small set of permitted, relevant action IDs with their current input summaries, effect, and approval requirements; every returned MCP action card names execute_action. Execution takes the chosen actionId and its input object. The other named tools below are compatibility aliases and are never returned by discovery; see the Action catalog. This inventory is registered from the shared action catalogue. Tool identity, descriptions, schemas, ordering, and required scopes must be changed there rather than in the MCP server bootstrap. REST clients can use the equivalent POST /actions/discover endpoint. These wrap the Memex operations documented on Available endpoints. REST-only operations are also documented in Available endpoints. For example, use authenticated REST calls to POST /list-auto-tagging-rules and POST /create-auto-tagging-rule when a client needs to read or create auto-tagging rules. For search_content specifically:
  • pass responseMode: "lightweight" for discovery cards: each result has transport-only contentEntityId and url, plus a type-specific semantic context object. URLs and IDs are not intended for model context.
  • pass responseMode: "compact" for the existing LLM-ready source response, or responseMode: "full" for the rich raw payload. responseMode takes precedence over the legacy raw boolean.
  • omit raw or pass raw: false to get the default compact response array with type, url, createdAt, title?, text, and optional slim media
  • pass raw: true to get the richer machine-readable payload with results, referencesByResultId, and related entity lists
  • if the client asks for llm or full, use llm for raw: false and full for raw: true
  • compact raw: false search defaults reranking on when the query is eligible for rerank
  • raw raw: true search defaults reranking off unless you set enableRerank: true
  • contentTypes accepts a list of exact content_entity.type values: web, pdf, youtube, twitter, instagram, tiktok, facebook, linkedin, pinterest, reddit, chatgpt, claude, annotation, image, transcribedMedia, audioRecording, selector, chatThread, twitterProfile, subreddit, youtubeChannel
  • to search inside private saved views from MCP or Claude, pass viewIds with one or more view IDs
  • to search specific feeds, pass feedIds using IDs returned by list_subscribed_feeds
  • to search across all subscribed feeds only, pass feedScope: "all"
  • omit both feedIds and feedScope to search the full library
  • pass feedReadStates: ["unread", "read","pending" \| "processing" \| "processed" \| "failed" \| "archived"] when archived feed entries should be included
For saved views:
  • use search_content with viewIds when an MCP or Claude client needs to search inside a private saved view
  • use raw: false or omit raw for the llm response option
  • use raw: true for the full response option
  • use authenticated REST POST /create-view and POST /list-views to create or list saved views
  • use authenticated or public-token REST POST /execute-view-search only when the full/raw shape is acceptable or when searching a public shared view token
For list_subscribed_feeds, call with an empty argument object. The response returns feeds, the authenticated user’s subscribed RSS and YouTube feed list. For list_handoffs:
  • omit status to list pending/unprocessed handoffs, including items that are not ready for webhook delivery
  • pass status: "processing", "processed", "failed", or "archived" only when the user asks beyond pending handoffs
  • use referenceContentEntityId to filter to handoffs that reference a specific Memex content entity
  • use createdAtFrom and createdAtTo for arbitrary ISO timestamp ranges, or day for a single YYYY-MM-DD day
  • use requestedDestinationText to filter to a target app, agent, or person
  • the response includes handoffs; these are operational queue records, not content entities
  • execute the discovered handoff-draining action only after an agent actually processed a pulled handoff
For create_sharing_link:
  • pass a saved contentId returned by search_content or save_content_by_url
  • set access to view for read-only sharing or collaborate for collaborative access
  • the response includes shareUrl, publicToken, access, and accessMode
For list_sharing_links:
  • omit arguments to list all public content sharing links
  • optionally filter by contentId, contentType, or access
  • each link includes shareUrl, publicToken, access, accessMode, contentId, and contentType

Choose an auth mode

Claude Code or raw MCP client

Use API-key auth when the MCP client can send custom headers or query parameters directly. Send the API key as either query parameters:
Or as headers:
If your MCP client already has an OAuth access token or Supabase session JWT, it can also send:

Request shape

List tools

Call a tool

Call search_content in raw mode

Call search_content inside a saved view

Use this shape for the LLM-ready response:
Use this shape for the full response:

Response parsing

For successful Memex MCP calls:
  • use result.structuredContent as the parsed object
  • treat result.content[0].text as the serialized text copy of the same payload
If the tool call fails before structuredContent exists, re-check the request against Available endpoints.