Enhanced GeoGebra MCP
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: session lifecycle (create/list/close), evaluation (command vs CAS), state inspection/modification (objects/state), view configuration, export, and reset. There is no functional overlap between any pair of tools.
Naming Consistency5/5All tools consistently use the snake_case convention with the common 'ggb_' prefix followed by a verb_noun pattern (e.g., create_session, get_state, set_view). The naming is uniform and predictable.
Tool Count5/5With 12 tools, the server is well-scoped for a GeoGebra integration. Each tool covers a distinct aspect of the domain, and the count is within the ideal 3-15 range.
Completeness5/5The tool surface provides comprehensive coverage of GeoGebra interactions: session management, command and CAS evaluation, command reference, object/state retrieval, state loading, view options, image export, and reset. No critical workflow appears missing.
Average 3.2/5 across 12 of 12 tools scored. Lowest: 2.2/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose whether evaluation is read-only, whether it modifies session state, what the return format is, or any side effects. This is a significant gap for a tool that evaluates expressions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness2/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it under-specifies the tool's behavior. Key information about parameters and effects is missing, making it more under-specification than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, no output schema, and minimal parameter details, the description is insufficient for an agent to understand how to invoke the tool correctly. It does not cover return values, error handling, or session prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It mentions 'expression' and 'session' but does not explain what a sessionId is, how to obtain it, or the expected format of the CAS expression. The description adds minimal meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates a GeoGebra CAS expression, which distinguishes it from sibling tools like ggb_eval_command (which likely evaluates a regular command). However, it does not explicitly mention the distinction, relying on the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as ggb_eval_command. The description implies it is for CAS expressions, but there is no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It reveals that the session is headless and uses local assets, which is useful, but it doesn't disclose lifecycle implications (e.g., the need to close the session, resource consumption, or behavior when created multiple times).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, for a tool with 8 parameters and no output schema, 'appropriately sized' could be argued to be longer; it's not verbose but does not fully earn its keep by omitting critical context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters, no annotations, no output schema, and a 0% schema description coverage. The description is far too terse to give the agent enough context to correctly invoke the tool. It doesn't explain return values, session semantics, or parameter meanings, making it inadequate for real use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter information whatsoever. With 8 parameters including XML, dimensions, and app name, the agent has no guidance on what values to provide or how they affect the session.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('headless GeoGebra applet session'), and distinguishes it from sibling tools that evaluate commands or query state. It also specifies the backing technology, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The description doesn't mention that this is a prerequisite for other operations or when to avoid it. Sibling tools exist for evaluation and state management, but no comparison is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It implies a destructive clear/reset but does not mention reversibility, effects on undo history, session state, or any prerequisites. The mode-specific behavior is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core action, though the brevity contributes to under-specification elsewhere—an issue of completeness, not conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is far too skeletal. It omits parameter semantics, mode differences, session context, and return/effect behavior. An AI agent would not have enough information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention 'sessionId' or 'mode' at all. The description only indirectly hints at two actions via 'clear' and 'reset', which map to the mode enum, but it fails to provide any semantic link or detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool clears or resets a GeoGebra construction/applet, using specific verbs ('clear', 'reset') and a resource ('construction', 'applet'). It is distinguishable from sibling tools like ggb_create_session or ggb_eval_command, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, or when to choose 'newConstruction' versus 'reset' mode. The description simply states what it does without contextual usage directions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a mutation ('Set') but doesn't disclose side effects, persistence, session requirements, or reversibility. No additional behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the verb and resource. However, given the tool's complexity, more structure could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, complex anyOf schemas, no output schema, and no annotations. The one-sentence description is insufficient to cover all these aspects. It doesn't explain the parameter shapes, the need for sessionId, or any return/error behavior. This is clearly inadequate for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names a few params (coordinate system, grid, axes, perspective) but gives no details on structure, types, or required fields. The complex array schemas for coordSystem and axesVisible are unexplained, leaving the agent without enough information to construct valid input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets view options (coordinate system, grid, axes, perspective) with a specific verb and resource. It distinguishes from sibling tools like ggb_set_state by focusing on 'view', but doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It doesn't provide context such as 'for adjusting display settings' or exclusions like 'not for changing object properties'. The tool name and description imply usage but don't explain prerequisites or compare to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, what side effects (if any) occur, how the output is returned, or whether permissions are required. The mention of 'active view' is contextual but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the core purpose and output formats. It is concise and to the point, though it omits parameter details; however, conciseness is about efficiency, and it achieves that for its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, the description is not complete enough. It does not explain return values, parameter behavior, or any side effects. The one-sentence description is insufficient for an agent to confidently invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not. It mentions formats (png, svg, screenshot) but fails to explain dpi, scale, transparent, inlineLimit, or sessionId. The description adds almost no parameter meaning beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export'), the resource ('the active view'), and the output formats ('PNG, SVG, or full-applet screenshot'). This distinguishes it from sibling tools, none of which perform exporting, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not explain when to use this tool versus alternatives, prerequisites (e.g., an active session), or scenarios to avoid. Its uniqueness among siblings implies it is the export tool, but that is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It reveals the API and return fields (ok/result/labels/error) but omits side effects: evaluating commands can create or modify objects in the session, potentially changing state. It does not mention whether the operation is destructive, reversible, or requires specific permissions. This is a significant gap for a command execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the verb, resource, context, mechanism, and expected output in a compact manner. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and moderate complexity. The description mentions return metadata but not the structure of 'result' or 'error', nor does it explain session prerequisites, command formatting, or state changes. The tool is under-specified for reliable use despite clear purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'command' accepts one or more commands, but does not specify how multiple commands are separated (e.g., newlines or semicolons) or how sessionId is obtained/used. The parameter names alone are insufficient for correct invocation given the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Evaluate' and identifies the resource as 'English GeoGebra input-bar commands', distinguishing it from sibling tools like ggb_eval_cas (CAS commands). It also names the underlying API (evalCommandResult) and return metadata, making the tool's scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. It mentions 'in a session' but does not state that a session must first be created via ggb_create_session, nor does it differentiate from ggb_eval_cas or ggb_query_commands. There are no explicit exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'List' which implies read-only, but it does not explicitly disclose whether the operation is safe, what happens if the session does not exist, or any side effects. It also does not describe the return format beyond the listed metadata fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action ('List construction objects') and then specifies useful metadata fields. Every word earns its place; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, no annotations, and 0% schema coverage, the description is insufficient. It does not explain return structure (e.g., is it a list of objects?), the meaning of 'compact', how to use the 'type' parameter, or when to select this tool over siblings. It is too sparse for a tool with 2 params and no other documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (sessionId, type) with 0% description coverage. The description fails to explain either parameter's purpose. 'type' appears as an output metadata field, causing ambiguity about whether it's a filter. No guidance is given for sessionId, and the description does not compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List construction objects' with specific metadata fields listed (type, value, definition, command, visibility, defined-state). This is a specific verb+resource pairing that effectively distinguishes it from siblings like ggb_get_state (session state) and ggb_list_sessions (listed sessions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to inspect construction objects but provides no explicit guidance on when to use this tool vs alternatives (e.g., ggb_get_state or ggb_query_commands). It does not mention exclusions or prerequisites, leaving usage context only inferred from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior. It notes the action of closing a browser page and releasing resources, which is meaningful, but lacks details on error handling, idempotency, or prerequisites. Some behavioral context is present, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words, front-loaded with the action. Every word earns its place without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the core purpose but omits edge cases like invalid session IDs or whether closing is idempotent. It is minimally adequate but could be richer given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter, sessionId, with 0% description coverage. The description does not mention or explain this parameter, adding no semantic value beyond the parameter name. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('close') and resource ('GeoGebra browser page'), and adds detail about releasing session resources. This distinguishes it from sibling tools like 'ggb_reset' and 'ggb_create_session'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention conditions like needing an active session or contrast with similar tools like ggb_reset or ggb_list_sessions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'Replace' implying overwriting, but does not disclose side effects, prerequisites (like valid sessionId), or error behavior. Minimal extra context beyond the action and formats; lacks details about state replacement impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence without unnecessary words. It communicates the core action and formats quickly, though it is somewhat terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating tool with no annotations and no output schema, the description is too minimal. It fails to address prerequisites (e.g., session existence), overwrite behavior, return values, or failure modes. The tool is more complex than a simple read operation, yet the description does not provide enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description only lists formats which are already captured in the schema enum. It does not explain what 'content' should contain, the role of 'sessionId', or how 'format' controls parsing. Fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb ('Replace or load'), resource ('construction state'), and scope ('from XML, base64 .ggb data, or fileJSON'). It is specific and directly distinguishes from sibling tools like ggb_get_state by indicating a write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to set or load state, but it provides no explicit guidance on when to choose this over alternatives like ggb_reset or ggb_get_state. No when-not or alternative tool mentions, so usage is only derived from the action verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It usefully mentions that large results are returned as MCP resources, which is a key behavioral trait. It also lists the output formats, giving additional context about what to expect. However, it does not explicitly state side effects or prerequisites like session validity, leaving minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy: the first sentence states the core purpose and output options, the second adds a critical behavioral note about large results. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and the resource fallback behavior, but leaves details like what 'MCP resources' entails and how inlineLimit impacts results unexplained. Given no output schema and no annotations, the description is not fully complete for an agent to use without additional inference, though it is adequate for a basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only implicitly covers the format parameter by listing the output types (XML, base64, fileJSON). It does not explain the purpose of sessionId or the behavior of inlineLimit. With 0% schema description coverage, the description fails to compensate for these unclear parameters, leaving the agent to infer their semantics from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the current construction state in XML, base64, or fileJSON formats. This distinguishes it from siblings like ggb_set_state (which sets state) and ggb_get_objects (which fetches specific objects), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for obtaining a full state snapshot of a session, with clear output format options. It does not explicitly name alternatives or exclusion criteria, but the context is sufficiently clear that an agent would know to use it when the entire construction state is needed rather than individual objects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It adds the behavioral detail that only 'active' sessions are listed, but it does not state whether the operation is read-only, whether it has side effects, or what the response contains. The word 'list' implies read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence containing the verb, object, and scope. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter, no-output-schema nature, the description provides the essential purpose. It could be more complete by mentioning the return format (e.g., session IDs, names), but for such a simple list tool it is sufficiently clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema covers everything. The description adds no parameter information, but none is needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the target resource ('active GeoGebra sessions'), with scope ('managed by this MCP server'). It distinguishes from siblings like ggb_create_session or ggb_eval_command, none of which provide a listing function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for listing sessions, but it does not explicitly say when to use it instead of alternatives, nor does it mention any exclusions or prerequisites. No sibling is referenced for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It implies a read-only search (no side effects mentioned) but does not state what the return value looks like, whether it returns multiple results, or whether it executes commands. Some context is present, but the behavior after invocation is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, then a usage note. No filler, every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should clarify what the tool returns. It does not explicitly say it returns matching commands or syntax examples, though the usage hint implies it. The tool has 4 parameters with enums, and the description only partially covers their semantics, so completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It does explain that the query parameter searches across several fields and mentions 'scopes', which loosely aligns with the scope parameter. However, it does not explain topN (result limit) or locale (language specificity), leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches a 'bundled GeoGebra command reference' by multiple dimensions (name, localized name, syntax, examples, tags, scopes). It distinguishes itself from the sibling ggb_eval_command by explicitly positioning it as a pre-search tool for syntax verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit usage directive: 'Use this before ggb_eval_command when command syntax is uncertain.' This names the alternative tool and the condition for use, which is strong guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tiwe0/enhanced-geogebra-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server