> ## Documentation Index
> Fetch the complete documentation index at: https://help.memoryplugin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Remote MCP server (hosted)

> Connect any MCP client to MemoryPlugin's hosted server over HTTP or SSE, with OAuth sign-in and no install

export const ArticleInfo = ({author, lastUpdated}) => {
  const authorAvatar = author === 'Alara' ? '/images/author-alara.jpg' : author === 'asad' ? '/images/author-alara.jpg' : null;
  const formatDate = dateInput => {
    if (!dateInput) return '';
    if (typeof dateInput === 'string' && !dateInput.match(/^\d{4}-\d{2}-\d{2}/)) {
      return dateInput;
    }
    try {
      const date = new Date(dateInput);
      const now = new Date();
      const diffTime = Math.abs(now - date);
      const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));
      if (diffDays === 0) return 'today';
      if (diffDays === 1) return '1 day ago';
      if (diffDays < 7) return `${diffDays} days ago`;
      if (diffDays < 30) return `${Math.ceil(diffDays / 7)} week${Math.ceil(diffDays / 7) > 1 ? 's' : ''} ago`;
      if (diffDays < 365) return `${Math.ceil(diffDays / 30)} month${Math.ceil(diffDays / 30) > 1 ? 's' : ''} ago`;
      return `${Math.ceil(diffDays / 365)} year${Math.ceil(diffDays / 365) > 1 ? 's' : ''} ago`;
    } catch {
      return dateInput;
    }
  };
  return <div style={{
    display: "flex",
    alignItems: "center",
    gap: "8px",
    marginBottom: "16px",
    padding: "8px 12px",
    backgroundColor: "var(--ifm-color-emphasis-100)",
    borderRadius: "6px",
    fontSize: "14px",
    color: "var(--ifm-color-content-secondary)",
    border: "1px solid var(--ifm-color-emphasis-200)",
    opacity: "0.8"
  }}>
      <div style={{
    width: "40px",
    height: "40px",
    borderRadius: "50%",
    background: authorAvatar || "linear-gradient(45deg, #4F46E5, #7C3AED)",
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    color: "white",
    fontWeight: "bold",
    fontSize: "18px"
  }}>
        {authorAvatar ? <img src={authorAvatar} alt={author} style={{
    width: "100%",
    height: "100%",
    borderRadius: "50%"
  }} /> : author?.[0]?.toUpperCase()}
      </div>
      <div>
        <div style={{
    fontWeight: "400",
    fontSize: "14px"
  }}>Written by <span style={{
    fontWeight: "600"
  }}>{author}</span></div>
        <div style={{
    fontSize: "14px"
  }}>Last updated <span style={{
    fontWeight: "600"
  }}>{formatDate(lastUpdated)}</span></div>
      </div>
    </div>;
};

<ArticleInfo author="Alara" lastUpdated="2026-07-04" />

Connect an MCP client to MemoryPlugin without running anything on your machine. The hosted Remote MCP server accepts connections over HTTPS, handles sign-in with OAuth 2.0 (PKCE), and supports Dynamic Client Registration (DCR) so most clients register themselves on the first connect.

<Note>
  This is the recommended way to use MemoryPlugin over MCP. Compared with the [local MCP server](/integrations/mcp-server), there is no Node.js to install and no token to paste into a config file: you connect by URL and approve access in your browser. Reach for the local server only when you specifically want the process on your own machine, or when your client cannot do the browser OAuth flow. The tools and data are identical.
</Note>

<Info>
  Account email independence: Your MemoryPlugin sign‑in email does not need to match the email you use on ChatGPT, Claude, TypingMind, or any other tool. Access and permissions are tied to your MemoryPlugin account (and API key when applicable), not third‑party logins.
</Info>

## Endpoints

Use whichever URL your client asks for:

**Base URL (with auto-discovery)**

```
https://www.memoryplugin.com
```

**HTTP (streamable)**

```
https://www.memoryplugin.com/api/mcp/mcp
```

**SSE (Server-Sent Events)**

```
https://www.memoryplugin.com/api/mcp/sse
```

<Info>
  Most clients want the full endpoint path. Some only need the base URL and will auto-discover the rest.
</Info>

## Authentication

The Remote MCP server uses OAuth 2.0 with PKCE and supports Dynamic Client Registration. What this means for you:

* Clients that support DCR register themselves during the first connect. There is nothing to set up in advance.
* You do not hand out any long-lived secret. The client gets tokens after you approve access.
* Your client stores those tokens under its own security model, for example the OS keychain.

<Warning>
  Do not paste raw API keys into third-party clients unless their own docs tell you to. Use the built-in OAuth flow when it is available.
</Warning>

### How the connect flow works

<Steps>
  <Step title="Add the endpoint">
    Configure your MCP client with one of the Remote MCP endpoints above.
  </Step>

  <Step title="Start the client">
    Start or refresh the client. It opens the MemoryPlugin sign-in screen in your browser.
  </Step>

  <Step title="Approve access">
    Sign in and approve the connection. The client exchanges the code for tokens behind the scenes.

    <Frame caption="The MemoryPlugin consent screen: review the requested permissions, confirm the redirect URL, and continue.">
      <img src="https://mintcdn.com/memoryplugin/9o9T_0PzzkacB3w3/images/screenshots/tools/oauth-approve.png?fit=max&auto=format&n=9o9T_0PzzkacB3w3&q=85&s=9df5521bc3543e65a3907e77dfad34e6" alt="MemoryPlugin OAuth consent screen for connecting with Claude, listing requested permissions with a trust-the-redirect checkbox and a Continue button" width="2000" height="1400" data-path="images/screenshots/tools/oauth-approve.png" />
    </Frame>
  </Step>

  <Step title="Connected">
    The client connects and lists the MemoryPlugin tools. You are done.
  </Step>
</Steps>

## Client configuration examples

Each client has its own config schema for remote servers. Use these as a starting point and check your client's docs for exact keys.

### Claude Desktop

Config file location:

* macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
* Windows: `%APPDATA%/Claude/claude_desktop_config.json`
* Linux: `~/.config/Claude/claude_desktop_config.json`

```json theme={null}
{
  "mcpServers": {
    "memoryplugin-remote": {
      "type": "http",
      "url": "https://www.memoryplugin.com/api/mcp/mcp"
    }
  }
}
```

<Info>
  Claude Desktop handles OAuth with Dynamic Client Registration on the first connection. No keys or tokens go in the config.
</Info>

### VS Code / GitHub Copilot Chat

Project file: `.vscode/mcp.json`

```json theme={null}
{
  "servers": {
    "memoryplugin-remote": {
      "type": "http",
      "url": "https://www.memoryplugin.com/api/mcp/mcp"
    }
  }
}
```

<Info>
  VS Code supports both HTTP and SSE. It tries HTTP first and falls back to SSE if needed. OAuth with DCR is automatic.
</Info>

### Cursor, Windsurf, and other clients

* Look for "Remote MCP", "HTTP transport", or "Add server" in your client's settings.
* Try these URLs in order:
  1. `https://www.memoryplugin.com/api/mcp/mcp` (full HTTP endpoint)
  2. `https://www.memoryplugin.com` (base URL with auto-discovery)
* Set the type to `"http"` if your client requires it.
* Turn on OAuth or DCR if offered. Most current clients do this automatically.
* If your client insists on static credentials, use the local server instead.

### Clients without native remote support

If your client cannot talk to a remote MCP server yet, run a local proxy like `mcp-remote`:

```json theme={null}
{
  "mcpServers": {
    "memoryplugin-remote": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://www.memoryplugin.com/api/mcp/sse"
      ]
    }
  }
}
```

This starts a local proxy that forwards to the remote server, so it looks like a local MCP server to your client.

## Capabilities

Once connected, the Remote MCP server exposes the same tools as the [local MCP server](/integrations/mcp-server#available-tools), plus a chat-history overview:

* **Memories** to store, retrieve, and search across buckets
* **Smart Memory** categories and summaries
* **Chat History** search and synthesized context from your imported conversations
* **File search** over your uploaded documents
* **Chat History Overview**, an AI-generated summary of your chat history that is shared with the AI automatically for richer context

See the [MCP Server](/integrations/mcp-server#available-tools) page for the full 12-tool list.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Unauthorized (401) or repeated sign-in prompts">
    Finish the OAuth flow in your default browser. If it keeps happening, sign out in your client and connect again.
  </Accordion>

  <Accordion title="Client does not support Remote MCP">
    Use the [local MCP server](/integrations/mcp-server), or check for a newer client version with HTTP/SSE transport.
  </Accordion>

  <Accordion title="Claude Desktop doesn't pick up config changes">
    Quit the app fully, then reopen it. On macOS, confirm your edits in `~/Library/Application Support/Claude/claude_desktop_config.json`.
  </Accordion>

  <Accordion title="Network or proxy issues">
    Allow outbound HTTPS to `www.memoryplugin.com`. Some corporate proxies block SSE, so prefer the HTTP streamable endpoint if your client supports it.
  </Accordion>

  <Accordion title="I need static client credentials">
    Some clients require a pre-registered OAuth client instead of DCR. Check your client docs; if that is not supported, fall back to the local server.
  </Accordion>

  <Accordion title="My client doesn't support remote MCP at all">
    Use the `mcp-remote` proxy shown above. It creates a local server that forwards to the remote endpoint, which works with any MCP client.
  </Accordion>
</AccordionGroup>

## Related links

<CardGroup cols={2}>
  <Card title="Local MCP server" icon="server" href="/integrations/mcp-server">
    Run MemoryPlugin as a local MCP process via Node.js
  </Card>

  <Card title="API reference" icon="book" href="/api-reference/introduction">
    REST endpoints, schemas, and examples
  </Card>

  <Card title="MemoryPlugin website" icon="globe" href="https://memoryplugin.com">
    Features and pricing
  </Card>

  <Card title="Dashboard" icon="gauge" href="https://memoryplugin.com/dashboard">
    Manage your account and settings
  </Card>
</CardGroup>
