Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Palim API key from https://api.usepalim.com/setup (OAuth also supported in clients that use it)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Store a memory, fact, decision, or preference for later retrieval.
Type of memory
Content of the memory
Tags for categorization
Additional metadata
Optional reference to source session
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Store a memory, fact, decision, or preference for later retrieval.
| Argument | Type | Description |
|---|---|---|
| tags | array | Tags for categorization |
| type* | string | Type of memory |
| content* | string | Content of the memory |
| metadata | object | Additional metadata |
| source_session_id | string | Optional reference to source session |
{
"type": "object",
"required": [
"content",
"type"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags for categorization"
},
"type": {
"enum": [
"fact",
"decision",
"preference",
"insight",
"note"
],
"type": "string",
"description": "Type of memory"
},
"content": {
"type": "string",
"description": "Content of the memory"
},
"metadata": {
"type": "object",
"description": "Additional metadata"
},
"source_session_id": {
"type": "string",
"description": "Optional reference to source session"
}
}
}Call after connecting AND again after each meaningful chunk of work. Claude Code: reuse claude-code-<client session id>.
| Argument | Type | Description |
|---|---|---|
| tags | array | Optional search tags. |
| title | string | Chat title when visible. |
| origin | string | human (default) or automation (hooks/cron). |
| status | string | Optional status, e.g. laufend or abgeschlossen. |
| context* | string | Handoff another AI can continue from: goal, state, constraints, next steps. |
| project | string | Optional project name. |
| created_at | string | Optional ISO 8601 chat date from the client. |
| key_topics | array | Main topics. |
| open_items | array | Open tasks. |
| session_id | string | Stable chat ID. Reuse it so checkpoints update one row. Claude Code/Codex: claude-code-<client session id>. |
Permanently delete one stored memory by ID. Use for user-requested cleanup or deletion; this cannot be undone.
| Argument | Type | Description |
|---|---|---|
| memory_id* | string | ID of the memory to permanently delete |
{
"type": "object",
"required": [
"memory_id"
],
"properties": {
"memory_id": {
"type": "string",
"description": "ID of the memory to permanently delete"
}
}
}Delete a chat session. Soft delete by default (reversible). Use hard_delete=true for permanent deletion.
| Argument | Type | Description |
|---|---|---|
| session_id* | string | The session ID to delete |
| hard_delete | boolean | If true, permanently deletes all data. Default: false (soft delete). |
{
"type": "object",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"description": "The session ID to delete"
},
"hard_delete": {
"type": "boolean",
"default": false,
"description": "If true, permanently deletes all data. Default: false (soft delete)."
}
}
}Distilled knowledge profile. No args: recent topic index (capped). With topic: full document. Pass limit for a larger or full index.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max topics in the index (most recently updated first). Default 20 when omitted. Pass 0 for every topic. |
| topic | string | Optional topic slug or name. When set, returns the full topic document instead of the index. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Max topics in the index (most recently updated first). Default 20 when omitted. Pass 0 for every topic."
},
"topic": {
"type": "string",
"description": "Optional topic slug or name. When set, returns the full topic document instead of the index."
}
}
}Get formatted context for a specific topic by searching and retrieving relevant sessions.
| Argument | Type | Description |
|---|---|---|
| tags | array | Filter by metadata tags (match any). |
| topic* | string | Topic to get context for. |
| status | string | Optional filter by metadata.status (e.g. "laufend", "abgeschlossen"). |
| project | string | Optional filter by project |
| max_sessions | number | Maximum number of sessions to include (default: 3) |
{
"type": "object",
"required": [
"topic"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by metadata tags (match any)."
},
"topic": {
"type": "string",
"description": "Topic to get context for."
},
"status": {
"type": "string",
"description": "Optional filter by metadata.status (e.g. \"laufend\", \"abgeschlossen\")."
},
"project": {
"type": "string",
"description": "Optional filter by project"
},
"max_sessions": {
"type": "number",
"default": 3,
"description": "Maximum number of sessions to include (default: 3)"
}
}
}Show an overview of all available Palim tools and usage instructions.
| Argument | Type | Description |
|---|---|---|
| category | string | Filter by category. Default: all. |
{
"type": "object",
"required": [],
"properties": {
"category": {
"enum": [
"all",
"sessions",
"search",
"memory",
"setup",
"encryption"
],
"type": "string",
"description": "Filter by category. Default: all."
}
}
}Continue the user's most recent Palim thread. Call first in a new chat, no args. Ignore the result if it is unrelated. Project filter is case-insensitive and returns the most recently updated match.
| Argument | Type | Description |
|---|---|---|
| project | string | Optional: only consider threads belonging to this project (case-insensitive; Logisoft ≡ logisoft). |
| tool_source | string | Optional: only consider threads from one client (cursor, claude, codex, chatgpt, ...). |
| within_hours | number | Optional: ignore threads older than this many hours. Omit to always return the latest thread. |
| include_messages | boolean | Optional: append the tail of the transcript when the thread has stored messages. Default false. |
{
"type": "object",
"required": [],
"properties": {
"project": {
"type": "string",
"description": "Optional: only consider threads belonging to this project (case-insensitive; Logisoft ≡ logisoft)."
},
"tool_source": {
"type": "string",
"description": "Optional: only consider threads from one client (cursor, claude, codex, chatgpt, ...)."
},
"within_hours": {
"type": "number",
"description": "Optional: ignore threads older than this many hours. Omit to always return the latest thread."
},
"include_messages": {
"type": "boolean",
"description": "Optional: append the tail of the transcript when the thread has stored messages. Default false."
}
}
}Lightweight checkpoint: self-contained handoff, no transcript. Reuse session_id in this chat. Proactive after results and decisions, not only once.
| Argument | Type | Description |
|---|---|---|
| tags | array | Optional search tags. |
| title | string | Chat title when visible. |
| origin | string | human (default) or automation (hooks/cron). |
| status | string | Optional status, e.g. laufend or abgeschlossen. |
| context* | string | Handoff another AI can continue from: goal, state, constraints, next steps. |
| project | string | Optional project name. |
| created_at | string | Optional ISO 8601 chat date from the client. |
| key_topics | array | Main topics. |
| open_items | array | Open tasks. |
| session_id | string | Stable chat ID. Reuse it so checkpoints update one row. Claude Code/Codex: claude-code-<client session id>. |
Save or append a full chat transcript (messages + summary). Exclude children's personal data under 16/higher consent age, HIPAA PHI, PCI payment card data, and adult content; request redaction before saving. Prefer palim_save_context for compact handoffs. For metadata-only or URL updates use palim_update_session_metadata / palim_update_session_references. When appending: reuse session_id + title, fetch existing messages first, send only new ones. Always pass a complete summary and metadata.tool_source.
| Argument | Type | Description |
|---|---|---|
| title* | string | Session title. Reuse across saves; else the exact chat title from the client UI. |
| summary | object | Full-conversation summary. Required arrays may be empty. |
| messages* | array | Messages to save (role + content). When appending, only unsaved messages. |
| metadata | object | Session metadata. tool_source is required. |
| overwrite | boolean | Replace all existing messages instead of appending. Default: false. |
| created_at | string | Optional ISO 8601 creation date from the AI client (new sessions only). |
| session_id | string |
Search saved sessions and memories. Query matches session text or memory content/id. Supports metadata filtering via tags/project/status/tool_source. Omit query for tags-only or project-only session filtering. Project match is case-insensitive.
| Argument | Type | Description |
|---|---|---|
| tags | array | Filter by metadata tags (match any). |
| limit | number | Maximum number of results (default: 5) |
| query | string | Full-text search query. Omit for tags-only or project-only filtering. |
| status | string | Optional filter by metadata.status (e.g. "laufend", "abgeschlossen", "referenz", "archiviert"). |
| project | string | Optional case-insensitive project filter (Logisoft ≡ logisoft). Allowed without query or tags. |
| tool_source | string | Optional explicit filter by tool source (cursor, claude, chatgpt, web, etc.). |
{
"type": "object",
"required": [],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by metadata tags (match any)."
},
"limit": {
"type": "number",
"default": 5,
"description": "Maximum number of results (default: 5)"
},
"query": {
"type": "string",
"description": "Full-text search query. Omit for tags-only or project-only filtering."
},
"status": {
"type": "string",
"description": "Optional filter by metadata.status (e.g. \"laufend\", \"abgeschlossen\", \"referenz\", \"archiviert\")."
},
"project": {
"type": "string",
"description": "Optional case-insensitive project filter (Logisoft ≡ logisoft). Allowed without query or tags."
},
"tool_source": {
"type": "string",
"description": "Optional explicit filter by tool source (cursor, claude, chatgpt, web, etc.)."
}
}
}| source_urls | array | Optional URLs. |
| tool_source | string | Client: cursor, claude, chatgpt, … Optional; defaults from the MCP client name, else unknown. |
| continues_from | string | Optional session_id from palim_resume that this chat continues. |
| decisions_made | array | Decisions in this chat. |
| referenced_files | array | Relevant files. |
| resolved_open_items | array | Previously open items that are now done; quote a leading fragment. |
{
"type": "object",
"required": [
"context"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional search tags."
},
"title": {
"type": "string",
"description": "Chat title when visible."
},
"origin": {
"enum": [
"human",
"automation"
],
"type": "string",
"description": "human (default) or automation (hooks/cron)."
},
"status": {
"type": "string",
"description": "Optional status, e.g. laufend or abgeschlossen."
},
"context": {
"type": "string",
"description": "Handoff another AI can continue from: goal, state, constraints, next steps."
},
"project": {
"type": "string",
"description": "Optional project name."
},
"created_at": {
"type": "string",
"description": "Optional ISO 8601 chat date from the client."
},
"key_topics": {
"type": "array",
"items": {
"type": "string"
},
"description": "Main topics."
},
"open_items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Open tasks."
},
"session_id": {
"type": "string",
"description": "Stable chat ID. Reuse it so checkpoints update one row. Claude Code/Codex: claude-code-<client session id>."
},
"source_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional URLs."
},
"tool_source": {
"type": "string",
"description": "Client: cursor, claude, chatgpt, … Optional; defaults from the MCP client name, else unknown."
},
"continues_from": {
"type": "string",
"description": "Optional session_id from palim_resume that this chat continues."
},
"decisions_made": {
"type": "array",
"items": {
"type": "string"
},
"description": "Decisions in this chat."
},
"referenced_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relevant files."
},
"resolved_open_items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Previously open items that are now done; quote a leading fragment."
}
}
}| source_urls | array | Optional URLs. |
| tool_source | string | Client: cursor, claude, chatgpt, … Optional; defaults from the MCP client name, else unknown. |
| continues_from | string | Optional session_id from palim_resume that this chat continues. |
| decisions_made | array | Decisions in this chat. |
| referenced_files | array | Relevant files. |
| resolved_open_items | array | Previously open items that are now done; quote a leading fragment. |
{
"type": "object",
"required": [
"context"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional search tags."
},
"title": {
"type": "string",
"description": "Chat title when visible."
},
"origin": {
"enum": [
"human",
"automation"
],
"type": "string",
"description": "human (default) or automation (hooks/cron)."
},
"status": {
"type": "string",
"description": "Optional status, e.g. laufend or abgeschlossen."
},
"context": {
"type": "string",
"description": "Handoff another AI can continue from: goal, state, constraints, next steps."
},
"project": {
"type": "string",
"description": "Optional project name."
},
"created_at": {
"type": "string",
"description": "Optional ISO 8601 chat date from the client."
},
"key_topics": {
"type": "array",
"items": {
"type": "string"
},
"description": "Main topics."
},
"open_items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Open tasks."
},
"session_id": {
"type": "string",
"description": "Stable chat ID. Reuse it so checkpoints update one row. Claude Code/Codex: claude-code-<client session id>."
},
"source_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional URLs."
},
"tool_source": {
"type": "string",
"description": "Client: cursor, claude, chatgpt, … Optional; defaults from the MCP client name, else unknown."
},
"continues_from": {
"type": "string",
"description": "Optional session_id from palim_resume that this chat continues."
},
"decisions_made": {
"type": "array",
"items": {
"type": "string"
},
"description": "Decisions in this chat."
},
"referenced_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relevant files."
},
"resolved_open_items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Previously open items that are now done; quote a leading fragment."
}
}
}| Session id. Reuse across saves in this chat; else from chat URL or a new UUID. |
{
"type": "object",
"required": [
"title",
"messages"
],
"properties": {
"title": {
"type": "string",
"description": "Session title. Reuse across saves; else the exact chat title from the client UI."
},
"summary": {
"type": "object",
"required": [
"summary_text",
"key_topics",
"open_items",
"decisions_made",
"referenced_files"
],
"properties": {
"key_topics": {
"type": "array",
"items": {
"type": "string"
},
"description": "3-5 main topics discussed."
},
"open_items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Open tasks or questions remaining."
},
"summary_text": {
"type": "string",
"description": "2-5 sentence summary of the entire conversation."
},
"user_insights": {
"type": "object",
"description": "Optional long-term profile patch only (relationships, life_phases, personality, preferences, interests, goals, employer/role/location). No filenames, paths, env vars, or session todos. See docs for field shapes."
},
"decisions_made": {
"type": "array",
"items": {
"type": "string"
},
"description": "Decisions reached during the conversation."
},
"referenced_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Files, paths, or key concepts referenced."
},
"resolved_open_items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Prior open items now done (quote wording); moved into Resolved."
}
},
"description": "Full-conversation summary. Required arrays may be empty."
},
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"content"
],
"properties": {
"role": {
"enum": [
"user",
"assistant",
"system",
"model"
],
"type": "string",
"description": "Sender role. \"model\" maps to \"assistant\"."
},
"content": {
"type": "string",
"description": "Message content"
}
}
},
"description": "Messages to save (role + content). When appending, only unsaved messages."
},
"metadata": {
"type": "object",
"required": [
"tool_source"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"origin": {
"enum": [
"human",
"automation"
],
"type": "string",
"description": "Producer: automation for cron/routines without a human; default human."
},
"status": {
"type": "string",
"description": "Lifecycle: laufend | abgeschlossen | referenz | archiviert."
},
"project": {
"type": "string"
},
"source_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Related URLs (chat link, sources)."
},
"tool_source": {
"enum": [
"cursor",
"claude",
"chatgpt",
"gemini",
"perplexity",
"copilot",
"bing",
"web"
],
"type": "string",
"description": "AI platform this session originates from."
}
},
"description": "Session metadata. tool_source is required."
},
"overwrite": {
"type": "boolean",
"description": "Replace all existing messages instead of appending. Default: false."
},
"created_at": {
"type": "string",
"description": "Optional ISO 8601 creation date from the AI client (new sessions only)."
},
"session_id": {
"type": "string",
"description": "Session id. Reuse across saves in this chat; else from chat URL or a new UUID."
}
}
}