Skip to main content
Glama

Start Sage Session

start_sage_session
Idempotent

Create a named SageMath workspace to maintain independent variables for isolated calculations. Use separate sessions to keep distinct math problems from interfering with each other.

Instructions

Start a named Sage workspace with its own independent variables

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesWorkspace name, e.g. 'curves' or 'scratch'

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe workspace name this handle was opened for.
messageYesHuman-readable confirmation.
workspace_tokenYesOpaque handle for this workspace. Pass it as the 'session' argument of later tool calls to reach the same state regardless of the transport session. Treat it as a secret.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.7.0
    • addedOutput schema / description
      Added value: +"A started workspace plus the portable handle that addresses it.\n\nThe handle is a server-issued, unguessable token. Passed back as a tool's\n``session`` argument it reaches this exact workspace independently of the\ntransport-level MCP session id -- so a client keeps its state across a\nreconnect, or a transport that hands out a fresh session id per call (which\nis what fastmcp 4 did, and where relying on the transport id alone lost\nstate). Holding the token is what grants access, so it is unguessable and\nmust be treated as a secret; it is never logged or exposed through the\nmonitoring or session resources."
    • removedOutput schema / properties / message / default
      Removed value: -"Session cleared"
    • addedOutput schema / properties / message / description
      Added value: +"Human-readable confirmation."
    • addedOutput schema / properties / name
      Added value: +{
      +  "description": "The workspace name this handle was opened for.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspace_token
      Added value: +{
      +  "description": "Opaque handle for this workspace. Pass it as the 'session' argument of later tool calls to reach the same state regardless of the transport session. Treat it as a secret.",
      +  "type": "string"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "message",
      +  "workspace_token",
      +  "name"
      +]
  2. Addedv0.5.0

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate idempotency, non-read-only behavior, and non-destructiveness. The description adds the useful context of variable isolation per workspace. It does not, however, explain what happens if the named workspace already exists, whether a backend is spawned, or whether starting affects other active sessions — though idempotentHint softens that gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that states the core action and its key behavioral property with no filler. It is front-loaded with the verb and resource, making it easy for an agent to scan and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema and idempotency annotation, the description covers the essential behavior: creating a named, isolated workspace. It does not spell out how sessions relate to subsequent evaluation tools or duplicate-name behavior, but the annotations and schema compensate for the most critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single 'name' parameter with an example ('curves' or 'scratch'), so schema coverage is 100%. The description's mention of 'named' simply mirrors the schema rather than adding deeper parameter semantics such as naming rules, uniqueness expectations, or allowed characters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb-resource pair: 'Start a named Sage workspace'. It also adds a distinguishing detail ('with its own independent variables') that separates it from session inspection and mutation siblings. However, it never explicitly names a sibling or contrasts scope, so differentiation relies on inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the description: call this when you need a fresh named workspace with isolated variables. But there is no explicit guidance about when to prefer this over evaluate_sage, reset_sage_session, or list_sage_sessions, nor any mention of prerequisites or session-lifecycle ordering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.