Skip to main content
Glama
yigitkonur

example-mcp-server-stdio

by yigitkonur

example-mcp-stdio

production-ready, learning-focused starter for MCP servers over STDIO using TypeScript SDK v2.

part of a series: stdio (you are here) · stateless · stateful · sse

what it does

  • runs an MCP server that communicates exclusively over STDIO (stdin/stdout JSON-RPC, stderr for logs)

  • ships two tools (echo, sum_numbers), two resources (starter-checklist, starter-lesson), and one prompt (scaffold-plan)

  • loads features automatically from src/features/ using a file-based registrar pattern

  • includes a scaffold CLI to generate new tools, resources, and prompts from templates

  • enforces quality with a full pipeline: typecheck, lint, format, build, smoke test

Related MCP server: mcp-serverTest

quick start

git clone https://github.com/yigitkonur/example-mcp-stdio.git
cd example-mcp-stdio
npm ci

run in development mode:

npm run dev

or build and run:

npm run build && npm start

validate everything:

npm run pipeline

scaffold cli

generate new feature modules with a single command:

node dist/index.js create tool my-tool
node dist/index.js create resource my-resource --uri my://resource
node dist/index.js create prompt my-prompt

generated files land in src/features/<kind>/ and are picked up automatically on next server start.

full reference: docs/03-scaffold-cli.md

documentation

doc

what it covers

docs/README.md

reading order and audience guide

docs/01-getting-started.md

prerequisites, install, first run, Docker

docs/02-architecture.md

module layout, registrar pattern, STDIO transport model

docs/03-scaffold-cli.md

serve and create commands, options, naming conventions

docs/04-sdk-v2-notes.md

vendoring strategy, v2 patterns, migration notes

docs/05-validation.md

pipeline breakdown, smoke test, mcp-cli verification

sdk v2 context

this repo targets the TypeScript SDK v2 pre-release (@modelcontextprotocol/server). because v2 is not yet published to npm, the package is vendored as a tarball in vendor/. refresh it with npm run vendor:sdk:update. see docs/04-sdk-v2-notes.md for details.

license

MIT

Available Tools

8 tools
advanced_calculateAdvanced CalculateB

Perform advanced mathematical operations (factorial, log, combinations, permutations)

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYes
nYesPrimary input
kNoSecondary input for combinations/permutations
baseNoBase for logarithm (default: e)

Output Schema

ParametersJSON Schema
NameRequiredDescription
valueYes
expressionYes
calculationIdYes

TDQS

B3.1/5.0
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 of behavioral disclosure. While it mentions the types of operations, it doesn't describe important behavioral aspects: error handling (e.g., for invalid inputs like negative factorial), computational limits, whether operations are exact or approximate, or what the output format looks like. The description is purely functional without behavioral context.

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?

The description is extremely concise - a single sentence that efficiently lists all supported operations. Every word earns its place by specifying the tool's scope. The front-loaded structure immediately communicates the tool's purpose without unnecessary elaboration.

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?

Given that an output schema exists (per context signals), the description doesn't need to explain return values. However, for a mathematical tool with 4 parameters and no annotations, the description should ideally provide more context about operation specifics, constraints, or examples. The description is minimally adequate but leaves gaps in understanding the tool's full behavior and limitations.

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?

With 75% schema description coverage (3 of 4 parameters have descriptions), the schema already documents most parameters well. The description adds minimal value beyond the schema - it lists the operation types (which the enum already shows) but doesn't explain parameter relationships (e.g., that 'k' is only needed for combinations/permutations, or that 'base' is optional for log). Baseline 3 is appropriate given the good schema coverage.

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 clearly states the tool's purpose: 'Perform advanced mathematical operations' with specific examples (factorial, log, combinations, permutations). This distinguishes it from simpler calculation tools like 'calculate' or 'batch_calculate' by specifying 'advanced' operations. However, it doesn't explicitly differentiate from 'solve_math_problem' which might also handle similar operations.

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?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'calculate', 'batch_calculate', 'solve_math_problem', and 'calculator_assistant', there's no indication of when this 'advanced' tool is preferred over those other mathematical tools. The description only lists operations without context about appropriate use cases.

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

batch_calculateBatch CalculateC

Perform multiple calculations in a single request

ParametersJSON Schema
NameRequiredDescriptionDefault
calculationsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions performing 'multiple calculations in a single request' which implies a batch operation, but doesn't disclose behavioral traits like error handling (e.g., if one calculation fails), performance characteristics, rate limits, authentication needs, or what the output looks like. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.

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?

The description is extremely concise with a single sentence: 'Perform multiple calculations in a single request'. It's front-loaded with the core purpose, has zero waste, and every word earns its place. It's appropriately sized for a simple tool description.

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?

Given the tool has an output schema (which means return values are documented elsewhere), no annotations, and a simple input schema with one parameter, the description is minimally complete. It states what the tool does but lacks context about when to use it, behavioral details, or how it fits with siblings. For a batch calculation tool with output schema, it's adequate but has clear gaps in guidance and transparency.

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 description adds no parameter semantics beyond what the input schema provides. Schema description coverage is 0%, but the description doesn't compensate by explaining the 'calculations' array structure, the meaning of 'a', 'b', 'op', or the enum values. However, since there's only one parameter (calculations array) and the schema is well-defined with properties and enums, the baseline is 3 as the schema does the heavy lifting despite 0% coverage.

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

Purpose3/5

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

The description states the tool's purpose as 'Perform multiple calculations in a single request', which is clear but vague. It specifies the verb 'perform' and resource 'calculations', but doesn't distinguish it from siblings like 'calculate' or 'advanced_calculate' beyond the batch aspect. The purpose is understandable but lacks specificity about what types of calculations or how it differs from 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/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer batch_calculate over calculate, advanced_calculate, or other sibling tools. There's no context about use cases, prerequisites, or exclusions. The agent must infer usage from the name alone.

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

calculateCalculateC

Perform a basic arithmetic calculation

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst operand
bYesSecond operand
opYesOperation to perform
streamNoIf true, emit progress notifications

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
valueYes

TDQS

C2.8/5.0
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 of behavioral disclosure. 'Perform a basic arithmetic calculation' implies a read-only operation but doesn't specify if it's stateless, has side effects, requires permissions, or handles errors. It mentions nothing about the 'stream' parameter's behavior (progress notifications), rate limits, or output format, leaving significant gaps in understanding how the tool behaves beyond its basic function.

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?

The description is a single, efficient sentence: 'Perform a basic arithmetic calculation'. It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every part of the sentence earns its place by conveying the essential action and resource.

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?

Given the tool's low complexity (basic arithmetic) and the presence of a rich input schema (100% coverage) and output schema, the description is minimally adequate. However, with no annotations and multiple sibling tools, it fails to provide context on differentiation or behavioral details like error handling. The description covers the 'what' but lacks the 'when' and 'how' needed for full completeness in this environment.

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 schema description coverage is 100%, with clear descriptions for all parameters (e.g., 'First operand', 'Operation to perform', 'If true, emit progress notifications'). The description adds no additional meaning beyond what the schema provides, as it doesn't explain parameter interactions, constraints, or examples. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose3/5

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

The description 'Perform a basic arithmetic calculation' clearly states the tool's purpose with a specific verb ('perform') and resource ('arithmetic calculation'). However, it doesn't distinguish this from sibling tools like 'advanced_calculate', 'batch_calculate', or 'solve_math_problem', leaving the scope of 'basic' ambiguous. The description is functional but lacks differentiation from 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/5

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

The description provides no guidance on when to use this tool versus its siblings. With tools like 'advanced_calculate', 'batch_calculate', and 'solve_math_problem' available, there's no indication of what makes this tool 'basic' or when to choose it over others. No context, exclusions, or alternatives are mentioned, leaving usage decisions unclear.

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

calculator_assistantCalculator AssistantC

Interactive calculator assistance with context-aware help

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe user query or question
contextNoAdditional context

TDQS

C2/5.0
Behavior1/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 of behavioral disclosure. However, it only states 'Interactive calculator assistance with context-aware help', which is too vague to convey any behavioral traits. It doesn't specify whether this is a read-only or mutative operation, what kind of help is provided (e.g., explanations, calculations, or troubleshooting), or any constraints like rate limits or authentication needs. This lack of detail makes the tool's behavior opaque.

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?

The description is concise and front-loaded, consisting of a single phrase 'Interactive calculator assistance with context-aware help'. It wastes no words, though it could be more informative. However, its brevity is appropriate for a simple tool, and it doesn't include unnecessary details, earning a high score for efficiency.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool with 2 parameters and multiple sibling tools. It doesn't explain what the tool returns, how it interacts with the provided parameters, or its role relative to other calculator tools. While the schema covers parameters, the overall context is insufficient for an AI agent to fully understand the tool's function and application.

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 has 100% description coverage, with parameters 'query' and 'context' clearly documented in the schema itself. The description adds no additional meaning beyond what the schema provides, as it doesn't elaborate on what constitutes a valid 'query' or how 'context' should be used. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.

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

Purpose2/5

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

The description 'Interactive calculator assistance with context-aware help' is vague and tautological, essentially restating the tool name 'calculator_assistant' with minor elaboration. It doesn't specify what the tool actually does (e.g., answer math questions, provide step-by-step solutions, or offer usage tips), nor does it distinguish it from sibling tools like 'calculate', 'solve_ath_problem', or 'explain_formula'. This leaves the purpose unclear beyond a generic calculator-related function.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any specific contexts, prerequisites, or exclusions, and fails to differentiate it from sibling tools such as 'calculate' or 'solve_ath_problem'. This absence of usage instructions makes it difficult for an AI agent to select this tool appropriately among the available options.

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

demo_progressDemo ProgressB

Demonstrate progress notifications with 5 updates

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
progressStepsYes

TDQS

B3.2/5.0
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 of behavioral disclosure. It mentions 'progress notifications' and '5 updates', implying a sequence of updates, but doesn't specify whether this is a read-only demonstration, if it modifies any state, what triggers the updates, or any rate limits or side effects. For a tool with zero annotation coverage, this leaves significant behavioral 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/5

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

The description is a single, efficient sentence: 'Demonstrate progress notifications with 5 updates'. It is front-loaded with the core purpose and includes a specific detail (5 updates) without any redundant or verbose language. Every word earns its place.

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?

Given the tool's simplicity (0 parameters, output schema exists), the description is minimally adequate. It states what the tool does but lacks context on usage, behavior, or output. The output schema likely covers return values, so the description doesn't need to explain those. However, for a demonstration tool with no annotations, more behavioral context would be helpful.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter information is needed. The description doesn't add any parameter details, which is appropriate here. Baseline is 4 for 0 parameters, as the schema fully covers the absence of inputs.

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 clearly states the tool's purpose: 'Demonstrate progress notifications with 5 updates'. It specifies the verb ('Demonstrate') and resource ('progress notifications'), and provides a concrete detail about the number of updates. However, it doesn't explicitly differentiate from sibling tools like 'maintenance_mode' or 'advanced_calculate', which could also involve progress or notifications.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any specific contexts, prerequisites, or exclusions, nor does it refer to sibling tools. The agent must infer usage based solely on the tool name and description, which is insufficient for informed selection.

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

explain_formulaExplain FormulaC

Explain a mathematical formula interactively

ParametersJSON Schema
NameRequiredDescriptionDefault
formulaYesThe formula to explain
examplesNoInclude examples

TDQS

C2.9/5.0
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 of behavioral disclosure. While 'explain' and 'interactively' imply a read-only, informative operation, the description doesn't clarify what 'interactively' entails (e.g., step-by-step guidance, visual aids, or user prompts), nor does it mention any limitations like formula complexity, supported notations, or potential errors. This leaves significant gaps in understanding the tool's behavior.

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?

The description is extremely concise—a single sentence with no wasted words. It's front-loaded with the core purpose ('explain a mathematical formula') and includes the key behavioral trait ('interactively') efficiently. Every word earns its place, making it easy to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool with two parameters and interactive behavior. It doesn't explain what the output looks like (e.g., text explanation, steps, or visual elements), how 'interactively' manifests, or any constraints on formula input. For a tool that likely involves complex processing, this leaves too much unspecified for effective agent use.

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 schema description coverage is 100%, meaning both parameters ('formula' and 'examples') are fully documented in the schema. The description adds no additional semantic information about these parameters beyond what's in the schema, such as expected formula formats or what types of examples are included. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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 clearly states the tool's purpose with a specific verb ('explain') and resource ('mathematical formula'), and the adverb 'interactively' adds useful context about the nature of the explanation. However, it doesn't explicitly differentiate this from sibling tools like 'solve_math_problem' or 'calculator_assistant', which likely have overlapping domains.

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?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'solve_math_problem' and 'calculator_assistant' available, there's no indication of whether this tool is for educational purposes, step-by-step breakdowns, or other specific contexts where it would be preferred over those alternatives.

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

maintenance_modeMaintenance ModeB

Simulate enabling or disabling tools for maintenance (demo only)

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameYesTool to simulate managing
enableYesEnable (true) or disable (false) the tool

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
enabledYes
messageYes
toolNameYes

TDQS

B3.4/5.0
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 of behavioral disclosure. It mentions 'simulate' and 'demo only', which hints that this is a non-destructive, mock operation, but it doesn't clarify what 'simulate' entails (e.g., whether it actually affects tool functionality, returns mock data, or has side effects). For a tool with no annotations, this leaves gaps in understanding its real-world impact and safety.

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?

The description is a single, efficient sentence: 'Simulate enabling or disabling tools for maintenance (demo only)'. It's front-loaded with the core purpose and includes essential context without unnecessary details. Every word earns its place, making it highly concise and well-structured.

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?

Given the tool's low complexity (2 parameters, 100% schema coverage, and an output schema exists), the description is reasonably complete. It covers the purpose and demo context, and with an output schema, it doesn't need to explain return values. However, for a tool with no annotations, it could benefit from more behavioral details (e.g., what 'simulate' means operationally) to be fully comprehensive.

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 description doesn't add any parameter-specific information beyond what the input schema provides. With 100% schema description coverage, the schema already documents 'toolName' and 'enable' parameters clearly, including enum values for 'toolName'. The baseline score of 3 is appropriate as the schema does the heavy lifting, and the description doesn't compensate with additional semantics.

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 clearly states the tool's purpose: 'Simulate enabling or disabling tools for maintenance (demo only)'. It specifies the action ('enabling or disabling') and the target ('tools'), though it doesn't explicitly differentiate from sibling tools like 'demo_progress' that might also be for demos. The mention of 'maintenance' and 'demo only' adds context but doesn't fully distinguish it from other demo-related tools.

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 description implies usage context with 'demo only', suggesting this tool is for testing or demonstration purposes rather than production. However, it doesn't provide explicit guidance on when to use this vs. alternatives like 'demo_progress' or other sibling tools, nor does it specify prerequisites or exclusions. The implied context is helpful but lacks detailed alternatives.

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

solve_math_problemSolve Math ProblemC

Solve a word problem or mathematical expression (may request user input)

ParametersJSON Schema
NameRequiredDescriptionDefault
problemYesThe math problem to solve
showStepsNoShow step-by-step solution

TDQS

C2.9/5.0
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 behavioral disclosure. It mentions 'may request user input', which is useful context about potential interactive behavior. However, it doesn't address important aspects like whether this is a read-only operation, computational limits, error handling, or output format.

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?

The description is very concise - just one sentence that efficiently communicates the core functionality. It's appropriately sized and front-loaded with the main purpose, though the parenthetical about user input could be integrated more smoothly.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what kind of output to expect, what mathematical domains are supported, computational limitations, or how the 'may request user input' feature works. The agent would be left guessing about important behavioral aspects.

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?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any additional meaning about the parameters beyond what's in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting.

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 clearly states the tool's purpose: 'Solve a word problem or mathematical expression' with the additional context 'may request user input'. This specifies both the verb ('solve') and the resource ('math problem'), though it doesn't explicitly differentiate from sibling tools like 'calculate' or 'advanced_calculate'.

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?

No guidance is provided on when to use this tool versus alternatives like 'calculate', 'advanced_calculate', or 'explain_formula'. The description only states what the tool does, not when it's appropriate or what distinguishes it from similar tools in the server.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • Changeddemo_progress1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 8 tool updates
    • First observedadvanced_calculate
    • First observedbatch_calculate
    • First observedcalculate
    • First observedcalculator_assistant
    • First observeddemo_progress
    • First observedexplain_formula
    • First observedmaintenance_mode
    • First observedsolve_math_problem

TDQS

C2.7/5.0
Disambiguation3/5

The tools have some overlap in mathematical functionality, such as 'calculate', 'advanced_calculate', and 'solve_math_problem', which could cause confusion about which to use for specific tasks. However, descriptions help differentiate them by scope (e.g., basic vs. advanced, interactive vs. batch). The non-math tools like 'demo_progress' and 'maintenance_mode' are clearly distinct, preventing complete ambiguity.

Naming Consistency3/5

The naming is mixed with some consistency in verb_noun patterns like 'explain_formula' and 'solve_math_problem', but deviations exist such as 'calculator_assistant' (noun_verb) and 'demo_progress' (verb_noun with a prefix). There's no chaotic naming, but the lack of a uniform convention reduces predictability.

Tool Count4/5

With 8 tools, the count is reasonable for a server focused on mathematical calculations and demonstrations. It's slightly over-scoped due to overlapping math tools, but each tool serves a purpose, and the number aligns well with the apparent domain without being excessive or too thin.

Completeness3/5

The server covers a range of mathematical operations from basic to advanced, including interactive and batch features, but there are notable gaps such as no clear update or delete operations for stored calculations or data. The inclusion of demo tools like 'maintenance_mode' suggests a focus on functionality rather than full lifecycle coverage, leaving the surface incomplete for broader use cases.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/yigitkonur/example-mcp-server-stdio'

If you have feedback or need assistance with the MCP directory API, please join our Discord server