Skip to main content
Glama

ЭпикМи МКП

Это пример приложения, доступ к которому возможен исключительно через протокол контекста модели (MCP).

Все, от регистрации и аутентификации пользователей до взаимодействия с пользовательскими данными, выполняется с помощью инструментов MCP.

Цель состоит в том, чтобы продемонстрировать возможное будущее приложений, где пользователи взаимодействуют с нашими приложениями посредством естественного языка с LLM и протоколом MCP. Это также будет основой, на которой я буду учить, как создавать инструменты MCP на EpicAI.pro .

Аутентификация

Поток аутентификации уникален, поскольку нам нужно иметь возможность пройти через OAuth для пользователей, которых еще нет (пользователи должны сначала зарегистрироваться). Поэтому мы автоматически генерируем грант, без необходимости для пользователя проходить через поток OAuth самостоятельно. Затем мы позволяем пользователю запросить грант через код TOTP, который отправляется ему по электронной почте.

Это работает достаточно хорошо.

Related MCP server: Anytype MCP Server

Известные проблемы

Во время разработки, если вы удалите каталог .wrangler , вы удалите динамически зарегистрированных клиентов. Эти клиенты не знают, что их записи были удалены, поэтому они не будут пытаться перерегистрироваться. В MCP Inspector вы можете зайти в браузерные инструменты разработчика и очистить хранилище сеансов, и он перерегистрируется. В других клиентах я не знаю, как заставить их перерегистрироваться.

Available Tools

11 tools
addC

Adds two numbers

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst number
bYesSecond number

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 states the basic action but doesn't cover important aspects like error handling (e.g., overflow), performance, or output format, which are critical for a tool with no output schema.

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 and front-loaded with a single, clear sentence that directly states the tool's function. There is no wasted verbiage, making it efficient and easy to parse.

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 tool's simplicity and lack of annotations or output schema, the description is incomplete. It doesn't explain the return value (e.g., sum as a number) or potential behavioral traits, leaving gaps that could hinder correct invocation by an agent.

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 both parameters clearly documented in the schema. The description adds no additional meaning beyond what the schema provides, so it meets the baseline score for high schema coverage without compensating with extra insights.

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 ('Adds') and resource ('two numbers'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'echo' or 'sampleLLM' that might also perform mathematical operations, so it doesn't reach the highest score.

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 prerequisites, constraints, or suggest other tools for related tasks, leaving the agent with no context for selection.

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

annotatedMessageC

Demonstrates how annotations can be used to provide metadata about content

ParametersJSON Schema
NameRequiredDescriptionDefault
messageTypeYesType of message to demonstrate different annotation patterns
includeImageNoWhether to include an example image

TDQS

C2.6/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 demonstrating annotation patterns but doesn't disclose behavioral traits such as whether it's read-only, if it modifies state, what the output looks like, or any side effects. This is inadequate for a tool with no annotation coverage.

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 a single, efficient sentence that gets straight to the point without waste. It's appropriately sized for a simple tool, though it could be more front-loaded with operational details.

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 no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, how annotations are demonstrated, or the complexity involved. For a tool with 2 parameters and full schema coverage, more context on behavior and output is needed.

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 fully. The description adds no meaning beyond the schema, such as explaining why to choose specific message types or image inclusion. Baseline 3 is appropriate when schema does the heavy lifting.

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 demonstrates annotation usage for content metadata, which is a clear purpose, but it's vague about what the tool actually does operationally. It doesn't specify a concrete action like 'generate' or 'display' annotated messages, nor does it distinguish from siblings like 'structuredContent' or 'echo' that might handle similar content.

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 guidance on when to use this tool versus alternatives. Given siblings like 'structuredContent' and 'echo' that might handle content, the description lacks explicit when/when-not instructions or prerequisites, leaving usage context implied at best.

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

echoC

Echoes back the input

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage to echo

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. 'Echoes back the input' implies a read-only, non-destructive operation, but it lacks details on output format, error handling, or any constraints like rate limits. This is a significant gap for a tool with zero annotation coverage.

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 just three words, front-loaded and zero waste. Every word earns its place by directly conveying the core function without unnecessary elaboration, making it highly efficient.

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 tool's simplicity (1 parameter, no output schema), the description is incomplete. It doesn't explain the return value (e.g., what 'echoes back' means in practice) or provide context for use among siblings. Without annotations or output schema, more detail is needed to fully inform an agent.

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 the 'message' parameter fully documented. The description adds no additional meaning beyond what the schema provides, such as examples or usage context. According to the rules, with high schema coverage (>80%), the baseline is 3 even without param info in the description.

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 'Echoes back the input' clearly states the tool's function with a specific verb ('echoes') and resource ('input'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'printEnv' or 'sampleLLM' that might also output data, so it doesn't reach the highest score.

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 siblings like 'printEnv' (prints environment variables) and 'sampleLLM' (likely generates text), there's no indication of when 'echo' is appropriate, such as for testing or simple output, leaving usage unclear.

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

getResourceReferenceC

Returns a resource reference that can be used by MCP clients

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceIdYesID of the resource to reference (1-100)

TDQS

C2.6/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 states the tool returns something but doesn't describe what a 'resource reference' is, any side effects, error conditions, or performance aspects. This leaves significant gaps in understanding the tool's behavior beyond the basic action.

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 a single, straightforward sentence with no wasted words. It's appropriately sized for a simple tool, but it could be more front-loaded with key details. However, it's efficient and clear in its brevity.

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 complexity (a read operation with one parameter) and lack of annotations or output schema, the description is incomplete. It doesn't explain what a 'resource reference' is, how it's used, or what the return value looks like. This leaves the agent with insufficient context to use the tool effectively beyond the basic schema.

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%, with the parameter 'resourceId' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as examples or context for the resource ID. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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 'returns a resource reference that can be used by MCP clients,' which provides a basic purpose but lacks specificity about what type of resource or what 'resource reference' entails. It distinguishes from some siblings like 'echo' or 'printEnv' but not clearly from 'getResourceLinks' which might be related. The purpose is vague rather than specific.

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. It doesn't mention any context, prerequisites, or exclusions. For example, it doesn't clarify if this is for internal MCP client use only or how it differs from 'getResourceLinks.' The description offers no usage instructions.

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

getTinyImageC

Returns the MCP_TINY_IMAGE

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/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 but offers minimal information. It states the tool 'returns' something, implying a read-only operation, but doesn't specify whether it's a simple fetch, has side effects, requires authentication, involves rate limits, or what format the return value takes. The description lacks details on what 'MCP_TINY_IMAGE' represents or how it behaves, leaving significant gaps in understanding.

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, straightforward sentence: 'Returns the MCP_TINY_IMAGE'. It's front-loaded and wastes no words, making it easy to parse quickly. Every word earns its place by conveying the core action, though it lacks depth.

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 tool's simplicity (0 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'MCP_TINY_IMAGE' is, what 'returns' entails (e.g., data format, potential errors), or how it fits into broader workflows. While minimal context might suffice for a trivial tool, this leaves too many unanswered questions about usage and output.

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 tool has zero parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics since there are none to explain. This meets the baseline of 4 for tools with no parameters, as there's no gap to compensate for.

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 'Returns the MCP_TINY_IMAGE' is a tautology that essentially restates the tool name 'getTinyImage' with slightly different wording. It doesn't specify what the MCP_TINY_IMAGE actually is (e.g., an image resource, metadata, URL) or what 'returns' means in practical terms. While it indicates a retrieval action, the purpose remains vague and indistinguishable from other retrieval tools like 'getResourceLinks' or 'getResourceReference'.

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 context, prerequisites, or exclusions, nor does it differentiate it from sibling tools like 'getResourceLinks' or 'getResourceReference' that might also retrieve resources. There's no indication of when this tool is appropriate or what problems it solves.

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

longRunningOperationC

Demonstrates a long running operation with progress updates

ParametersJSON Schema
NameRequiredDescriptionDefault
durationNoDuration of the operation in seconds
stepsNoNumber of steps in the operation

TDQS

C2.7/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 'long running operation with progress updates', which implies asynchronous behavior and potential delays, but doesn't specify timeout handling, cancellation options, or what 'progress updates' entail. For a tool with no 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 that directly states the tool's function. It's appropriately sized and front-loaded with no wasted words, making it easy for an agent 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 tool's complexity (long-running operation with progress updates), no annotations, and no output schema, the description is insufficient. It doesn't explain what the operation demonstrates, what progress updates look like, or what the expected outcome is. For a tool with behavioral implications, more context is needed.

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 fully documents both parameters (duration and steps). The description adds no additional meaning about parameters beyond what the schema provides. According to guidelines, baseline is 3 when schema coverage is high (>80%) and no param info is in description.

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 'demonstrates a long running operation with progress updates', which provides a vague purpose. It specifies the verb 'demonstrates' and resource 'operation', but lacks specificity about what the operation actually does or its domain context. It doesn't distinguish from sibling tools like 'add', 'echo', or 'sampleLLM' which have different functions.

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 scenarios, prerequisites, or exclusions. Given the sibling tools include various utilities, there's no indication whether this is for testing, simulation, or actual processing, leaving the agent with no usage context.

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

printEnvA

Prints all environment variables, helpful for debugging MCP server configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/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 states the tool 'prints' (implying read-only output) and mentions its debugging purpose, which is helpful context. However, it doesn't describe the output format, whether sensitive data might be exposed, or any rate limits - leaving some behavioral aspects 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/5

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

The description is perfectly concise - a single sentence that front-loads the core functionality ('Prints all environment variables') followed by the specific use case. Every word earns its place with no redundancy or 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 the tool's simplicity (0 parameters, no output schema, no annotations), the description provides adequate but minimal information. It explains what the tool does and its primary use case, but doesn't describe the output format or any behavioral constraints. For such a simple tool, this is acceptable but not comprehensive.

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 tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools when the description doesn't attempt to discuss non-existent parameters.

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

Purpose5/5

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

The description clearly states the specific action ('Prints all environment variables') and the resource being acted upon ('environment variables'). It also distinguishes this tool's purpose from sibling tools by specifying its debugging use case for MCP server configuration, which is unique among the listed siblings.

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

Usage Guidelines4/5

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

The description explicitly states when to use this tool ('helpful for debugging MCP server configuration'), providing clear context for its application. However, it doesn't specify when NOT to use it or name alternative tools for similar purposes, which prevents a perfect score.

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

sampleLLMC

Samples from an LLM using MCP's sampling feature

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe prompt to send to the LLM
maxTokensNoMaximum number of tokens to generate

TDQS

C2.6/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. It mentions 'sampling' but does not disclose behavioral traits such as whether this is a read-only or mutative operation, potential rate limits, authentication needs, or what the output format looks like. The description is minimal and lacks critical operational context.

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 a single, efficient sentence with no wasted words. It is appropriately sized for the tool's complexity, though it could be more front-loaded with key details to improve clarity.

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. It does not explain what 'sampling' returns, how results are formatted, or any error conditions, leaving significant gaps for an LLM interaction tool with two parameters.

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 fully documents the two parameters ('prompt' and 'maxTokens'). The description adds no additional meaning beyond what the schema provides, such as examples or constraints, meeting the baseline for high schema 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 action ('Samples from an LLM') but is vague about the specific mechanism ('using MCP's sampling feature') without explaining what sampling entails. It distinguishes from siblings like 'echo' or 'printEnv' by involving LLM interaction, but lacks specificity about the resource or output type.

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. The description does not mention prerequisites, context, or exclusions, leaving the agent to infer usage based on the tool name alone among siblings like 'annotatedMessage' or 'structuredContent'.

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

structuredContentC

Returns structured content along with an output schema for client data validation

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity name or zip code

Output Schema

ParametersJSON Schema
NameRequiredDescription
humidityYesHumidity percentage
conditionsYesWeather conditions description
temperatureYesTemperature in celsius

TDQS

C2.8/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 states the tool returns content but doesn't describe any behavioral traits such as rate limits, authentication requirements, error conditions, or what happens when invalid input is provided. The mention of 'output schema for client data validation' suggests some validation behavior, but this is not elaborated.

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 a single, efficient sentence that gets straight to the point. It's appropriately sized for a simple tool with one parameter. However, it could be slightly more front-loaded by specifying what type of structured content is returned earlier in the description.

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 has an output schema (which handles return value documentation), a simple input schema with 100% coverage, and no complex annotations, the description is reasonably complete. It covers the basic purpose and hints at validation use. The main gap is lack of specificity about what structured content is actually returned.

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 the single parameter 'location' clearly documented as 'City name or zip code.' The description adds no additional meaning beyond what the schema provides - it doesn't explain how the location parameter affects the returned content or provide examples. Baseline score of 3 is appropriate since the schema does the heavy lifting.

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 'Returns structured content' which indicates a read operation, but it's vague about what specific content is returned. It mentions 'client data validation' but doesn't specify what kind of structured content (e.g., weather data, business listings, etc.). The purpose is clear enough to understand it's a retrieval tool but lacks specificity about the resource being accessed.

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 sibling tools or specific contexts where this tool is preferred. The phrase 'for client data validation' hints at validation use cases, but this is too general to serve as practical guidance for tool selection.

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

zipB

Compresses the provided resource files (mapping of name to URI, which can be a data URI) to a zip file, which it returns as a data URI resource link.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesMapping of file names to URLs to include in the zip

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. It mentions the tool compresses files and returns a data URI, but lacks details on behavioral traits such as error handling (e.g., invalid URIs), performance (e.g., size limits), or side effects (e.g., network requests for URIs). This is inadequate for a tool that processes external resources.

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, well-structured sentence that efficiently conveys the tool's purpose, input, and output without unnecessary details. It is front-loaded with the core action and avoids redundancy, 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 complexity (processing multiple external files) and lack of annotations or output schema, the description is insufficient. It doesn't explain return values (e.g., structure of the data URI), error conditions, or limitations, leaving gaps for safe and effective tool invocation by an AI agent.

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 fully documents the 'files' parameter as a mapping of file names to URLs. The description adds marginal value by specifying that URIs can be data URIs and clarifying the mapping purpose, but doesn't provide additional syntax or format details beyond what the schema already covers.

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

Purpose5/5

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

The description clearly states the specific action ('compresses'), the resource ('provided resource files'), and the output ('to a zip file, which it returns as a data URI resource link'). It distinguishes itself from sibling tools like 'getResourceLinks' or 'getTinyImage' by focusing on compression rather than retrieval or image processing.

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 prerequisites (e.g., file availability), exclusions (e.g., unsupported file types), or compare it to sibling tools like 'add' or 'structuredContent' for handling multiple files. Usage is implied but not explicitly stated.

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. 2 tool updatesv1.0.0
    • RemovedstartElicitation
    • Addedzip
  2. 11 tool updates
    • First observedadd
    • First observedannotatedMessage
    • First observedecho
    • First observedgetResourceLinks
    • First observedgetResourceReference
    • First observedgetTinyImage
    • First observedlongRunningOperation
    • First observedprintEnv
    • First observedsampleLLM
    • First observedstartElicitation
    • First observedstructuredContent

TDQS

C2.6/5.0
Disambiguation2/5

Multiple tools have overlapping or unclear purposes. For example, 'annotatedMessage', 'structuredContent', and 'getResourceLinks' all seem to demonstrate metadata or structured data features, making it difficult for an agent to choose between them. Similarly, 'echo' and 'printEnv' both serve debugging purposes, while 'add' and 'zip' are isolated utilities with no clear connection to the others.

Naming Consistency2/5

The naming conventions are inconsistent and chaotic. There is a mix of styles: some tools use camelCase (e.g., 'annotatedMessage', 'getResourceLinks'), others use snake_case (e.g., 'longRunningOperation', 'printEnv'), and some are single words (e.g., 'add', 'echo', 'zip'). There is no discernible pattern, which makes the set harder to navigate and predict.

Tool Count3/5

With 11 tools, the count is reasonable for a server, but it feels borderline due to the lack of a clear domain. The tools appear to be a miscellaneous collection of demonstrations and utilities rather than a cohesive set for a specific purpose, making the number seem slightly high for the apparent scope.

Completeness2/5

The server lacks a clear domain, making it difficult to assess completeness. However, based on the tool descriptions, it seems to be a demonstration server for MCP features. There are significant gaps: for example, if it's meant to showcase MCP capabilities, it might miss tools for other core features like streaming or error handling. The tools are fragmented and don't form a complete workflow or coverage of a specific area.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A simple application demonstrating Model Context Protocol (MCP) integration with FastAPI and Streamlit, allowing users to interact with LLMs through a clean interface.
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Complete Model Context Protocol (MCP) server designed to facilitate seamless interaction between Large Language Models (LLMs) and end-users. It provides a robust set of tools for notifications, confirmations, selections, and text inputs, supporting multiple rendering modes including Console, GUI, and Telegram Bot.
    2
    MIT

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/epicweb-dev/epic-me-mcp'

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