Sutra
Server Details
Shared private memory layer for AI agents. Write context once, carry it across Claude, ChatGPT, Grok, Cursor, Replit, Bolt, Lovable, Devin, v0 and more. Supports reusable SKILL.md bundles for agent skills discovery. OAuth 2.1 + API key auth.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 15.7% over 23 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 10 tools
Each tool has a clearly scoped purpose, and the descriptions include explicit usage rules that prevent overlap. Memory retrieval is split into read_context, search_memory, get_cluster, and export_all with distinct trigger conditions, so agents can reliably choose the right tool.
All tools use a consistent lower_snake_case verb_noun pattern such as list_clusters, get_skill, search_memory, write_observation, and upload_skill. The naming is predictable and uniform across the entire set.
Ten tools is well-scoped for a personal memory and skills server: it covers memory access, skill access, discovery, writing observations, and export. Each tool earns its place without the set feeling bloated or thin.
The server covers discovery, retrieval, saving observations, and uploading skills, but it lacks update/delete operations for memories and skill management beyond upload. This leaves a notable lifecycle gap: incorrect or obsolete saved observations cannot be removed or corrected in place.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
- Changed
export_all3 fields changed- removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "clusters": { + "items": { + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "is_default": { + "type": "boolean" + }, + "memories": { + "items": { + "properties": { + "cluster": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "importance": { + "type": "integer" + }, + "source_agent": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "content", + "source_agent", + "importance", + "created_at", + "tags" + ], + "type": "object" + }, + "type": "array" + }, + "memory_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "description", + "is_default", + "created_at", + "memory_count", + "memories" + ], + "type": "object" + }, + "type": "array" + }, + "exported_at": { + "type": "string" + }, + "total_memory_count": { + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "exported_at", + "total_memory_count", + "clusters" +]
- Changed
get_cluster8 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of memories to return from the cluster." - added
Input schema / properties / name / descriptionAdded value: +"Exact cluster name using letters, numbers, or hyphens." - added
Input schema / properties / name / maxLengthAdded value: +50 - added
Input schema / properties / name / minLengthAdded value: +1 - added
Input schema / properties / name / patternAdded value: +"^[A-Za-z0-9-]{1,50}$" - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "cluster": { + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "is_default": { + "type": "boolean" + }, + "memory_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "description", + "is_default", + "created_at", + "memory_count" + ], + "type": "object" + }, + "memories": { + "items": { + "properties": { + "cluster": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "importance": { + "type": "integer" + }, + "source_agent": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "content", + "source_agent", + "importance", + "created_at", + "tags" + ], + "type": "object" + }, + "type": "array" + } +} - added
Output schema / requiredAdded value: +[ + "cluster", + "memories" +]
- Changed
get_skill7 fields changed- added
Input schema / properties / slug / descriptionAdded value: +"Slug of an enabled skill, usually obtained from list_skills." - added
Input schema / properties / slug / maxLengthAdded value: +100 - added
Input schema / properties / slug / minLengthAdded value: +1 - added
Input schema / properties / slug / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "instructions": { + "type": "string" + }, + "resources": { + "items": { + "properties": { + "content_type": { + "type": "string" + }, + "path": { + "type": "string" + }, + "size_bytes": { + "type": "integer" + } + }, + "required": [ + "path", + "content_type", + "size_bytes" + ], + "type": "object" + }, + "type": "array" + }, + "skill": { + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "file_count": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "source_agent": { + "type": "string" + }, + "total_bytes": { + "type": "integer" + }, + "version": { + "type": "integer" + } + }, + "required": [ + "slug", + "name", + "description", + "version", + "source_agent", + "file_count", + "total_bytes", + "created_at" + ], + "type": "object" + } +} - added
Output schema / requiredAdded value: +[ + "skill", + "instructions", + "resources" +]
- Changed
get_skill_resource10 fields changed- added
Input schema / properties / path / descriptionAdded value: +"Relative resource path exactly as returned by get_skill." - added
Input schema / properties / path / maxLengthAdded value: +300 - added
Input schema / properties / path / minLengthAdded value: +1 - added
Input schema / properties / slug / descriptionAdded value: +"Slug of the enabled skill that owns the resource." - added
Input schema / properties / slug / maxLengthAdded value: +100 - added
Input schema / properties / slug / minLengthAdded value: +1 - added
Input schema / properties / slug / patternAdded value: +"^[a-z0-9]+(?:-[a-z0-9]+)*$" - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "content": { + "type": "string" + }, + "content_type": { + "type": "string" + }, + "encoding": { + "enum": [ + "utf-8", + "base64" + ], + "type": "string" + }, + "path": { + "type": "string" + }, + "size_bytes": { + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "path", + "content_type", + "size_bytes", + "encoding", + "content" +]
- Changed
list_clusters3 fields changed- removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "clusters": { + "items": { + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "is_default": { + "type": "boolean" + }, + "memory_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "description", + "is_default", + "created_at", + "memory_count" + ], + "type": "object" + }, + "type": "array" + } +} - added
Output schema / requiredAdded value: +[ + "clusters" +]
- Changed
list_skills3 fields changed- removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "skills": { + "items": { + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "file_count": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "source_agent": { + "type": "string" + }, + "total_bytes": { + "type": "integer" + }, + "version": { + "type": "integer" + } + }, + "required": [ + "slug", + "name", + "description", + "version", + "source_agent", + "file_count", + "total_bytes", + "created_at" + ], + "type": "object" + }, + "type": "array" + } +} - added
Output schema / requiredAdded value: +[ + "skills" +]
- Changed
read_context3 fields changed- removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "clusters": { + "items": { + "properties": { + "created_at": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "is_default": { + "type": "boolean" + }, + "memory_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "description", + "is_default", + "created_at", + "memory_count" + ], + "type": "object" + }, + "type": "array" + }, + "display_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_updated": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "memories": { + "items": { + "properties": { + "cluster": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "importance": { + "type": "integer" + }, + "source_agent": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "content", + "source_agent", + "importance", + "created_at", + "tags" + ], + "type": "object" + }, + "type": "array" + }, + "total_memory_count": { + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "display_name", + "clusters", + "memories", + "total_memory_count", + "last_updated" +]
- Changed
search_memory9 fields changed- changed
Input schema / properties / cluster / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 50, + "minLength": 1, + "pattern": "^[A-Za-z0-9-]{1,50}$", + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / cluster / descriptionAdded value: +"Optional cluster name to restrict the search." - added
Input schema / properties / query / descriptionAdded value: +"Short, specific keywords describing the memories to find." - added
Input schema / properties / query / maxLengthAdded value: +2000 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / top_k / descriptionAdded value: +"Maximum number of matching memories to return." - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "memories": { + "items": { + "properties": { + "cluster": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "importance": { + "type": "integer" + }, + "source_agent": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "content", + "source_agent", + "importance", + "created_at", + "tags" + ], + "type": "object" + }, + "type": "array" + } +} - added
Output schema / requiredAdded value: +[ + "memories" +]
- Changed
upload_skill12 fields changed- changed
Input schema / properties / description / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / description / descriptionAdded value: +"Optional short description of the skill's purpose." - added
Input schema / properties / name / descriptionAdded value: +"Human-readable skill name containing at least one letter or number." - added
Input schema / properties / name / maxLengthAdded value: +80 - added
Input schema / properties / name / minLengthAdded value: +1 - changed
Input schema / properties / resources / anyOfPrevious value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": { + "type": "string" + }, + "maxProperties": 50, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / resources / descriptionAdded value: +"Optional map of up to 50 relative file paths to UTF-8 text contents; total upload limit is 512 KB." - added
Input schema / properties / skill_md / descriptionAdded value: +"Complete UTF-8 SKILL.md text with YAML frontmatter; maximum encoded size is 256 KB." - added
Input schema / properties / skill_md / minLengthAdded value: +1 - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "message": { + "type": "string" + }, + "status": { + "const": "disabled", + "type": "string" + }, + "version": { + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "status", + "version", + "message" +]
- Changed
write_observation12 fields changed- added
Input schema / properties / cluster / descriptionAdded value: +"Destination cluster name using letters, numbers, or hyphens." - added
Input schema / properties / cluster / maxLengthAdded value: +50 - added
Input schema / properties / cluster / minLengthAdded value: +1 - added
Input schema / properties / cluster / patternAdded value: +"^[A-Za-z0-9-]{1,50}$" - added
Input schema / properties / content / descriptionAdded value: +"The preference, decision, correction, working pattern, or project fact to remember." - added
Input schema / properties / content / maxLengthAdded value: +2000 - added
Input schema / properties / content / minLengthAdded value: +1 - added
Input schema / properties / importance / descriptionAdded value: +"Memory importance from 1 (low) to 5 (critical); use 3 by default." - added
Input schema / properties / tags / descriptionAdded value: +"Optional search tags; at most 10 tags, each no longer than 30 characters." - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / propertiesAdded value: +{ + "status": { + "enum": [ + "saved", + "duplicate" + ], + "type": "string" + } +} - added
Output schema / requiredAdded value: +[ + "status" +]
10 tool updates
- First observed
export_all - First observed
get_cluster - First observed
get_skill - First observed
get_skill_resource - First observed
list_clusters - First observed
list_skills - First observed
read_context - First observed
search_memory - First observed
upload_skill - First observed
write_observation
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.167 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm49 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.