# Palim (remote · api.usepalim.com)

Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.

- Trust score: 81/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-12

## Components

- remote · `api.usepalim.com`: 81/100 (this document), [markdown](https://verifymcp.io/servers/joleschmidt-palim/api.md), [page](https://verifymcp.io/servers/joleschmidt-palim/api)

## Channel facts

- Endpoint: `https://api.usepalim.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-12.

- **Endpoint Security**: 89/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 85/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5777 tokens (~128/item across 45 items; 45 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http joleschmidt-palim https://api.usepalim.com/mcp
```

### Codex

```toml
[mcp_servers.joleschmidt-palim]
url = "https://api.usepalim.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "joleschmidt-palim": {
      "type": "remote",
      "url": "https://api.usepalim.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add joleschmidt-palim --url https://api.usepalim.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  joleschmidt-palim:
    url: "https://api.usepalim.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "joleschmidt-palim": {
      "type": "http",
      "url": "https://api.usepalim.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-12 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-11 (score 80, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-10 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-08 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-07 (score 72, +5)

- [security] The server changed its declared name: cortex-mcp → palim
- [security] Tool “palim_delete_memory” is now declared destructive
- [security] Tool “palim_delete_session” is now declared destructive
- [security] Tool “palim_delete_user_rule” is now declared destructive
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] Tool “palim_add_memory” now declares an output schema
- [functional improvement] Tool “palim_add_user_rule” now declares an output schema
- [functional improvement] Tool “palim_backfill_blind_index” now declares an output schema
- [functional improvement] Tool “palim_backfill_brain” now declares an output schema
- [functional improvement] Tool “palim_browse_sessions” now declares an output schema
- [functional improvement] Tool “palim_clean_session_tags” now declares an output schema
- [functional improvement] Tool “palim_create_connection_url” now declares an output schema
- [functional improvement] Tool “palim_create_summary” now declares an output schema
- [functional improvement] Tool “palim_delete_memory” now declares an output schema
- [functional improvement] Tool “palim_delete_session” now declares an output schema
- [functional improvement] Tool “palim_delete_user_rule” now declares an output schema
- [functional improvement] Tool “palim_export_brain” now declares an output schema
- [functional improvement] Tool “palim_export_session” now declares an output schema
- [functional improvement] Tool “palim_find_similar” now declares an output schema
- [functional improvement] Tool “palim_get_brain” now declares an output schema
- [functional improvement] Tool “palim_get_context” now declares an output schema
- [functional improvement] Tool “palim_get_session” now declares an output schema
- [functional improvement] Tool “palim_get_sessions” now declares an output schema
- [functional improvement] Tool “palim_get_stats” now declares an output schema
- [functional improvement] Tool “palim_get_summary” now declares an output schema
- [functional improvement] Tool “palim_get_user_context” now declares an output schema
- [functional improvement] Tool “palim_get_user_profile” now declares an output schema
- [functional improvement] Tool “palim_help” now declares an output schema
- [functional improvement] Tool “palim_list_sessions” now declares an output schema
- [functional improvement] Tool “palim_list_summaries” now declares an output schema
- [functional improvement] Tool “palim_list_user_rules” now declares an output schema
- [functional improvement] Tool “palim_login” now declares an output schema
- [functional improvement] Tool “palim_logout” now declares an output schema
- [functional improvement] Tool “palim_migrate_encryption” now declares an output schema
- [functional improvement] Tool “palim_register” now declares an output schema
- [functional improvement] Tool “palim_repair_brain_hooks” now declares an output schema
- [functional improvement] Tool “palim_resume” now declares an output schema
- [functional improvement] Tool “palim_save_context” now declares an output schema
- [functional improvement] Tool “palim_save_session” now declares an output schema
- [functional improvement] Tool “palim_search” now declares an output schema
- [functional improvement] Tool “palim_search_by_date_range” now declares an output schema
- [functional improvement] Tool “palim_search_memories” now declares an output schema
- [functional improvement] Tool “palim_set_user_context” now declares an output schema
- [functional improvement] Tool “palim_show_session” now declares an output schema
- [functional improvement] Tool “palim_update_brain_topic” now declares an output schema
- [functional improvement] Tool “palim_update_memory” now declares an output schema
- [functional improvement] Tool “palim_update_session_metadata” now declares an output schema
- [functional improvement] Tool “palim_update_session_references” now declares an output schema
- [functional improvement] Tool “palim_update_user_profile” now declares an output schema
- [functional improvement] Tool “palim_update_user_rule” now declares an output schema
- [functional] The server now declares the “prompts” capability
- [functional] First check of Schema quality: 100
- [functional] First check of Tool coverage: 100
- [functional] New prompt “checkpoint_chat”
- [functional] New prompt “save_durable_memory”
- [functional] New prompt “search_past_work”
- [functional] New prompt “resume_and_continue”
- [cosmetic] “palim_backfill_brain” added an optional parameter “limit”
- [cosmetic] “palim_export_brain” added an optional parameter “include_frontmatter”
- [cosmetic] “palim_get_stats” added an optional parameter “days”
- [cosmetic] “palim_get_user_context” added an optional parameter “format”
- [cosmetic] “palim_get_user_profile” added an optional parameter “fields”
- [cosmetic] “palim_list_user_rules” added an optional parameter “include_inactive”
- [cosmetic] “palim_update_user_rule” reworded the description of “is_active”
- [cosmetic] “palim_update_user_rule” reworded the description of “sort_order”
- [cosmetic] “palim_update_user_rule” reworded the description of “trigger_tags”

### 2026-08-06 (score 67)

First indexed and scored.

## MCP tools (45)

### `palim_resume` (~238 tokens)

Continue where the user left off. Call this as the FIRST action in a new chat, with no arguments, before answering — it returns the most recently updated Palim thread already formatted as a handoff (goal, state, decisions, open items), the automatically recorded last turn where one exists, and a short list of other recent threads. Use it instead of asking the user to summarise a previous chat, and instead of palim_get_context when there is no specific topic to search for. Short threads are returned too: brevity is not irrelevance. If the returned thread turns out to be unrelated to what the user actually asks, ignore it silently.

Input parameters:

- `include_messages` (boolean): Optional: append the tail of the transcript when the thread has stored messages. Default false.
- `project` (string): Optional: only consider threads belonging to this project.
- `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.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_save_context` (~586 tokens)

Default lightweight Palim checkpoint. Save a self-contained summary of the current chat so another AI tool can continue with the same knowledge. Use proactively after every substantial result, decision, or change of direction; do not wait for the user to ask. This does NOT require or store the message transcript. Reuse session_id from the previous checkpoint in this chat so the same summary is updated instead of creating another session. Use palim_save_session only when the full transcript is actually needed.

Input parameters:

- `context` (string, required): Concise but self-contained handoff: goal, relevant background, work completed, current state, constraints, and next steps. Write it so another AI can continue without the transcript.
- `continues_from` (string): Optional. session_id of the thread this chat continues, as reported by palim_resume. Keep your own new session_id; this only records the link.
- `created_at` (string): Optional chat creation date from the AI client (ISO 8601).
- `decisions_made` (array): Decisions reached in this chat.
- `key_topics` (array): Main topics covered.
- `open_items` (array): Remaining tasks or unresolved questions.
- `origin` (string): Who produced this checkpoint. Use "automation" for scheduled routines, cron jobs and capture hooks — anything saved without a human in the loop. Defaults to "human". Automated saves are counted separ…
- `project` (string): Optional project name.
- `referenced_files` (array): Relevant files or resources.
- `resolved_open_items` (array): Open items from earlier sessions on this topic that are now DONE. Quote the wording of the item (a leading fragment is enough); it is moved out of Open Items into a dated Resolved section. Use this w…
- `session_id` (string): Stable chat ID, reused for every checkpoint in this chat so the record is updated instead of duplicated. In Claude Code / Codex use `claude-code-<the client session id>` — the Stop hook keeps that sa…
- `source_urls` (array): Optional chat URL and referenced URLs.
- `status` (string): Optional lifecycle status such as laufend or abgeschlossen.
- `tags` (array): Optional search tags.
- `title` (string): Exact chat title when visible. Omit if unavailable; Palim derives a short title from context.
- `tool_source` (string, required): AI platform this chat originates from, for example codex, cursor, claude, chatgpt, gemini, perplexity, granola, or web.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_save_session` (~489 tokens)

Save or append to a chat session with messages and summary. For metadata-only changes (tags, status, project), use palim_update_session_metadata. For URL/reference updates, use palim_update_session_references. When appending to an existing session: reuse the same session_id and title, call palim_get_session first to check existing messages, then send only new messages. Always include a complete summary reflecting all conversation content. metadata.tool_source is required. If user modeling is enabled, include summary.user_insights as a structured profile patch. Extract ONLY long-term, personally meaningful information: relationships ({name, relation, expertise?, company?, preferences?}), life_phases ({label, status: active|completed|planned}), personality ({decision_style?, values?}), preferences ({likes?: string[], dislikes?: string[]}), brand_preferences ({category: string[]}), interests (real hobbies/passions, NOT session topics), goals (life/career goals, NOT session todos), decisions (strategic choices, NOT trivial session decisions), employer, role, location. ANTI-SLOP: Do NOT include filenames, paths, branches, commit hashes, session-specific tasks, generic AI phrases, environment variables, or any info that would be irrelevant in 3 months. Only include fields with clear signals – do not guess.

Input parameters:

- `created_at` (string): Optional. Chat creation date from the AI client. ISO 8601 (YYYY-MM-DD or full datetime). Used for new sessions; omit for server timestamp. Pass when client provides it (e.g. Granola meeting date).
- `messages` (array, required): Chat messages to save. Copy role and content directly from the conversation without modification. When appending, include only messages not yet saved.
- `metadata` (object): Session metadata. tool_source is required.
- `overwrite` (boolean): Replace all existing messages instead of appending. Default: false.
- `session_id` (string): Session identifier. Reuse from previous palim_save_session calls in this conversation. For new sessions: extract from the chat URL or auto-generate a UUID.
- `summary` (object): Session summary covering the full conversation. All fields required; arrays may be empty if not applicable.
- `title` (string, required): Session title. Reuse from previous saves in this conversation. For new sessions: use the exact chat title from the sidebar or header.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_create_connection_url` (~75 tokens)

Create a URL-based connection for the current user. Returns a full MCP server URL with a short token (e.g. https://.../mcp?token=ctxu_...), plus usage instructions for common clients.

Input parameters:

- `name` (string): Optional display name for the connection token (for later management/analytics).

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_search` (~160 tokens)

Search across all saved sessions. Supports full-text search via query, metadata filtering via tags/project/status/tool_source, or both. Omit query for tags-only filtering.

Input parameters:

- `limit` (number): Maximum number of results (default: 5)
- `project` (string): Optional filter by project
- `query` (string): Full-text search query. Omit for tags-only filtering.
- `status` (string): Optional filter by metadata.status (e.g. "laufend", "abgeschlossen", "referenz", "archiviert").
- `tags` (array): Filter by metadata tags (match any).
- `tool_source` (string): Optional explicit filter by tool source (cursor, claude, chatgpt, web, etc.).

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_context` (~103 tokens)

Get formatted context for a specific topic by searching and retrieving relevant sessions.

Input parameters:

- `max_sessions` (number): Maximum number of sessions to include (default: 3)
- `project` (string): Optional filter by project
- `status` (string): Optional filter by metadata.status (e.g. "laufend", "abgeschlossen").
- `tags` (array): Filter by metadata tags (match any).
- `topic` (string, required): Topic to get context for.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_session` (~36 tokens)

Retrieve a complete chat session by ID, including all messages and summary.

Input parameters:

- `session_id` (string, required): Session ID to retrieve

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_sessions` (~124 tokens)

Retrieve multiple chat sessions by ID in one call. Use after palim_search or palim_search_by_date_range when you need full content for several sessions (e.g. "what did I do last week?"). Prefer this over multiple palim_get_session calls.

Input parameters:

- `include_summary` (boolean): Include session summary for each (default: true)
- `max_messages_per_session` (number): Limit messages per session to avoid token overflow (default: 50). Uses most recent messages.
- `session_ids` (array, required): Session IDs to retrieve (max 15)

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_show_session` (~124 tokens)

Display a chat session in a readable message-by-message format. Accepts session_id (slug) or UUID. For chats with >20 messages, prompts for display count unless max_messages is set.

Input parameters:

- `direction` (string): Show messages from start or end of the chat. Default: from_start.
- `include_summary` (boolean): Include session summary at the top. Default: false.
- `max_messages` (number): Maximum number of messages to show (max: 500).
- `session_id` (string, required): Session ID (slug or UUID) to display

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_summary` (~35 tokens)

Get only the summary for a session without loading messages.

Input parameters:

- `session_id` (string, required): Session ID to get summary for

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_list_summaries` (~75 tokens)

List saved session summaries with optional filters. Returns summaries without full message content.

Input parameters:

- `limit` (number): Maximum number of summaries to return (default: 50, max: 200)
- `tool_source` (string): Optional: Filter by tool source (cursor, claude, chatgpt, web)

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_add_memory` (~79 tokens)

Store a memory, fact, decision, or preference for later retrieval.

Input parameters:

- `content` (string, required): Content of the memory
- `metadata` (object): Additional metadata
- `source_session_id` (string): Optional reference to source session
- `tags` (array): Tags for categorization
- `type` (string, required): Type of memory

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_search_memories` (~71 tokens)

Search through stored memories by query, type, or tags.

Input parameters:

- `limit` (number): Maximum number of results (default: 10)
- `query` (string, required): Search query
- `tags` (array): Optional filter by tags
- `type` (string): Optional filter by memory type

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_update_memory` (~108 tokens)

Update one stored memory by ID. At least one editable field is required; contents, tags, and metadata remain encrypted.

Input parameters:

- `content` (string): Replacement memory content
- `memory_id` (string, required): ID of the memory to update
- `metadata` (object): Replacement metadata object
- `source_session_id` (string|null): Replacement source session ID; pass null to remove the link
- `tags` (array): Replacement tags
- `type` (string): Replacement memory type

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_delete_memory` (~48 tokens)

Permanently delete one stored memory by ID. Use for user-requested cleanup or deletion; this cannot be undone.

Input parameters:

- `memory_id` (string, required): ID of the memory to permanently delete

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_set_user_context` (~40 tokens)

Set the user-specific context block used for personalized AI guidance.

Input parameters:

- `content` (string, required): User context text (bio, current projects, preferences).

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_user_context` (~32 tokens)

Get the current user-specific context block.

Input parameters:

- `format` (string): Optional output format. Default text.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_brain` (~104 tokens)

Get the distilled knowledge profile ("Brain"). Without arguments returns the brain index: one line per topic (title, slug, hook, entry count) — cheap to load at conversation start. Pass topic (slug or name) to load one full topic document (decisions, open items, session log). Topics are distilled automatically from saved sessions.

Input parameters:

- `topic` (string): Optional topic slug or name. When set, returns the full topic document instead of the index.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_export_brain` (~107 tokens)

Export the entire distilled knowledge profile as an Obsidian-ready markdown vault: an INDEX.md with wiki-links plus one markdown document per topic (with frontmatter), each preceded by a "<!-- file: brain/<slug>.md -->" marker. Use when the user wants to download, back up, or sync their brain into Obsidian, a git repo, or local files.

Input parameters:

- `include_frontmatter` (boolean): Include YAML frontmatter on topic files. Default true.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_update_brain_topic` (~133 tokens)

Edit a brain topic: replace its markdown content, rename it, update its index hook, or delete it. Use when the user wants to correct, clean up, or remove distilled knowledge. Keep the section structure ("## Decisions", "## Open Items", "## Session Log") when replacing content.

Input parameters:

- `content` (string): Full replacement markdown content.
- `delete` (boolean): Delete the topic entirely.
- `hook` (string): New one-line index summary.
- `slug` (string, required): Topic slug (see palim_get_brain index).
- `title` (string): New topic title.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_backfill_brain` (~111 tokens)

One-time catch-up: distill sessions saved before the Brain existed (or before it was on) into the knowledge profile, using each session's already-stored summary. Safe to run more than once — already-distilled sessions are deduped, not duplicated. Use when a user with existing saved sessions asks why palim_get_brain / the dashboard Brain tab looks empty despite having saved sessions.

Input parameters:

- `limit` (number): Optional max number of historical sessions to distill in this run.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_add_user_rule` (~97 tokens)

Add a user rule (workflow/delegation/hints) for personalized guidance.

Input parameters:

- `content` (string, required): Rule text the AI should follow.
- `is_active` (boolean): Whether this rule is active. Default true.
- `name` (string, required): Rule title.
- `sort_order` (number): Rule ordering. Lower appears first.
- `trigger_tags` (array): Optional tags to apply this rule only for matching topics.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_list_user_rules` (~38 tokens)

List all user rules for the current user.

Input parameters:

- `include_inactive` (boolean): Include inactive rules. Default false (active only).

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_update_user_rule` (~95 tokens)

Update an existing user rule by rule_id.

Input parameters:

- `content` (string): Updated rule text.
- `is_active` (boolean): Whether this rule is active.
- `name` (string): Updated rule title.
- `rule_id` (string, required): Rule identifier.
- `sort_order` (number): Rule ordering. Lower appears first.
- `trigger_tags` (array): Optional tags to apply this rule only for matching topics.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_delete_user_rule` (~29 tokens)

Delete a user rule by rule_id.

Input parameters:

- `rule_id` (string, required): Rule identifier.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_user_profile` (~40 tokens)

Get the inferred user profile (if initialized).

Input parameters:

- `fields` (array): Optional profile field names to return. Omit for the full profile.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_update_user_profile` (~206 tokens)

Update profile settings (consent/refinement) and optional profile patch. Use replace_fields to overwrite arrays/objects instead of merging (e.g. clean up interests, update location). Use delete_fields to remove obsolete fields entirely.

Input parameters:

- `consent_given` (boolean): Explicit consent for profile inference from chats.
- `delete_fields` (array): Top-level profile fields to DELETE entirely. Example: ["domains", "personal"] — use to remove legacy/obsolete fields.
- `profile_patch` (object): Profile patch to merge into current profile. By default arrays are merged (deduplicated). Use replace_fields to overwrite specific fields instead.
- `refinement_enabled` (boolean): Enable/disable ongoing profile refinement.
- `replace_fields` (array): Top-level profile fields to REPLACE instead of merge. The value from profile_patch overwrites completely. Example: ["interests", "goals", "location"] — use to clean up arrays, correct outdated info,…

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_delete_session` (~66 tokens)

Delete a chat session. Soft delete by default (reversible). Use hard_delete=true for permanent deletion.

Input parameters:

- `hard_delete` (boolean): If true, permanently deletes all data. Default: false (soft delete).
- `session_id` (string, required): The session ID to delete

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_register` (~64 tokens)

Register a new Palim account and receive an API key. Does not require authentication.

Input parameters:

- `email` (string, required): User email address
- `password` (string, required): User password (minimum 8 characters)
- `password_confirm` (string, required): Password confirmation (must match password)

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_login` (~44 tokens)

Login with existing credentials and create a new API key. Does not require authentication.

Input parameters:

- `email` (string, required): User email address
- `password` (string, required): User password

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_logout` (~82 tokens)

Sign out from Palim. Deletes API keys and revokes OAuth sessions.

Input parameters:

- `delete_all_api_keys` (boolean): If true, deletes all API keys for your account. If false, only deletes the current API key. Default: true
- `revoke_oauth_sessions` (boolean): If true, revokes all OAuth sessions/tokens. Default: true

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_browse_sessions` (~70 tokens)

Browse sessions (machine-readable JSON). For UI/browser. Use palim_list_sessions for human-readable output.

Input parameters:

- `limit` (number): Max sessions (default: 100)
- `project` (string): Optional filter by project
- `tool_source` (string): Optional filter by tool source

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_list_sessions` (~145 tokens)

List saved chat sessions with optional filters (tool_source, tags, status, date range).

Input parameters:

- `date_from` (string): Optional: Start date (ISO format YYYY-MM-DD) to filter sessions
- `date_to` (string): Optional: End date (ISO format YYYY-MM-DD) to filter sessions
- `limit` (number): Maximum number of sessions to return (default: 20, max: 100)
- `status` (string): Filter by metadata.status.
- `tags` (array): Filter by metadata tags (match any).
- `tool_source` (string): Optional: Filter by tool source (cursor, claude, chatgpt, web)

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_get_stats` (~47 tokens)

Get statistics about saved chats: total sessions, sessions by tool, recent activity.

Input parameters:

- `days` (number): Optional recent-activity window in days. Omit for the default overview.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_help` (~36 tokens)

Show an overview of all available Palim tools and usage instructions.

Input parameters:

- `category` (string): Filter by category. Default: all.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_update_session_metadata` (~144 tokens)

Update metadata of an existing session (title, tags, status, project, created_at, custom fields). Use when user says "change date of chat X to Y". For URL/reference updates, use palim_update_session_references instead.

Input parameters:

- `created_at` (string): Optional: Override session creation date. ISO 8601 (YYYY-MM-DD or full datetime). Use when user says "change date of chat X to Y".
- `metadata` (object): Metadata to merge with existing values. Set individual fields to update them.
- `session_id` (string, required): Session ID to update
- `title` (string): Optional: New title for the session

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_update_session_references` (~134 tokens)

Add or update source/reference URLs for an existing session without re-saving messages. Include all distinct URLs related to the chat (chat URL, source links, inline references).

Input parameters:

- `merge` (boolean): If true (default), merge the provided URLs with existing ones (de-duplicated). If false, replace existing URLs with exactly this list.
- `session_id` (string, required): Session ID whose references/URLs should be updated
- `source_urls` (array, required): List of source/reference URLs. If merge=true (default), these will be merged with existing URLs. If merge=false, they will replace existing URLs.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_search_by_date_range` (~242 tokens)

Search sessions by date range + optional tags. Use when user mentions a time period (e.g. "letzte Woche", "last week", "dieser Monat") AND optionally a topic/project. Example: "Was habe ich letzte Woche bei Logisoft gemacht?" → date_from/date_to for last week, tags: ["logisoft"]. Faster than palim_search when time + topic are both relevant.

Input parameters:

- `date_from` (string): Start date (ISO YYYY-MM-DD). Derive from "letzte Woche", "last week", etc.
- `date_to` (string): End date (ISO YYYY-MM-DD). Derive from user time phrase.
- `limit` (number): Maximum number of results (default: 20)
- `project` (string): Optional: Filter by project
- `tags` (array): Filter by metadata tags (match any). Extract topic/project from query, e.g. "bei Logisoft" → ["logisoft"], "Cortex auth" → ["cortex","auth"].
- `tool_source` (string): Optional: Filter by tool (cursor, claude, chatgpt, web)

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_export_session` (~114 tokens)

Export a session as Markdown, JSON, or plain text. When save_to_file=true, create the file using the returned suggested_filename and content.

Input parameters:

- `format` (string, required): Export format (markdown, json, or text)
- `include_metadata` (boolean): Include metadata in export (default: true)
- `save_to_file` (boolean): Save exported content to a file. When true, create the file using the returned suggested_filename. Default: false.
- `session_id` (string, required): Session ID to export

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_create_summary` (~103 tokens)

Create a summary for a session that does not have one yet.

Input parameters:

- `decisions_made` (array): Optional: Decisions made
- `key_topics` (array): Optional: Key topics discussed
- `open_items` (array): Optional: Open tasks or items
- `referenced_files` (array): Optional: Referenced files or concepts
- `session_id` (string, required): Session ID to create summary for
- `summary_text` (string, required): Main summary text

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_find_similar` (~76 tokens)

Find sessions similar to a given session based on keyword and content similarity.

Input parameters:

- `limit` (number): Maximum number of similar sessions to return (default: 5)
- `session_id` (string, required): Reference session ID to find similar sessions to
- `tool_source` (string): Optional: Filter similar sessions by tool source

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_migrate_encryption` (~57 tokens)

Encrypt all plaintext sessions/messages/summaries using the server encryption key. Use dry_run=true to preview.

Input parameters:

- `dry_run` (boolean): If true, only preview what would be encrypted without making changes (default: true).

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_backfill_blind_index` (~146 tokens)

Populate the blind index columns (migration 024) from existing plaintext: session tag and title tokens plus brain topic slug/title/hook. Additive — plaintext columns are left untouched; completion is per field, so re-running fills only what is missing. Use dry_run=true to preview.

Input parameters:

- `dry_run` (boolean): If true, only report what would be written without making changes (default: true).
- `force` (boolean): Recompute tokens and ciphertext even where they already exist. Repairs rows whose plaintext changed after an earlier backfill (default: false).
- `scope` (string): Limit the run to one table. Omit to backfill both.

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_clean_session_tags` (~212 tokens)

Remove tag noise left by the old auto-tagger, which split open items and decisions into one tag per word (stopwords like "nach"/"dem", umlaut-stripped fragments like "lschen"). Conservative: only removes tags positively identifiable as tokenizer output and keeps anything uncertain. Use dry_run=true to review the removal list first.

Input parameters:

- `dry_run` (boolean): If true, only report what would be removed without making changes (default: true).
- `limit` (number): Cap on sessions examined. Omit to scan the whole archive.
- `max_listed` (number): How many distinct removed tags to print (default: 40). Set high (e.g. 2000) to review the complete deletion list before applying — the removal is irreversible, so the part you cannot see is the part…
- `vocabulary_threshold` (number): How many distinct sessions a bare lowercase tag must appear in before it counts as deliberate vocabulary and is kept (default: 3).

Output parameters:

- `message` (string): Human-readable tool result text.

### `palim_repair_brain_hooks` (~141 tokens)

Repair brain hooks and session-log lines that the old sentence splitter truncated mid-clause (entries ending on "inkl.", "vs." or an ordinal like "am 2."). Re-derives the full text from the source session summaries. Only ever extends an entry that is a strict prefix of the recomputed one, so hand-edited topics are left untouched. Use dry_run=true to review first.

Input parameters:

- `dry_run` (boolean): If true, only report what would be repaired without making changes (default: true).
- `limit` (number): Cap on sessions read for replacement text. Omit to scan the whole archive.

Output parameters:

- `message` (string): Human-readable tool result text.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/joleschmidt-palim/api#diagnostics

## Score history

- 2026-08-12: 81
- 2026-08-11: 80
- 2026-08-10: 74
- 2026-08-09: 73
- 2026-08-08: 73
- 2026-08-07: 72
- 2026-08-06: 67

## Links

- Remote endpoint: https://api.usepalim.com/mcp
- Repository: https://github.com/joleschmidt/palim-mcp-examples
- Website: https://usepalim.com/
- Changelog RSS feed: https://verifymcp.io/servers/joleschmidt-palim/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/joleschmidt-palim/api.json
- HTML version of this page: https://verifymcp.io/servers/joleschmidt-palim/api
