Skip to main content
Glama

start_sage_session

Idempotent

Create an isolated SageMath workspace with independent variables to run persistent calculations without affecting other named sessions.

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

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety and repeat-call profile is covered structurally. The description adds the isolation semantics ('its own independent variables'), which is genuinely useful, but says nothing about what happens if the name already exists despite the idempotent hint, or about resource limits.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity leaves no room for the routing context an agent would benefit from.

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

Completeness3/5

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

An output schema exists and annotations cover the safety profile, so return values and safety need not be restated. However, for a session-creation tool in a suite with reset/stop/list/interrupt siblings, the description omits lifecycle context such as duplicate-name behavior and how this session is subsequently referenced.

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 single 'name' parameter has 100% schema description coverage including examples ('curves', 'scratch'), so the schema does the heavy lifting. The description only echoes that the workspace is 'named', adding no format, uniqueness, or naming-rule detail beyond the schema.

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?

States a specific verb ('Start'), resource ('named Sage workspace'), and a distinguishing property ('its own independent variables'), which separates it from session-management siblings like list_sage_sessions or reset_sage_session. It stops short of naming which sibling is the alternative, so it's clear but not fully differentiated.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no indication that this is a prerequisite for evaluate_sage/calculate_expression, and no statement about when to reuse an existing session versus starting a new one. Usage is only implied by the word 'Start'.

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