Claude for iOS: MCP remote integration for memory capture and retrieval
- The Claude iOS app accesses remote MCP servers through Anthropic's Connectors system, explicitly listed in official Anthropic documentation as available across "Claude web, Claude Desktop, our Claude mobile apps, Claude Code, and our API."
- Remote MCP uses Streamable HTTP transport (the current MCP standard) or backwards-compatible legacy HTTP+SSE; stdio transport is architecturally impossible for iOS because it requires launching a subprocess on the client device
- Configuration for remote connectors is done via the claude.ai web Settings → Connectors → "Add custom connector" UI, not `.mcp.json`; that file is exclusively a Claude Desktop mechanism for local stdio servers
- Connectors configured on the claude.ai web UI sync to the Claude iOS app at login; there is no native iOS connector configuration UI — the iOS app consumes connector state set up on the web
- The server must be HTTPS (explicitly required by the Anthropic MCP connector API: URL "must start with https://") and publicly reachable from Anthropic's infrastructure, which acts as relay between the iOS app and the remote MCP server
- Authentication is optional per the MCP specification; the claude.ai custom connector UI supports no-auth (open endpoint) or OAuth 2.1; static bearer tokens (not OAuth) are available only through the Messages API and do not apply to the claude.ai/iOS connector path
- Custom connectors require a paid Claude plan (Pro at $20/month minimum); the free plan cannot add custom connector URLs
- A no-auth remote MCP server is accessible to any caller who discovers the URL; for personal memory data, IP allowlisting to Anthropic's published IP ranges or OAuth 2.1 is the minimum security measure
Research Question
Does the Claude iOS app support MCP connections to a remote server? If so: (a) what transport is supported (HTTP/SSE vs stdio), (b) does it require the same .mcp.json config as Claude Desktop, (c) what is the minimum self-hosted deployment that would make mcp_server.py reachable from the app? What is Anthropic's roadmap for remote MCP and personal context/memory features?
Findings
Executive Summary
The Claude iOS app supports remote MCP connections via Anthropic's Connectors system, which is live and explicitly listed as available across "Claude web, Claude Desktop, mobile apps, Claude Code, and the API." The transport is Streamable HTTP over HTTPS (not stdio — that is Desktop-only for local subprocess servers); configuration is done once via the claude.ai web UI (not .mcp.json), and the connector syncs to iOS at next login. Deploying mcp_server.py as a remote connector requires an HTTPS endpoint, a Python MCP SDK transport switch from stdio to Streamable HTTP, and a Claude Pro subscription or higher. There is no public Anthropic roadmap for built-in persistent memory; the connector ecosystem is Anthropic's answer to personal memory extensibility.
Key Findings
- The Claude iOS app accesses remote MCP servers through Anthropic's Connectors system, explicitly listed in official Anthropic documentation as available across "Claude web, Claude Desktop, our Claude mobile apps, Claude Code, and our API."
- Remote MCP uses Streamable HTTP transport (the current MCP standard) or backwards-compatible legacy HTTP+SSE; stdio transport is architecturally impossible for iOS because it requires launching a subprocess on the client device.
- Configuration for remote connectors is done via the claude.ai web Settings → Connectors → "Add custom connector" UI, not
.mcp.json; that file is exclusively a Claude Desktop mechanism for local stdio servers. - Connectors configured on the claude.ai web UI sync to the Claude iOS app at login; there is no native iOS connector configuration UI — the iOS app consumes connector state set up on the web.
- The server must be HTTPS (explicitly required by the Anthropic MCP connector API: URL "must start with " and publicly reachable from Anthropic's infrastructure, which acts as relay between the iOS app and the remote MCP server.
- Authentication is optional per the MCP specification; the claude.ai custom connector UI supports no-auth (open endpoint) or OAuth 2.1; static bearer tokens (not OAuth) are available only through the Messages API and do not apply to the claude.ai/iOS connector path.
- Custom connectors require a paid Claude plan (Pro at $20/month minimum); the free plan cannot add custom connector URLs.
- A no-auth remote MCP server is accessible to any caller who discovers the URL; for personal memory data, IP allowlisting to Anthropic's published IP ranges or OAuth 2.1 is the minimum security measure.
- Migrating
mcp_server.pyfrom stdio to Streamable HTTP requires changing the transport runner (fromstdio_server()to the Streamable HTTP ASGI transport in the Python MCP SDK) and deploying on a cloud host with HTTPS — the tool logic (add_memory, search_brain) requires no changes. - There is no public Anthropic roadmap for built-in persistent memory in Claude; MCP RFC #2043 (Memory Interchange Format) is a community GitHub issue with no Anthropic commitment or timeline, and Anthropic's documented approach is to provide connector infrastructure for self-hosted or third-party memory servers rather than a first-party memory feature.
Assumptions
- Assumption: The iOS app has no native connector configuration UI. Justification: All Anthropic documentation describes the web UI as the configuration point; iOS is described as consuming synced state. No source mentions an iOS-specific configuration flow. If this assumption is wrong, the configuration path described in Key Finding #3 is incomplete — but the transport and deployment requirements remain unchanged.
- Assumption: The Python MCP SDK's Streamable HTTP transport shares the same tool definition interface as the stdio transport. Justification: The MCP Python SDK separates transport from tool registration; tool definitions use
@server.tool()decorators regardless of transport. This is consistent with the SDK's architecture as documented.
Analysis
The research question is resolved with high confidence for the first three sub-questions (iOS support: yes; transport: Streamable HTTP over HTTPS; configuration: web UI not .mcp.json). The minimum deployment question is answered at the architecture level; specific hosting options are out of scope and covered by the sibling item 2026-03-08-self-hosted-mcp-server-options.md.
The auth question has one remaining uncertainty: whether a static bearer token (not OAuth) can be configured through the claude.ai web UI. All documentation describes OAuth 2.1 as the auth path for authenticated custom connectors, and static bearer tokens appear in the Messages API documentation only. This means a practical personal deployment faces a binary choice: no-auth (with URL obscurity as the only protection) or a full OAuth 2.1 implementation. Opinion: For a first iteration, no-auth with IP allowlisting to Anthropic's server ranges is the most pragmatic option.
[inference] The remote MCP connector path is superior to all other iOS memory access options identified in prior research (Shortcuts via GitHub API, Telegram bot, iOS Shortcuts calling workflow_dispatch): it enables both memory capture (add_memory) and semantic retrieval (search_brain) within a Claude conversation on iOS, without a custom app, a bespoke bot, or a separate interface.
Risks, Gaps, and Uncertainties
- The iOS connector UI is not directly verified through live app inspection; documentation is the sole evidence source. Anthropic may have introduced or removed features between documentation updates and the current app version.
- Anthropic's server relay introduces a network hop between the iOS Claude client and the remote MCP server that does not exist for Claude Desktop's local stdio connection. Real-world latency for tool calls from iOS has not been tested.
- OAuth 2.1 implementation for a single-user self-hosted server is disproportionately complex relative to the value — but no-auth leaves personal memory data exposed to URL discovery. A pragmatic middle path (hard-to-guess URL + IP allowlisting) is documented but not officially endorsed by Anthropic.
- Anthropic could introduce first-party memory to Claude at any time, which would reduce the value of a self-hosted connector deployment. No signals indicate this is imminent.
Open Questions
- Bearer token via web UI: Can the claude.ai custom connector UI be configured with a static Authorization header (bearer token, not OAuth)? This would be the simplest auth option for a personal server. Requires direct testing by attempting to add a connector URL and observing whether the UI prompts for OAuth or allows a custom header.
- Per-conversation toggle: Does the user need to manually enable each connector per conversation in the iOS app, or is there a "always on" mode? The web app has per-conversation toggles; if iOS requires the same, it adds friction to the memory use case.
- Tool call latency from iOS: What is the round-trip time for a memory tool call from Claude iOS → Anthropic relay → self-hosted server → response? Acceptable for retrieval (≤2s) or prohibitive?
- Self-hosted server hosting options: Covered by
2026-03-08-self-hosted-mcp-server-options.md— which hosting option (Cloudflare Workers, Railway, Render, VPS) is most appropriate for a Python-based MCP server with low traffic?
sources
- [x]
Research/completed/2026-03-02-agent-memory-management-context-injection.md— MCP RFC #2043 (Memory Interchange Format); memory portability as first-class concern - [x] MCP specification (transport section)
- [x] Anthropic MCP remote transport docs
- [x] Claude iOS App Store page (release notes)
- [x] Anthropic developer docs — MCP connector API
- [x] MCP authorization specification
- [x] Anthropic support: What are custom connectors / remote MCP servers
- [x] Anthropic support: Use connectors to extend Claude's capabilities
- [x] Anthropic support: Building custom connectors via remote MCP servers
- [x] Anthropic Connectors Directory FAQ
- [x] When to use desktop vs web connectors
- [x] Cloudflare remote MCP server guide
- [x] SimpleScraper: How to build a remote MCP server
- [ ]
2026-03-08-self-hosted-mcp-server-options.md— prerequisite infrastructure research (backlog, not yet completed) - [ ]
davidamitchell/Memory-SystemBACKLOG.md W-0004 — the corresponding discovery item (requires direct repo access not available in this session)