Skip to main content
Glama
johnhenry

mallory-grapher

by johnhenry

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MATH_GRAPHER_MAX_CELLSNoMaximum number of cells per session (default 512).512
MATH_GRAPHER_MAX_SESSIONSNoMaximum number of concurrent sessions (default 16).16
MATH_GRAPHER_EVAL_BUDGET_MSNoEvaluation budget in milliseconds (default 250).250
MATH_GRAPHER_MAX_PAYLOAD_BYTESNoMaximum payload size in bytes (default 262144).262144

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
session_openA

Open a reactive cell session. kind "generic" starts empty; "graph-theory" pre-wires an edge-list -> analysis -> BFS pipeline (input cells: edgeListText, directed, startVertex; computed cells: parsed, analysis, bfsOrder). Optional seed sets input cells in the same call (overriding preset defaults). Sessions are in-memory and die with the server.

session_closeB

Close a session and free its cells.

session_listA

List open sessions with kind, cell count, and creation time.

session_set_cellA

Set an input cell's value (any JSON). Setting a previously-computed cell demotes it to a plain input. Dependent computed cells recompute lazily on their next get.

session_get_cellB

Read a cell's current value (recomputing it if stale). Rich values project to typed JSON (a graph cell returns { "$type": "graph", vertices, edges, directed }).

session_list_cellsA

List every cell in a session with its role ("free" input vs "computed") and, for computed cells, the op that defines it.

session_defineA

Define a computed cell from a catalog op. args values may be literal JSON or live cell references ({"$cell": "name"}) -- referenced cells become reactive dependencies, so the cell recomputes when they change. Available ops:

  • math_eval: Evaluate a mallory-math Symbolic expression string over named numeric variables. args: { expr: string, vars?: { name: number | {"$cell": ...} } }. value: number.

  • graph_parse_edge_list: Parse a from to [weight]-per-line edge list into a graph value. args: { text: string, directed?: boolean (default true) }. value: graph (opaque; project with session_get_cell).

  • graph_analyze: Structural analysis of a graph cell. args: { graph: graph }. value: { hasCycle, connectedComponents, stronglyConnectedComponents, topologicalOrder, adjacencyMatrix: { matrix, order } }.

  • graph_bfs: Breadth-first traversal order. args: { graph: graph, start: string }. value: string[].

  • graph_dfs: Depth-first traversal order. args: { graph: graph, start: string }. value: string[].

  • graph_dijkstra: Dijkstra shortest-path distances from a start vertex. args: { graph: graph, start: string }. value: [{ vertex, distance }].

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 7 tools

Disambiguation5/5

Each session_ tool targets a distinct resource-action pair: listing sessions vs listing cells, setting vs getting cells, opening vs closing sessions. The overlapping terms 'session' and 'cell' are disambiguated by the noun and verb combination, leaving no ambiguity.

Naming Consistency5/5

All tools follow a strict 'session_' pattern with verb-noun structure (open, close, list, set_cell, get_cell, define, list_cells). The convention is uniform and predictable, making it easy to infer functionality from the name.

Tool Count5/5

With 7 tools, the set is well-scoped for the session-based reactive cell domain. Each tool serves a distinct purpose covering session management and cell operations without redundancy or bloat.

Completeness4/5

The tool surface covers the full session lifecycle (open, list, close) and cell operations (set, get, list cells, define). A minor gap is the absence of a direct 'delete cell' operation, but existing tools (set_cell demoting computed cells) mitigate this limitation, so agents can work around it.

Maintenance

ActivityMaintained
ResponsivenessResponsive