aperion-shield
OfficialServer Quality Checklist
Latest release: v1.0.5
- Disambiguation3/5
Most tools target distinct file operations, but read_file is a deprecated duplicate of read_text_file and list_directory overlaps heavily with list_directory_with_sizes, creating avoidable ambiguity. directory_tree also offers a third way to inspect directory contents, though its recursive JSON output is distinct enough.
Naming Consistency4/5The set overwhelmingly follows a clear verb_noun snake_case pattern (read_text_file, write_file, create_directory, move_file, get_file_info). directory_tree is a minor deviation since it lacks a verb, but this does not seriously impair predictability.
Tool Count4/514 tools is a reasonable size for a filesystem-oriented server, but a couple of tools are redundant (deprecated read_file and list_directory_with_sizes vs. list_directory). Slightly trimming duplicates would make the count tighter, but the overall scope is appropriate.
Completeness3/5Read, write, edit, move, create, search, and metadata operations are covered, but there is no delete_file/remove_directory or copy operation, leaving lifecycle coverage incomplete. Agents performing file cleanup or duplication tasks would hit a dead end.
Average 4.1/5 across 14 of 14 tools scored. Lowest: 3.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 20 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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.
This repository includes a glama.json configuration file.
This server has been verified by its author.
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
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, the description discloses that listings are prefixed with [FILE]/[DIR] and that the operation only works within allowed directories, which are useful behavioral constraints. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and informative, and the allowed-directories warning matters. The sentence 'This tool is essential...' is promotional redundancy that adds no operational information.
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?
For a single-parameter, read-only tool with an output schema and readOnly annotation, the description covers listing behavior, output presentation, and access scope. The main residual gaps are detailed path format and sibling routing, which are not critical for basic invocation.
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?
The path property's schema has no description, but the description clarifies that path is a directory location and restricts it to allowed directories. It still omits concrete format requirements such as absolute vs relative paths or existence requirements, so compensation for 0% schema coverage is partial.
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?
States a concrete operation: get a detailed listing for a specified path, and even describes output prefixes. However, it does not explicitly distinguish itself from siblings like list_directory_with_sizes or directory_tree, so the agent must infer scope from 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?
Provides only a generic use case ('understanding directory structure and finding specific files') and a restriction to allowed directories. It never says when to prefer this over list_directory_with_sizes or directory_tree, nor when not to use it.
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?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds meaningful behavioral detail: base64 encoding, MIME type inclusion, content-type routing for image/audio versus other files, and the allowed-directories restriction. It does not describe error cases or file-size limits, but the core behavior is transparent.
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 three concise sentences with no filler. The primary behavior is front-loaded, followed by key type-routing details and a scope constraint. Every sentence contributes useful information.
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 tool's low complexity, a single parameter, rich annotations, and an output schema, the description covers the essential invocation requirements: what the tool returns, how different file types are represented, and the directory constraint. The main gap is the absence of explicit routing to sibling read tools, but the core invocation details are sufficient.
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?
There is only one parameter, path, and schema description coverage is 0%, so the description must compensate. It clarifies that the path must be within allowed directories, but it does not explain path format, absolute versus relative paths, or how to discover the allowed directories via list_allowed_directories.
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 states a specific verb and resource: read a file and return it as a base64-encoded content block with its MIME type. It also differentiates behavior by file type (image/audio vs embedded resource), which makes the tool's function clear. However, it does not explicitly contrast it with the similar sibling tools read_file and read_text_file.
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?
The description provides no when-to-use versus alternative guidance. It does not say to prefer read_text_file for plain text, read_multiple_files for batch reads, or how to decide between read_file and read_media_file. The 'only works within allowed directories' clause is a constraint, not usage guidance.
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?
The description discloses important behavioral details beyond the readOnlyHint annotation: the exact JSON structure, the invariant that directories always have a children array while files never do, 2-space indentation, and the allowed-directories constraint. This gives the agent a clear model of what to expect.
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 concise and front-loaded with the core action, then provides necessary structural details. Every sentence adds value, and there is no redundant filler.
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 output format is well described and the readOnlyHint covers safety, but the description is incomplete regarding excludePatterns semantics and does not connect to alternative directory listing tools. This leaves meaningful gaps for an agent trying to decide whether and how to invoke it.
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 input schema provides only parameter names and types, and schema description coverage is 0%. The description does not explain the path parameter or the excludePatterns parameter, leaving the agent to guess how to format the path or how exclude patterns behave.
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 states a specific verb and resource: get a recursive tree view of files and directories as JSON. It explicitly says 'recursive tree view', which distinguishes it from the sibling list_directory and list_directory_with_sizes tools without needing to open their schemas.
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?
Usage context is implied by the phrase 'recursive tree view' and 'Only works within allowed directories', but there is no explicit guidance on when to choose this over list_directory or list_directory_with_sizes. No alternatives are named, though the recursive nature does implicitly narrow the use case.
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?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds meaningful behavior: handling various text encodings, providing detailed error messages, supporting head/tail line limits, and restricting operation to allowed directories. These details go beyond the annotations without contradicting them.
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 moderately sized and front-loaded with the core purpose. Each sentence contributes useful information such as encoding handling, error messages, usage context, parameter behavior, and access restrictions. There is slight redundancy between the first sentence and the usage guidance, but it is not wasteful.
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?
For a simple read-only tool with an output schema, the description covers essential context: encodings, error behavior, head/tail options, extension-agnostic text handling, and directory restrictions. It does not explicitly clarify the relationship with the sibling read_file tool or address potential interactions between head and tail, but these are minor gaps given the schema and annotations.
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 description coverage is 67%; the head and tail parameters are already described in the schema. The description reinforces their behavior and adds that the default is complete contents, but it does not add meaningful detail for the undocumented required path parameter beyond implying it is a file system path within allowed directories.
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 reads the complete contents of a file as text, which is a specific verb+resource. It distinguishes itself from read_media_file by specifying text regardless of extension and from read_multiple_files by focusing on a single file, but it does not explicitly differentiate from the similarly named sibling read_file.
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?
It explicitly says to use this tool when examining the contents of a single file, giving clear context. It implies exclusions through 'as text regardless of extension' and 'Only works within allowed directories,' but it does not name alternative tools such as read_media_file or read_multiple_files when those would be more appropriate.
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?
Annotations already declare destructiveHint=true, and the description aligns by describing edits that replace content. It adds useful behavioral context beyond annotations: exact line-sequence matching, git-style diff output, and restriction to allowed directories.
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?
Three concise sentences, each earning its place: operation and matching semantics, diff return value, and directory constraint. Purpose is front-loaded and there is no filler.
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?
For a mutating line-edit tool, the description covers the core mechanics, return format, and access constraint, and the output schema presumably details the diff structure. It could mention failure behavior when oldText does not match, but overall it is sufficiently complete for typical use.
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 description coverage is low at 33%, so the description partially compensates by explaining that edits replace exact line sequences with new content, which clarifies oldText/newText semantics. However, it does not clarify the path parameter beyond the allowed-directories note, and dryRun is left to the schema.
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 states a specific verb ('Make line-based edits') and resource ('text file'), and emphasizes line-based replacement, which distinguishes it from sibling write_file and read_file tools. The return of a git-style diff also adds a clear functional identity.
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 for targeted, line-level modifications and states the allowed-directories constraint, but it does not explicitly explain when to prefer edit_file over write_file or other alternatives. No sibling or condition-based guidance is provided.
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?
Annotations already mark the tool as destructive and idempotent. The description adds valuable behavioral context by warning that existing files are overwritten without warning, stating that it handles text content with proper encoding, and noting that it only works within allowed directories. No contradiction with annotations exists.
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?
Three sentences with no filler. The main action is front-loaded, followed by a necessary caution and two essential constraints. Every sentence earns its place and the description is easy to parse.
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?
For a simple two-parameter write tool with an output schema and strong annotations, the description covers the critical behaviors: overwriting, caution, text encoding, and directory restrictions. It does not explain how to discover allowed directories or what happens if an intermediate directory is missing, but these are minor gaps given the tool's simplicity.
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?
The input schema provides only parameter names and types with zero description coverage, so the description must compensate. It adds some meaning: "content" is text content with proper encoding, and "path" must be within allowed directories. However, it does not specify path format, file extension expectations, or encoding details, leaving moderate ambiguity.
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 states a specific verb and resource: create a new file or completely overwrite an existing file with new content. It clearly differentiates itself from siblings like read_file and edit_file by emphasizing complete overwrite rather than partial modification or reading.
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 when the tool should be used: for creating files or fully replacing their content. It also provides a caution about overwriting without warning and a constraint about allowed directories. However, it does not explicitly mention alternatives like edit_file for partial modifications or when not to use this tool.
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?
Annotations already indicate readOnlyHint=true, so the description adds behavioral context by mentioning the [FILE] and [DIR] prefixes and the allowed directories constraint. No contradictions; it aligns with the read-only nature.
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 three sentences, all essential. It front-loads the main action and follows with useful details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the annotations provide read-only context, the description covers purpose, usage constraints, and output format. It is sufficiently complete 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?
The schema covers only 50% of parameters (sortBy has a description, path does not). The description adds no parameter-level details beyond the schema, only stating 'in a specified path.' It does not compensate for the low 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 tool's action: 'Get a detailed listing of all files and directories in a specified path, including sizes.' It also highlights the distinguishing feature of [FILE] and [DIR] prefixes, which differentiates it from the sibling tool 'move_file'.
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 provides clear context for when to use the tool: 'useful for understanding directory structure and finding specific files within a directory.' It also adds a constraint: 'Only works within allowed directories.' However, it does not explicitly compare with the sibling tool or specify when not to use it.
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?
Discloses failure if destination exists and cross-directory behavior. Annotations already destructiveHint=true, but description adds context beyond annotations.
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?
Three sentences, front-loaded with main purpose, no wasted words. Efficient and clear.
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?
Covers purpose, conditions, and constraints. Output schema exists but not shown; description is sufficient for a simple move/rename tool.
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?
Adds meaning by stating paths and allowed directories constraint, but schema coverage is 0% and description could provide more parameter details (e.g., format, relative vs absolute).
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?
Description clearly states 'Move or rename files and directories' with specific verb and resource. Distinguishes from sibling 'list_directory_with_sizes'.
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?
Provides guidance on when destination exists (fail), cross-directory use, and constraints (within allowed directories). Lacks explicit alternative or when-not-to-use.
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?
The annotations already provide readOnlyHint=true, covering the safety profile. The description adds that output is text and that the tool is deprecated, but it does not reconcile 'complete contents' with the optional head/tail parameters that allow partial reads, nor does it mention encoding or file-size behavior beyond what the schema/output schema imply.
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 short sentences, with the primary behavior stated first and the deprecation routing second. There is no wasted wording or unnecessary background.
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?
For a simple deprecated read-only tool with an output schema and documented partial-read parameters, the description is nearly complete. The only notable gap is the mismatch between 'complete contents' and the head/tail partial-read behavior, which could slightly mislead an agent about the default behavior.
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 description coverage is 67%: head and tail are documented, but path has no description. The tool description does not explain any parameters, though path is self-evident from the tool name and the head/tail meanings are already in the schema, so the description neither adds much nor creates a major 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 action: 'Read the complete contents of a file as text.' It also explicitly names the replacement tool, read_text_file, which distinguishes it from the other file-reading siblings such as read_media_file and read_multiple_files.
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?
The deprecation notice provides unambiguous routing guidance: 'DEPRECATED: Use read_text_file instead.' This tells the agent not to use this tool and directly names the alternative, which is exactly the kind of explicit guidance this dimension rewards.
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?
Annotations already mark the tool read-only, and the description adds useful behavioral details: recursive traversal, glob pattern semantics relative to the working directory, return of full paths, and restriction to allowed directories. These go beyond the annotations without contradicting them.
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 compact and structured: purpose, pattern semantics, examples, return behavior, and constraint are each one clear sentence. There is no filler or repetition.
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?
With a read-only annotation and an output schema present, the description is nearly complete: it covers recursion, glob matching, returned paths, and allowed-directory scope. The main missing piece is a precise definition of the `path` parameter (e.g., whether it is the starting directory and whether it is relative or absolute).
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 compensate. It explains `pattern` well with glob syntax and examples ('*.ext', '**/*.ext'), but it never explicitly describes the `path` parameter or the `excludePatterns` parameter, leaving a meaningful gap for a required argument.
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 opens with a specific action and resource: 'Recursively search for files and directories matching a pattern.' It further clarifies the mechanism (glob-style patterns) and the output (full paths), which clearly differentiates it from sibling read/write/list tools.
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?
It gives an explicit when-to-use cue: 'Great for finding files when you don't know their exact location.' It also states the scope constraint 'Only searches within allowed directories,' but it does not explicitly mention sibling alternatives or when not to use them.
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?
Annotations already indicate readOnlyHint=true, and the description adds meaningful constraints: it returns metadata rather than content and only works within allowed directories. This goes beyond the structured annotation data without contradicting it.
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?
Three concise sentences with no filler. The main purpose is front-loaded, followed by return details and the usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter metadata tool with readOnly annotations and an output schema, this description is complete. It covers what the tool does, what it returns in general terms, when to use it, and its directory limitation.
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 description coverage is 0%, so the description must compensate for the undocumented 'path' parameter. It clarifies that path can be a file or directory and must be within allowed directories, but it doesn't specify format (absolute vs relative) or other constraints.
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 a specific verb and resource ('Retrieve detailed metadata about a file or directory') and clearly contrasts with reading file content. This distinguishes it from siblings like read_file even without naming them.
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?
It states when to use the tool: for understanding file characteristics without reading content. It doesn't explicitly list exclusions or name alternative tools, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the idempotentHint annotation by stating that existing directories will cause the operation to 'succeed silently' and that multiple nested directories can be created at once. It also discloses the permissions boundary via 'Only works within allowed directories.' No contradiction with annotations.
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 compact and front-loaded, covering the core action, idempotency, nested behavior, use case, and a security constraint in only four sentences. Every sentence adds value.
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?
For a simple one-parameter tool, the description sufficiently covers the behavior, constraints, and use case. The main remaining gap is precise path-format guidance, but the existence of list_allowed_directories as a sibling and the output schema fill in much of the missing context.
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 description coverage is 0%, so the description must compensate. It does partially: 'Can create multiple nested directories in one operation' clarifies that `path` can contain multiple segments, and 'Only works within allowed directories' constrains its values. However, it does not specify path format (e.g., relative vs absolute, trailing slash) or how allowed directories are determined.
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 verb and resource ('Create a new directory or ensure a directory exists') and adds meaningful detail about nested creation. It is easily distinguished from sibling file-read/write tools because it explicitly targets directory creation.
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?
It gives practical usage context ('Perfect for setting up directory structures...') and an important constraint ('Only works within allowed directories'). It does not explicitly name alternatives or conditions to avoid, but the use case is clear enough for an agent to decide when to call it.
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?
The readOnlyHint annotation already marks this as safe, and the description adds meaningful behavioral context: subdirectories within allowed directories are also accessible. This clarifies the effective access scope beyond what annotations and the empty schema provide.
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 compact and front-loaded, with the core purpose stated in the first sentence. The second sentence adds a useful scoping detail and a practical usage directive without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only discovery tool with an output schema, the description fully covers what an agent needs: what the tool returns, the nested access behavior, and when to invoke it. Nothing essential is missing.
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 takes zero parameters, so the description does not need to explain parameter meanings. The baseline for no parameters is 4, and the description appropriately avoids irrelevant parameter details.
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: returning the list of directories the server is allowed to access. It distinguishes this from directory-listing and file-access siblings by focusing on permitted root directories rather than file operations or recursive listings.
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 explicitly says to use this tool before trying to access files, which gives clear situational guidance. It does not explicitly name alternative tools or state when not to use it, but the context is clear enough for an agent to decide when this tool is relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, it discloses that failed reads for individual files won't stop the operation, each file's content is returned with its path as reference, and it only works within allowed directories. These are non-obvious behaviors that materially affect invocation and error handling.
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?
Four compact sentences, each carrying distinct information: purpose, efficiency context, output format, and failure behavior. The core purpose is front-loaded and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, an output schema, and read-only annotations, the description covers the essential aspects: purpose, when to use it, output format, partial-failure semantics, and access restrictions. Nothing critical is missing for correct invocation.
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 description coverage is 100%, so the schema fully documents the paths parameter. The description adds no additional parameter-level meaning beyond restating the allowed-directories constraint already present in the schema.
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 states a specific verb and resource: reading the contents of multiple files simultaneously. It also distinguishes itself from single-file siblings by emphasizing the batch behavior, making its purpose unmistakable.
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 explicitly says to use it when analyzing or comparing multiple files and notes it is more efficient than reading one by one. However, it does not name specific alternatives or state when not to use it, so it stops short of full routing guidance.
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/AperionAI/shield'
If you have feedback or need assistance with the MCP directory API, please join our Discord server