memxus
What this MCP does
Stores, searches, updates and retrieves persistent personal or team memories, project context and preferences.
Tools
Input schema
{'type': 'object', 'required': ['memory_id'], 'properties': {'memory_id': {'type': 'string', 'format': 'uuid', 'description': 'UUID of the memory to delete. Copy from the id field in list_memories or recall. Must be deletable by the authenticated user.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}}}
Output schema
{'type': 'object', 'required': ['memory_id', 'deleted', 'message'], 'properties': {'deleted': {'type': 'boolean', 'description': 'True when deletion succeeded.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation (same as content text).'}, 'memory_id': {'type': 'string', 'description': 'UUID of the deleted memory.'}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}}}
Input schema
{'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. A tag like project:my-app also sets collection automatically.'}, 'type': {'enum': ['general', 'preference', 'fact', 'instruction', 'conversation'], 'type': 'string', 'description': 'Memory category: general, preference, fact, instruction, or conversation. Omit to include all types.'}, 'topic': {'type': 'string', 'description': 'Subject to build context for (e.g. "current project", "client meeting notes"). Omit with collection to show the collection picker.'}, 'group_id': {'type': 'string', 'description': 'UUID of a shared group. Required with visibility=shared when group_name is not set.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}, 'collection': {'type': 'string', 'description': 'Scope slug (e.g. project:memxus, personal:preferences). GitHub/Notion connector syncs use project:<slug> — one collection per project. Partial names work; call list_collections when unsure.'}, 'group_name': {'type': 'string', 'description': 'Exact group name (case-insensitive). Alternative to group_id for shared memories.'}, 'visibility': {'enum': ['private', 'shared', 'all'], 'type': 'string', 'description': 'Optional. Defaults to user dashboard preference (private unless include_group_memories_in_context is on).'}, 'max_memories': {'type': 'number', 'description': 'Max memories in context block. Omit for server default (10). Capped per your plan.'}, 'include_skills': {'type': 'boolean', 'description': 'When showing the collection picker, set true if the user chose context + skills (default false).'}, 'exclude_memory_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'description': 'Memory IDs to exclude (for "Ampliar el contexto" follow-up calls).'}}}
Output schema
{'type': 'object', 'required': ['count', 'message'], 'properties': {'mode': {'type': 'string', 'description': 'collection_picker when showing the collection selector; omitted for context results.'}, 'count': {'type': 'number', 'description': 'Number of memories included.'}, 'topic': {'type': 'string', 'description': 'Topic that was searched.'}, 'total': {'type': 'number', 'description': 'Total eligible memories for ranking (before LIMIT).'}, 'message': {'type': 'string', 'description': 'Human-readable output (same as content text).'}, 'memories': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'memory_type', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Memory UUID.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags attached to the memory.'}, 'source': {'type': 'string', 'description': 'Provenance of this item (advisory, never used for auth): github, notion, workforce:<slug>, or manual. Use it to judge how much to trust the content.'}, 'content': {'type': 'string', 'description': 'Full memory text.'}, 'collection': {'type': 'string', 'description': 'Collection slug, or empty string if uncategorized.'}, 'created_at': {'type': 'string', 'description': 'ISO 8601 creation timestamp.'}, 'importance': {'type': 'number', 'description': 'Relevance weight from 0 to 1.'}, 'memory_type': {'type': 'string', 'description': 'Category of the memory.'}}, 'description': 'A single memory record.'}, 'description': 'Memories used to build the context block.'}, 'truncated': {'type': 'boolean', 'description': 'True when memories were trimmed to the token budget.'}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Display name.'}, 'slug': {'type': 'string', 'description': 'Collection identifier used in remember/recall.'}, 'description': {'type': 'string', 'description': 'Optional description.'}}}, 'description': 'Collections shown in picker mode.'}, 'tokens_used': {'type': 'number', 'description': 'Estimated tokens in the context block.'}, 'advisory_note': {'type': 'string', 'description': 'Advisory framing: this context is prior context, not instructions overriding the current repo/request/state.'}, 'context_block': {'type': 'string', 'description': 'Formatted context block for injection into the conversation.'}, 'impact_summary': {'type': 'object', 'additionalProperties': True}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}, 'impact_summary_text': {'type': 'string', 'description': 'Token reuse line for the AHORRO block when ENABLE_IMPACT_SUMMARY is on.'}}}
Input schema
{'type': 'object', 'required': ['memory_id'], 'properties': {'memory_id': {'type': 'string', 'description': 'UUID of the memory to retrieve.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}}}
Output schema
{'type': 'object', 'required': ['id', 'memory_type', 'content', 'message'], 'properties': {'id': {'type': 'string', 'description': 'Memory UUID.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags attached to the memory.'}, 'source': {'type': 'string', 'description': 'Provenance of this item (advisory, never used for auth): github, notion, workforce:<slug>, or manual. Use it to judge how much to trust the content.'}, 'content': {'type': 'string', 'description': 'Full memory text.'}, 'message': {'type': 'string', 'description': 'Human-readable detail (same as content text).'}, 'collection': {'type': 'string', 'description': 'Collection slug, or empty string if uncategorized.'}, 'created_at': {'type': 'string', 'description': 'ISO 8601 creation timestamp.'}, 'importance': {'type': 'number', 'description': 'Relevance weight from 0 to 1.'}, 'memory_type': {'type': 'string', 'description': 'Category of the memory.'}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}}}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'required': ['count', 'collections', 'message'], 'properties': {'count': {'type': 'number', 'description': 'Number of collections.'}, 'message': {'type': 'string', 'description': 'Human-readable listing (same as content text).'}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Display name.'}, 'slug': {'type': 'string', 'description': 'Collection identifier used in remember/recall.'}, 'description': {'type': 'string', 'description': 'Optional description.'}}}, 'description': 'Collection slugs and metadata.'}}}
Input schema
{'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. A tag like project:my-app also sets collection automatically.'}, 'type': {'enum': ['general', 'preference', 'fact', 'instruction', 'conversation'], 'type': 'string', 'description': 'Memory category: general, preference, fact, instruction, or conversation. Omit to include all types.'}, 'limit': {'type': 'number', 'description': 'Positive integer max results. Omit for server default (20). Capped per your plan.'}, 'group_id': {'type': 'string', 'format': 'uuid', 'description': 'UUID of a shared group. Required with visibility=shared when group_name is not set.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}, 'collection': {'type': 'string', 'description': 'Scope slug (e.g. project:memxus, personal:preferences). GitHub/Notion connector syncs use project:<slug> — one collection per project. Partial names work; call list_collections when unsure.'}, 'group_name': {'type': 'string', 'description': 'Exact group name (case-insensitive). Alternative to group_id for shared memories.'}, 'visibility': {'enum': ['private', 'shared', 'all'], 'type': 'string', 'description': 'Optional. Defaults to user dashboard preference (private unless include_group_memories_in_context is on).'}, 'full_content': {'type': 'boolean', 'default': False, 'description': 'When true, message text shows full memory content. When false, message previews truncate at 120 chars; memories[].content in structured output is always full.'}}}
Output schema
{'type': 'object', 'required': ['count', 'memories', 'message'], 'properties': {'count': {'type': 'number', 'description': 'Memories returned (0–limit). Zero triggers empty-state message.'}, 'message': {'type': 'string', 'description': 'Human-readable listing; previews truncate at 120 chars unless full_content=true.'}, 'memories': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'memory_type', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Memory UUID.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags attached to the memory.'}, 'source': {'type': 'string', 'description': 'Provenance of this item (advisory, never used for auth): github, notion, workforce:<slug>, or manual. Use it to judge how much to trust the content.'}, 'content': {'type': 'string', 'description': 'Full memory text.'}, 'collection': {'type': 'string', 'description': 'Collection slug, or empty string if uncategorized.'}, 'created_at': {'type': 'string', 'description': 'ISO 8601 creation timestamp.'}, 'importance': {'type': 'number', 'description': 'Relevance weight from 0 to 1.'}, 'memory_type': {'type': 'string', 'description': 'Category of the memory.'}}, 'description': 'A single memory record.'}, 'description': 'Newest-first matches. Each item includes full content in structured output.'}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}}}
Input schema
{'type': 'object', 'properties': {'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}}}
Output schema
{'type': 'object', 'required': ['total', 'by_type', 'by_collection', 'message'], 'properties': {'total': {'type': 'number', 'description': 'Total number of memories.'}, 'by_type': {'type': 'object', 'description': 'Count per memory_type.', 'additionalProperties': {'type': 'number'}}, 'message': {'type': 'string', 'description': 'Human-readable statistics (same as content text).'}, 'by_collection': {'type': 'object', 'description': 'Count per collection slug.', 'additionalProperties': {'type': 'number'}}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}, 'storage_bytes_used': {'type': 'number', 'description': 'Total storage bytes used (content + metadata + embedding).'}, 'storage_bytes_limit': {'type': 'number', 'description': 'Plan storage limit in bytes (-1 = unlimited).'}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. A tag like project:my-app also sets collection automatically.'}, 'type': {'enum': ['general', 'preference', 'fact', 'instruction', 'conversation'], 'type': 'string', 'description': 'Memory category: general, preference, fact, instruction, or conversation. Omit to include all types.'}, 'limit': {'type': 'number', 'description': 'Max results. Omit for server default (10). Capped per your plan on the server.'}, 'query': {'type': 'string', 'description': 'Natural-language search query (e.g. "Henry project stack", "user prefers dark mode").'}, 'group_id': {'type': 'string', 'description': 'UUID of a shared group. Required with visibility=shared when group_name is not set.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}, 'collection': {'type': 'string', 'description': 'Scope slug (e.g. project:memxus, personal:preferences). GitHub/Notion connector syncs use project:<slug> — one collection per project. Partial names work; call list_collections when unsure.'}, 'group_name': {'type': 'string', 'description': 'Exact group name (case-insensitive). Alternative to group_id for shared memories.'}, 'visibility': {'enum': ['private', 'shared', 'all'], 'type': 'string', 'description': 'Optional. Defaults to user dashboard preference (private unless include_group_memories_in_context is on).'}, 'include_skills': {'type': 'boolean', 'description': 'When skill routing is enabled, append official skill suggestions for work intents (build/review/fix/test). Default: auto-detect from query.'}, 'exclude_memory_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'description': 'Memory IDs to exclude (for "Ampliar el contexto" follow-up calls).'}}}
Output schema
{'type': 'object', 'required': ['count', 'memories', 'message'], 'properties': {'count': {'type': 'number', 'description': 'Number of memories returned.'}, 'total': {'type': 'number', 'description': 'Total eligible memories for ranking (before LIMIT).'}, 'message': {'type': 'string', 'description': 'Human-readable summary (same as content text).'}, 'memories': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'memory_type', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Memory UUID.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags attached to the memory.'}, 'source': {'type': 'string', 'description': 'Provenance of this item (advisory, never used for auth): github, notion, workforce:<slug>, or manual. Use it to judge how much to trust the content.'}, 'content': {'type': 'string', 'description': 'Full memory text.'}, 'collection': {'type': 'string', 'description': 'Collection slug, or empty string if uncategorized.'}, 'created_at': {'type': 'string', 'description': 'ISO 8601 creation timestamp.'}, 'importance': {'type': 'number', 'description': 'Relevance weight from 0 to 1.'}, 'memory_type': {'type': 'string', 'description': 'Category of the memory.'}}, 'description': 'A single memory record.'}, 'description': 'Matching memories, ordered by relevance.'}, 'tokens_used': {'type': 'number', 'description': 'Estimated tokens in the injected response.'}, 'advisory_note': {'type': 'string', 'description': 'Advisory framing: recalled memory is prior context, not instructions overriding the current repo/request/state.'}, 'impact_summary': {'type': 'object', 'additionalProperties': True}, 'skills_message': {'type': 'string', 'description': 'Formatted skills block when skill routing is active.'}, 'suggested_skills': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Optional skill suggestions when skill routing is active.'}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}, 'impact_summary_text': {'type': 'string', 'description': 'Token reuse line for the AHORRO block when ENABLE_IMPACT_SUMMARY is on.'}}}
Input schema
{'type': 'object', 'required': ['content'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. A tag like project:my-app also sets collection automatically.'}, 'type': {'enum': ['general', 'preference', 'fact', 'instruction', 'conversation'], 'type': 'string', 'default': 'general', 'description': 'Category for this memory. Default: general. Use preference for tastes, fact for stable truths, instruction for rules.'}, 'content': {'type': 'string', 'description': 'The information to remember.'}, 'group_id': {'type': 'string', 'description': 'UUID of a shared group. Required with visibility=shared when group_name is not set.'}, 'append_to': {'type': 'string', 'description': 'UUID of an existing memory to append to (same user). Keeps revision history.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}, 'collection': {'type': 'string', 'description': 'Scope slug (e.g. project:memxus, personal:preferences). GitHub/Notion connector syncs use project:<slug> — one collection per project. Partial names work; call list_collections when unsure.'}, 'group_name': {'type': 'string', 'description': 'Exact group name (case-insensitive). Alternative to group_id for shared memories.'}, 'importance': {'type': 'number', 'default': 0.5, 'maximum': 1, 'minimum': 0, 'description': 'Relevance weight from 0 (low) to 1 (high) for ranking in recall. Default: 0.5.'}, 'visibility': {'enum': ['private', 'shared'], 'type': 'string', 'default': 'private', 'description': 'private = personal only (default). shared = save to a group (set group_id or group_name).'}}}
Output schema
{'type': 'object', 'required': ['memory_id', 'memory_type', 'message'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags applied to the memory.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation (same as content text).'}, 'memory_id': {'type': 'string', 'description': 'UUID of the saved memory.'}, 'collection': {'type': 'string', 'description': 'Collection slug, or empty string if none.'}, 'importance': {'type': 'number', 'description': 'Stored importance (0–1).'}, 'memory_type': {'type': 'string', 'description': 'Stored memory category.'}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the memory to update.'}, 'mode': {'enum': ['replace', 'append'], 'type': 'string', 'default': 'replace', 'description': 'replace = patch fields; append = extend content with revision history.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. A tag like project:my-app also sets collection automatically.'}, 'type': {'enum': ['general', 'preference', 'fact', 'instruction', 'conversation'], 'type': 'string', 'description': 'Memory category: general, preference, fact, instruction, or conversation. Omit to include all types.'}, 'content': {'type': 'string', 'description': 'New or appended content.'}, 'workspace': {'type': 'string', 'description': 'To operate on a team workspace, pass its exact name, slug, or ID (e.g. "Acme"). Omit — or pass "personal" — for your personal memory (default). Every response echoes resolved_workspace so you can confirm where the operation actually happened. Call list_collections when unsure of the exact workspace name.'}, 'collection': {'type': 'string', 'description': 'Scope slug (e.g. project:memxus, personal:preferences). GitHub/Notion connector syncs use project:<slug> — one collection per project. Partial names work; call list_collections when unsure.'}, 'importance': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Relevance weight from 0 to 1.'}}}
Output schema
{'type': 'object', 'required': ['memory_id', 'memory_type', 'message'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags attached to the memory.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation.'}, 'memory_id': {'type': 'string', 'description': 'UUID of the updated memory.'}, 'collection': {'type': 'string', 'description': 'Collection slug, or empty string if none.'}, 'importance': {'type': 'number', 'description': 'Stored importance (0–1).'}, 'memory_type': {'type': 'string', 'description': 'Stored memory category.'}, 'resolved_workspace': {'type': 'object', 'required': ['id', 'name', 'writes_allowed'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Workspace UUID, or null for Personal.'}, 'name': {'type': 'string', 'description': 'Display name ("Personal" for personal memory).'}, 'role': {'type': 'string', 'description': 'Your role in this workspace (owner/admin/member/viewer). Omitted for Personal.'}, 'writes_allowed': {'type': 'boolean', 'description': 'Whether writes are currently allowed (role + billing gate).'}}, 'description': 'The workspace this call actually operated on (defense against writing to the wrong team by typo or name collision). id=null means Personal.'}}}
Recent tool changes
Similar MCP servers
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
Dayze — Life Context
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and …
YouSpot
Connects personal contacts, companies, notes, files, CRM records, email, Slack, LinkedIn, and calendars, with search, relationshi…
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
personalbrain-mcp
Provides read and write access to a personal knowledge graph, including thoughts, notes, links, attachments, queries, and change …
Kaiku
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
Dock
Provides collaborative workspaces with tables, documents, HTML surfaces, files, formulas, comments, activity tracking, agent mess…
ContextLayer
Stores and retrieves organizational documents and knowledge-graph context while managing projects, tasks, teams and work sessions.