a4sx sessions

Search coding-agent sessions and load one as starting context; save your own to your library.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
94%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch_session_context' suggests web access but openWorldHint=falsein fetch_session_context

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,691Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.32% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sessions": {
      "url": "https://session-exchange.com/mcp"
    }
  }
}

Remote endpoints

https://session-exchange.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_sessions(query, scope, tags, sort, limit, ...)

Search vetted, published coding-agent sessions on a4sx (reviewed marketplace listings), or your own saved sessions with scope=library. Returns ids to use with the other tools.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Free-text search. Empty = browse."
    },
    "scope": {
      "type": "string",
      "enum": [
        "public",
        "library"
      ],
      "default": "public",
      "description": "`public`: vetted marketplace listings (no sign-in needed). `library`: your own saved sessions (needs library:read)."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 64
      },
      "maxItems": 10
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "imports",
        "rating",
        "recent"
      ],
      "default": "relevance"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10000,
      "default": 0
    },
    "harness": {
      "type": "array",
      "maxItems": 5,
      "items": {
        "type": "string",
        "enum": [
          "claude-code",
          "codex-cli",
          "gemini-cli",
          "opencode",
          "unknown"
        ]
      },
      "description": "Only sessions recorded with these harnesses (claude-code, codex-cli, gemini-cli, opencode; unknown = not identified). Only Claude Code sessions can be resumed today; the others are view & buy."
    }
  },
  "additionalProperties": false
}
🟢get_session_summary(id, source, tenant)

Describe one session before using it: what it did, outline, price, and whether you already have access. source=marketplace (default) or library.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
    },
    "source": {
      "type": "string",
      "enum": [
        "marketplace",
        "library"
      ],
      "default": "marketplace"
    },
    "tenant": {
      "type": "string",
      "maxLength": 64,
      "pattern": "^[a-z0-9-]*$",
      "description": "Owning workspace of a marketplace listing (from search results). Optional."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟡acquire_session(id, tenant, version)

Add a marketplace session you are entitled to (free, bought, or granted) to your private library. Never buys anything: for a paid listing it returns status=payment_required with the price and the listing URL.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$",
      "description": "Marketplace listing id (from search_sessions)."
    },
    "tenant": {
      "type": "string",
      "maxLength": 64,
      "pattern": "^[a-z0-9-]*$",
      "description": "Owning workspace of a marketplace listing (from search results). Optional."
    },
    "version": {
      "type": "string",
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9._-]*$",
      "default": "latest"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢fetch_session_context(id, version, max_tokens, include_tool_calls)

Load a session from your library (saved, or added with acquire_session) as starting context for this conversation, sized to max_tokens.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$",
      "description": "Library id: one of your saved sessions, or the library_id acquire_session returned for a marketplace listing."
    },
    "version": {
      "type": "string",
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9._-]*$"
    },
    "max_tokens": {
      "type": "integer",
      "minimum": 500,
      "maximum": 100000,
      "default": 8000,
      "description": "Context budget. Long sessions keep the opening request and the newest turns that fit; the middle is elided."
    },
    "include_tool_calls": {
      "type": "boolean",
      "default": false,
      "description": "Add one-line stubs for tool calls and results."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟡publish_session(transcript, content_sha256, title, label, parent, ...)

Save a session transcript (JSONL) to your private a4sx library. The server scrubs token-shaped secrets before storing. Private: it is never listed publicly by this tool.

Input Schema

{
  "type": "object",
  "properties": {
    "transcript": {
      "type": "string",
      "minLength": 2,
      "description": "The session transcript as JSONL (Claude Code format)."
    },
    "content_sha256": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{64}$",
      "description": "Hex SHA-256 of the transcript's UTF-8 bytes; checked."
    },
    "title": {
      "type": "string",
      "maxLength": 200
    },
    "label": {
      "type": "string",
      "maxLength": 64
    },
    "parent": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$",
      "description": "Library id this session continues from (lineage)."
    },
    "visibility": {
      "type": "string",
      "enum": [
        "private"
      ],
      "default": "private",
      "description": "Always private. Listing publicly is a separate step in the web app."
    },
    "client_scrubbed": {
      "type": "boolean",
      "description": "The client scrubbed before sending. The server scrubs again regardless."
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[\\x21-\\x7e]+$"
    }
  },
  "required": [
    "transcript"
  ],
  "additionalProperties": false
}
🟢request_purchase(id, tenant, version)

Start buying a paid marketplace listing for the account holder to confirm. Nothing is charged and you never pay: it returns a verify_url and a user_code to give to the account holder, who checks the code, confirms and pays. Then poll get_purchase_request.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$",
      "description": "Marketplace listing id (from search_sessions)."
    },
    "tenant": {
      "type": "string",
      "maxLength": 64,
      "pattern": "^[a-z0-9-]*$",
      "description": "The listing's workspace (from search_sessions).",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9._-]*$",
      "default": "latest",
      "description": "The version you expect; must be the one on sale."
    }
  },
  "required": [
    "id",
    "tenant"
  ],
  "additionalProperties": false
}
🟢get_purchase_request(purchase_request_id)

Status of a purchase you requested: pending, completed (with acquired_copy_id to load with fetch_session_context), declined or expired.

Input Schema

{
  "type": "object",
  "properties": {
    "purchase_request_id": {
      "type": "string",
      "pattern": "^pr_[A-Za-z0-9_-]{10,64}$"
    }
  },
  "required": [
    "purchase_request_id"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools