Persistent Memory for AI Agents with Sutra MCP: Private, Portable, and Reusable Developer Shivnath Tathe built Sutra MCP, a hosted Model Context Protocol service that gives AI agents a private, portable memory layer and reusable skill library. The service, published in the Official MCP Registry, lets users store durable project decisions and workflows that can be retrieved selectively across different AI clients, with explicit user authorization for memory writes. Your AI agent understands the project today. Tomorrow, you open another agent and explain the same architecture, preferences, and decisions again. The model changed. The chat history stayed behind. Your context did not move with you. I built Sutra MCP to make that handoff explicit: one private, portable memory layer and reusable skill library that can be accessed by supported AI agents through the Model Context Protocol https://modelcontextprotocol.io/ . This article shows what that means, how the pieces fit together, and how to connect an MCP client in a few minutes. Sutra https://sutra.shivnathtathe.com is a hosted MCP service for user-controlled AI agent memory and reusable skills. Instead of treating every conversation as memory, Sutra exposes deliberate operations to: SKILL.md workflows separately from personal memoryThe same Streamable HTTP endpoint works across clients: https://sutra-c3or.onrender.com/mcp Sutra is published in the Official MCP Registry as io.github.shivnathtathe/sutra https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.shivnathtathe%2Fsutra&version=latest . Agent memory and agent skills are often discussed as if they are interchangeable. They are not. | Layer | Question it answers | Example | |---|---|---| | Memory | What should this agent know about me or this project? | "This service uses UTC internally and displays local time at the UI boundary." | | Skill | How should an agent perform a repeatable task? | A tested release checklist stored as a reusable SKILL.md workflow. | Memory carries durable facts, preferences, corrections, and decisions. Skills carry reusable operating knowledge. Sutra keeps both available through MCP without permanently injecting everything into every prompt. Here is a practical handoff you can try after connecting two supported clients. In Agent A, ask: Use Sutra to save this project decision in my payments cluster: "All internal timestamps use UTC; localization happens only at the presentation boundary." I authorize this memory write. The explicit authorization matters. A normal conversation should not silently become permanent memory. Open Agent B and ask: Search my Sutra payments cluster for our timestamp convention. Use only the context relevant to this question. Agent B does not need Agent A's chat transcript. It retrieves the specific durable decision through Sutra. In any connected agent, ask: List my enabled Sutra skills. If there is a release checklist, show me its resource index before loading any supporting files. This keeps procedural knowledge discoverable without filling the context window with every workflow you have ever saved. That is the core idea: store intentionally, retrieve selectively, and reuse across agents . First, create a Sutra account https://sutra.shivnathtathe.com/login . Then choose the authentication method supported by your client. | Authentication | Best for | Behavior | |---|---|---| | OAuth 2.1 | Remote MCP clients with browser authorization | The client requests consent and stores a revocable grant. | | API key | Clients that expect an Authorization header | Create a dedicated, revocable key and keep it in the client's secret storage. | Add this to ~/.cursor/mcp.json : { "mcpServers": { "sutra": { "url": "https://sutra-c3or.onrender.com/mcp" } } } Connect the server and complete Sutra's browser authorization flow. Merge this into your global or project opencode.json : { "$schema": "https://opencode.ai/config.json", "mcp": { "sutra": { "type": "remote", "url": "https://sutra-c3or.onrender.com/mcp", "oauth": {} } } } Authorize and inspect the connection: opencode mcp auth sutra opencode mcp list Create .vscode/mcp.json , or merge this into your user MCP configuration: { "inputs": { "id": "sutra-api-key", "type": "promptString", "description": "Sutra API key", "password": true } , "servers": { "sutra": { "type": "http", "url": "https://sutra-c3or.onrender.com/mcp", "headers": { "Authorization": "Bearer ${input:sutra-api-key}" } } } } VS Code requests the key through a masked input instead of storing it in the configuration file. npm install -g @shivnathtathe/sutra-cli sutra connect claude-code The CLI requests a dedicated key and writes the supported local configuration. Current instructions for 22 clients are available in the Sutra integration catalog https://sutra.shivnathtathe.com/integrations . Sutra separates reads from deliberate writes, uploads, and exports. | Tool | Access | Purpose | |---|---|---| read context | Read | Load the user's shared identity context. | search memory | Read | Find targeted memories by keyword. | list clusters | Read | Discover available project clusters. | get cluster | Read | Load one known project cluster. | write observation | Write | Save one durable preference, decision, correction, or fact. | export all | Export | Export all user memories for data portability. | list skills | Read | Discover skills explicitly enabled by the user. | get skill | Read | Load an enabled skill and its resource index. | get skill resource | Read | Read one supporting resource from an enabled skill. | upload skill | Write | Upload a new immutable skill version after explicit authorization. | After authorization, use this connection check: Use Sutra to list my project clusters, then ask before saving anything. Your client should discover all ten tools. Sutra is a hosted service, not a local-only database. Private means access-controlled, user-specific context with explicit data boundaries; it does not mean data never leaves your machine. Sutra: Sutra does not: The connected AI client has its own data-handling policies. Review both the Sutra Privacy Policy https://sutra.shivnathtathe.com/privacy and your client's policy before sending sensitive information. Never commit a Sutra API key, OAuth token, password, or memory export to source control. | Approach | Strength | Tradeoff | |---|---|---| | Chat history | Automatic and convenient | Usually tied to one product or conversation. | | Project instruction files | Transparent and versionable | Often project-specific and loaded as static context. | | Local memory servers | Maximum infrastructure control | You operate the database, runtime, backups, and client connectivity. | | Vendor-native memory | Deep integration with one assistant | Portability depends on that vendor. | | Sutra MCP | Hosted, selective memory plus reusable skills across supported agents | Requires a Sutra account and network connection. | Sutra is not intended to replace every memory architecture. It is for people who want their useful context and repeatable workflows to outlast one chat window or one AI client. The Sutra MCP integrations repository https://github.com/shivnathtathe/sutra-mcp-integrations contains the open manifests, client configurations, documentation, and artwork needed to connect MCP clients. Those integration files are MIT licensed. The hosted backend, dashboard, APIs, infrastructure, datasets, service implementation, and trademarks remain proprietary and are not included in that repository. You can inspect Sutra through: Connect Sutra to two agents you already use. Save one non-sensitive project decision with explicit authorization, retrieve it from the second agent, and see whether that small handoff removes a repeated explanation from your workflow. If context should outlast the chat window, it should also remain under the user's control. Create your private Sutra workspace https://sutra.shivnathtathe.com/login or review the integration guide https://github.com/shivnathtathe/sutra-mcp-integrations connect-sutra . I would value feedback on three questions: