{"slug": "persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable", "title": "Persistent Memory for AI Agents with Sutra MCP: Private, Portable, and Reusable", "summary": "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.", "body_md": "Your AI agent understands the project today. Tomorrow, you open another agent and explain the same architecture, preferences, and decisions again.\n\nThe model changed. The chat history stayed behind. Your context did not move with you.\n\nI 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/).\n\nThis article shows what that means, how the pieces fit together, and how to connect an MCP client in a few minutes.\n\n[Sutra](https://sutra.shivnathtathe.com) is a hosted MCP service for user-controlled AI agent memory and reusable skills.\n\nInstead of treating every conversation as memory, Sutra exposes deliberate operations to:\n\n`SKILL.md`\n\nworkflows separately from personal memoryThe same Streamable HTTP endpoint works across clients:\n\n```\nhttps://sutra-c3or.onrender.com/mcp\n```\n\nSutra 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).\n\nAgent memory and agent skills are often discussed as if they are interchangeable. They are not.\n\n| Layer | Question it answers | Example |\n|---|---|---|\n| Memory | What should this agent know about me or this project? | \"This service uses UTC internally and displays local time at the UI boundary.\" |\n| Skill | How should an agent perform a repeatable task? | A tested release checklist stored as a reusable `SKILL.md` workflow. |\n\nMemory carries durable facts, preferences, corrections, and decisions. Skills carry reusable operating knowledge.\n\nSutra keeps both available through MCP without permanently injecting everything into every prompt.\n\nHere is a practical handoff you can try after connecting two supported clients.\n\nIn Agent A, ask:\n\n```\nUse Sutra to save this project decision in my payments cluster:\n\"All internal timestamps use UTC; localization happens only at the presentation boundary.\"\nI authorize this memory write.\n```\n\nThe explicit authorization matters. A normal conversation should not silently become permanent memory.\n\nOpen Agent B and ask:\n\n```\nSearch my Sutra payments cluster for our timestamp convention.\nUse only the context relevant to this question.\n```\n\nAgent B does not need Agent A's chat transcript. It retrieves the specific durable decision through Sutra.\n\nIn any connected agent, ask:\n\n```\nList my enabled Sutra skills. If there is a release checklist, show me its resource index before loading any supporting files.\n```\n\nThis keeps procedural knowledge discoverable without filling the context window with every workflow you have ever saved.\n\nThat is the core idea: **store intentionally, retrieve selectively, and reuse across agents**.\n\nFirst, [create a Sutra account](https://sutra.shivnathtathe.com/login). Then choose the authentication method supported by your client.\n\n| Authentication | Best for | Behavior |\n|---|---|---|\n| OAuth 2.1 | Remote MCP clients with browser authorization | The client requests consent and stores a revocable grant. |\n| API key | Clients that expect an `Authorization` header |\nCreate a dedicated, revocable key and keep it in the client's secret storage. |\n\nAdd this to `~/.cursor/mcp.json`\n\n:\n\n```\n{\n  \"mcpServers\": {\n    \"sutra\": {\n      \"url\": \"https://sutra-c3or.onrender.com/mcp\"\n    }\n  }\n}\n```\n\nConnect the server and complete Sutra's browser authorization flow.\n\nMerge this into your global or project `opencode.json`\n\n:\n\n```\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"sutra\": {\n      \"type\": \"remote\",\n      \"url\": \"https://sutra-c3or.onrender.com/mcp\",\n      \"oauth\": {}\n    }\n  }\n}\n```\n\nAuthorize and inspect the connection:\n\n```\nopencode mcp auth sutra\nopencode mcp list\n```\n\nCreate `.vscode/mcp.json`\n\n, or merge this into your user MCP configuration:\n\n```\n{\n  \"inputs\": [\n    {\n      \"id\": \"sutra-api-key\",\n      \"type\": \"promptString\",\n      \"description\": \"Sutra API key\",\n      \"password\": true\n    }\n  ],\n  \"servers\": {\n    \"sutra\": {\n      \"type\": \"http\",\n      \"url\": \"https://sutra-c3or.onrender.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${input:sutra-api-key}\"\n      }\n    }\n  }\n}\n```\n\nVS Code requests the key through a masked input instead of storing it in the configuration file.\n\n```\nnpm install -g @shivnathtathe/sutra-cli\nsutra connect claude-code\n```\n\nThe CLI requests a dedicated key and writes the supported local configuration.\n\nCurrent instructions for 22 clients are available in the [Sutra integration catalog](https://sutra.shivnathtathe.com/integrations).\n\nSutra separates reads from deliberate writes, uploads, and exports.\n\n| Tool | Access | Purpose |\n|---|---|---|\n`read_context` |\nRead | Load the user's shared identity context. |\n`search_memory` |\nRead | Find targeted memories by keyword. |\n`list_clusters` |\nRead | Discover available project clusters. |\n`get_cluster` |\nRead | Load one known project cluster. |\n`write_observation` |\nWrite | Save one durable preference, decision, correction, or fact. |\n`export_all` |\nExport | Export all user memories for data portability. |\n`list_skills` |\nRead | Discover skills explicitly enabled by the user. |\n`get_skill` |\nRead | Load an enabled skill and its resource index. |\n`get_skill_resource` |\nRead | Read one supporting resource from an enabled skill. |\n`upload_skill` |\nWrite | Upload a new immutable skill version after explicit authorization. |\n\nAfter authorization, use this connection check:\n\n```\nUse Sutra to list my project clusters, then ask before saving anything.\n```\n\nYour client should discover all ten tools.\n\nSutra 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.\n\nSutra:\n\nSutra does not:\n\nThe 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.\n\nNever commit a Sutra API key, OAuth token, password, or memory export to source control.\n\n| Approach | Strength | Tradeoff |\n|---|---|---|\n| Chat history | Automatic and convenient | Usually tied to one product or conversation. |\n| Project instruction files | Transparent and versionable | Often project-specific and loaded as static context. |\n| Local memory servers | Maximum infrastructure control | You operate the database, runtime, backups, and client connectivity. |\n| Vendor-native memory | Deep integration with one assistant | Portability depends on that vendor. |\n| Sutra MCP | Hosted, selective memory plus reusable skills across supported agents | Requires a Sutra account and network connection. |\n\nSutra 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.\n\nThe [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.\n\nThe hosted backend, dashboard, APIs, infrastructure, datasets, service implementation, and trademarks remain proprietary and are not included in that repository.\n\nYou can inspect Sutra through:\n\nConnect 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.\n\nIf context should outlast the chat window, it should also remain under the user's control.\n\n[Create your private Sutra workspace](https://sutra.shivnathtathe.com/login) or review the [integration guide](https://github.com/shivnathtathe/sutra-mcp-integrations#connect-sutra).\n\nI would value feedback on three questions:", "url": "https://wpnews.pro/news/persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable", "canonical_source": "https://dev.to/shivnathtathe/persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable-3e35", "published_at": "2026-09-04 11:31:29+00:00", "updated_at": "2026-09-04 11:54:23.917209+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure"], "entities": ["Shivnath Tathe", "Sutra", "Model Context Protocol", "Cursor", "OpenCode", "VS Code"], "alternates": {"html": "https://wpnews.pro/news/persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable", "markdown": "https://wpnews.pro/news/persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable.md", "text": "https://wpnews.pro/news/persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable.txt", "jsonld": "https://wpnews.pro/news/persistent-memory-for-ai-agents-with-sutra-mcp-private-portable-and-reusable.jsonld"}}