Palim MCP
Palim is a hosted MCP memory server that stores sessions, decisions, and memories explicitly saved by agents, making them searchable across connected AI clients like ChatGPT, Claude, and Cursor. It provides cross-tool persistent context with EU hosting and keyword search capabilities.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.usepalim.com/mcpWhat its tools do
11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Save sessions and decisions for persistent context
- Search saved memories across multiple AI clients
- Continue Claude chats in Cursor with shared context
- Sync ChatGPT context with Claude
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- palim 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 11 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- 4 advertised
{
"tools": {},
"prompts": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
11 advertised
palim_resume
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.
{
"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."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Resume",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}palim_checkpoint
Call after connecting AND again after each meaningful chunk of work. Claude Code: reuse claude-code-<client session id>.
{
"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."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Checkpoint",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}palim_save_context
Lightweight checkpoint: self-contained handoff, no transcript. Reuse session_id in this chat. Proactive after results and decisions, not only once.
{
"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."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Save context",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}palim_save_session
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.
{
"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."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Save session",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}palim_get_context
Get formatted context for a specific topic by searching and retrieving relevant sessions.
{
"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)"
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Get context",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}palim_get_brain
Distilled knowledge profile. No args: recent topic index (capped). With topic: full document. Pass limit for a larger or full 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."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Get brain",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}palim_search
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.
{
"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": "Keyword 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.)."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Search",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}palim_add_memory
Store a memory, fact, decision, or preference for later retrieval.
{
"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"
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Add memory",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}palim_delete_memory
Permanently delete one stored memory by ID. Use for user-requested cleanup or deletion; this cannot be undone.
{
"type": "object",
"required": [
"memory_id"
],
"properties": {
"memory_id": {
"type": "string",
"description": "ID of the memory to permanently delete"
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Delete memory",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}palim_delete_session
Delete a chat session. Soft delete by default (reversible). Use hard_delete=true for permanent deletion.
{
"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)."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Delete session",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}palim_help
Show an overview of all available Palim tools and usage instructions.
{
"type": "object",
"required": [],
"properties": {
"category": {
"enum": [
"all",
"sessions",
"search",
"memory",
"setup",
"encryption"
],
"type": "string",
"description": "Filter by category. Default: all."
}
}
}{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Human-readable tool result text."
}
},
"additionalProperties": true
}{
"title": "Help",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
4 advertised
resume_and_continue — Resume last thread
Start a new chat by loading the latest Palim handoff and continuing that work without asking the user to summarise.
- project
- Optional project name to prefer when multiple recent threads exist.
checkpoint_chat — Checkpoint current chat
Save a lightweight palim_save_context handoff for the current conversation so another client can continue.
- session_id
- Stable chat id to reuse across checkpoints in this conversation.
- project
- Optional project tag for the checkpoint.
search_past_work — Search past work
Find prior decisions and sessions by topic and/or date range, then ground the answer in Palim results.
- query
- Topic or keywords to search (e.g. "auth flow", "Smithery"). (required)
- date_from
- Optional start date YYYY-MM-DD for date-range search.
- date_to
- Optional end date YYYY-MM-DD for date-range search.
save_durable_memory — Save durable memory
Store a long-lived preference, fact, or standing decision with palim_add_memory (not a session transcript).
- content
- The durable fact or preference to remember. (required)
- tags
- Optional comma-separated tags.
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1640 ms
- 95th percentile latency
- 1640 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1640 ms · metadata changed · 11 tool(s), 4 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http palim-mcp https://api.usepalim.com/mcpCodex
codex mcp add palim-mcp --url https://api.usepalim.com/mcpCursor
{
"mcpServers": {
"palim-mcp": {
"url": "https://api.usepalim.com/mcp"
}
}
}Cline
{
"mcpServers": {
"palim-mcp": {
"type": "streamableHttp",
"url": "https://api.usepalim.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"palim-mcp": {
"type": "http",
"url": "https://api.usepalim.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http palim-mcp https://api.usepalim.com/mcpClaude Desktop
https://api.usepalim.com/mcpWindsurf
{
"mcpServers": {
"palim-mcp": {
"serverUrl": "https://api.usepalim.com/mcp"
}
}
}Let your agent find its tools
Find servers like Palim MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.