Convert AI coding CLI sessions between Codex, Claude Code, Pi, OpenCode, Devin, Factory, Windsurf Cascade, and Grok Build. SDK, CLI, MCP chat recall, and trace export for fine-tuning.
UniSessions MCP demonstrates solid tool definitions with comprehensive parameter schemas and detailed descriptions. All 5 tools are explicitly registered with proper JSON Schema input types and descriptions. Tool names follow verb-noun conventions (list_, index_, refresh_, search_). Parameter descriptions are generally thorough (72-200+ chars average), explaining format, constraints, and use cases. Output schemas are documented in descriptions. However, there are notable gaps: no error handling guidance, no output schema formal documentation, missing tool annotations (readOnlyHint/destructiveHint), and the search_chats/search_sessions tools are complex with many optional parameters that could benefit from grouping or sub-tools. Security considerations around session data access are not documented.
Report indexed, missing, stale, and deleted chat index state without parsing sessions.
List known chat sessions, optionally filtered to a project path.
Parse sessions into the local FTS index so later recall is fast.
Search chat text across one, many, or all sessions. Returns a structured response with search_metadata (total_matches, deduplicated, sessions_searched, messages_searched, truncated) and a results array ranked by relevance score. Duplicate messages across compaction cycles are collapsed to a single hit with a duplicate_count field.
Find which sessions are relevant to a topic, not individual messages. Returns a list of sessions sorted by match_count (most matches first), each with top_snippets showing the first few matching text excerpts. Useful for discovering which sessions to dive into with search_chats.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk levels. search_chats and search_sessions are READ_ONLY but this is not declared to clients; refresh_chats_index is WRITE but lacks destructive/side-effect annotation.
No error handling or recovery guidance. Tools do not document what happens on failure (missing sessions, permission denied, index corruption, stale data). LLM has no recovery path if a call fails.
search_chats and search_sessions have 20+ optional parameters each. Parameter complexity is high; many are mutually exclusive or dependent (query vs keywords vs regex, stale_policy with max_refresh_*). These could benefit from grouping into sub-objects or splitting into simpler tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Output schemas not formally documented in code. Descriptions mention 'structured response with search_metadata' and 'list of sessions' but no JSON Schema definition is provided for return types. LLMs cannot validate expected fields.
Parameter naming inconsistency: 'cwd' (working directory) is used as a filter, but the meaning of 'cwd_match' (exact/prefix/any) may not be immediately clear to LLMs without extra context. Consider renaming to 'cwd_match_mode' for clarity.
No security documentation: no mention of session data classification, access controls, whether sensitive data (code, API keys, credentials) in session exports is masked, or audit logging. Sessions may contain sensitive conversational data.