MCP Index Notes
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have distinct purposes, but some overlap exists: 'graph-neighbors' and 'graph-path' both involve graph traversal, which could cause minor confusion. However, descriptions clarify that 'graph-neighbors' retrieves connected nodes while 'graph-path' finds specific paths, helping to differentiate them. Other tools like 'index-query' and 'index-list-keys' are clearly separate in function.
Naming Consistency5/5Tool names follow a highly consistent pattern throughout, using a clear 'category-action' format (e.g., 'graph-import-from-notes', 'image-delete', 'index-backup'). This consistency makes it easy to predict tool purposes and group related operations, with no deviations or mixed conventions observed.
Tool Count4/5With 16 tools, the count is slightly high but reasonable for the server's scope, which covers graph operations, image management, and note indexing. It feels comprehensive without being overwhelming, though a few tools like 'index-health' might be considered optional, slightly reducing efficiency.
Completeness5/5The tool set provides complete coverage for the domain of note and graph management, including CRUD operations (e.g., upsert, delete, get), querying, backup/restore, and health checks. There are no obvious gaps; agents can perform full lifecycles for notes, images, and graph nodes without dead ends.
Average 2.7/5 across 16 of 16 tools scored. Lowest: 1.8/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
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.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers nothing beyond the basic name. It doesn't indicate whether this is a read-only operation, what kind of output to expect, whether it has side effects, or any performance characteristics. The description fails to provide any behavioral context that would help an agent understand what happens when invoking this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness2/5Is the description appropriately sized, front-loaded, and free of redundancy?
While 'Health check' is technically concise, it represents under-specification rather than effective conciseness. The description is too brief to be useful - it doesn't earn its place by providing meaningful information. A truly concise description would still convey essential purpose and context in minimal words, which this fails to do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and a completely inadequate description, this is severely incomplete. The description provides no information about what the tool returns, what systems it checks, or how to interpret results. Given the complexity implied by having multiple index-related sibling tools, this description is completely inadequate for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there's no need for parameter documentation in the description. With 100% schema description coverage (though empty since there are no parameters), the baseline would be 3, but the absence of parameters elevates this to 4 since there's no parameter documentation burden. The description doesn't need to compensate for any parameter gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Health check' is a tautology that essentially restates the tool name 'index-health', providing no additional specificity about what the tool actually does. It doesn't specify what resource or system is being checked, what 'health' means in this context, or how this differs from other health-related tools that might exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines1/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance about when to use this tool versus alternatives. There's no mention of appropriate contexts, prerequisites, or relationships to sibling tools like 'index-list-keys', 'index-query', or 'index-upsert' that might serve different purposes within the same index system.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'import' but doesn't disclose behavioral traits such as whether this is a read-only or mutating operation, what permissions are needed, if it overwrites existing data, or how errors are handled. The description is too minimal to inform the agent adequately about 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence, front-loaded with the main action. There's no wasted text, but it might be overly terse, risking under-specification rather than true efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and 2 parameters, the description is incomplete. It doesn't cover parameter details, behavioral aspects, or usage context, leaving significant gaps for the agent to understand how to invoke the tool effectively in a server with multiple graph and index tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'key' and implies 'source' through 'note -> key and note -> tags', but doesn't explain what 'key' or 'source' parameters do, their formats, or how they interact. With 2 parameters and no schema descriptions, this adds minimal meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool imports nodes and edges from notes, specifying 'note -> key and note -> tags', which gives a vague purpose. It mentions the resource (notes) and transformation (to key/tags) but lacks specificity about what 'import' entails (e.g., into a graph database) and doesn't clearly distinguish from siblings like graph-node-upsert or index-upsert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., after creating notes), or exclusions, and with siblings like graph-node-upsert and index-upsert that might handle similar data, the agent has no help in selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the return value ('Returns file paths') but lacks details on permissions, side effects (e.g., file system changes), error handling, or performance (e.g., rate limits). For a tool that likely writes files, this is inadequate disclosure.
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 brief and front-loaded with the core purpose in the first clause. Both sentences are relevant, with the second adding return value information. However, it could be more structured (e.g., separating input and output details) and slightly verbose in phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It omits critical details like parameter usage, file formats, error cases, and output structure beyond 'file paths'. For an export tool with multiple inputs, this leaves significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but fails to do so. It implies 'id' or 'key' parameters for image identification but doesn't explain 'dir' (output directory), 'limit' (number of images), or their interactions. No syntax, formats, or constraints are provided, leaving parameters largely undocumented.
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 action ('Export images') and resource ('images'), specifying they can be identified 'by id or key' and output 'to files'. It distinguishes from siblings like image-get (retrieval) and image-delete (removal) by focusing on file export. However, it doesn't explicitly differentiate from non-image tools, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing images), exclusions (e.g., invalid formats), or comparisons to siblings like image-get (which might retrieve without exporting). The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the optional base64 data inclusion but doesn't address critical behaviors like authentication requirements, rate limits, error conditions, pagination (despite having a 'limit' parameter), or whether this is a read-only operation. The description is insufficient for a tool with 4 parameters and 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two clear sentences that front-load the main purpose. Every phrase adds value: the first establishes core functionality, the second adds an important optional feature. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (beyond mentioning base64 data as optional), how results are structured, error handling, or the relationship between parameters. For a retrieval tool with multiple parameters, this leaves significant gaps.
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?
With 0% schema description coverage and 4 parameters, the description fails to compensate adequately. It only mentions 'id or key' and 'include base64 data', leaving 'limit' completely undocumented and providing no context about parameter relationships (e.g., whether id and key are mutually exclusive, what 'limit' applies to, or format requirements for 'key').
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 verb 'Retrieve' and resource 'images', specifying it can be done 'by id or key'. It distinguishes from siblings like image-delete and image-upsert by focusing on retrieval rather than modification. However, it doesn't explicitly differentiate from image-export which might also retrieve images.
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 guidance on when to use this tool versus alternatives like image-export or image-upsert. It mentions the optional 'include base64 data' feature but doesn't explain when this would be beneficial or necessary compared to other retrieval methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action is 'Delete' and mentions the return value ('Returns count/boolean'), but lacks critical behavioral details such as permissions required, whether deletion is permanent or reversible, rate limits, or error handling for invalid inputs.
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 with two sentences, front-loading the core action. However, the second sentence about return values could be integrated more smoothly, and some redundancy exists in stating 'by id or by key' without additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a deletion tool with no annotations, 0% schema coverage, and no output schema, the description is incomplete. It misses essential context like safety warnings, input validation, and detailed return value explanation, making it inadequate for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only vaguely mentions parameters ('by id or by key') without explaining their semantics, constraints, or usage. It does not compensate for the lack of schema documentation, leaving parameters poorly understood.
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 verb 'Delete' and the resource 'notes', specifying deletion can be by 'id or by key'. However, it does not distinguish this tool from sibling tools like 'image-delete' or 'graph-node-upsert' which might also delete resources, leaving room for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description mentions deletion by 'id or by key' but does not specify prerequisites, exclusions, or recommend other tools for related operations, such as using 'index-list-keys' to check keys before deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions depth and limit parameters but doesn't explain key behaviors like whether this is a read-only operation, what happens if the node doesn't exist, if results are paginated, or the format of returned neighbors. For a graph query tool, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get neighbors of a node') and includes key parameter context. Every word earns its place, with no redundancy or fluff, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a graph traversal tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It lacks details on behavior, error handling, return format, and practical usage, which are essential for an agent to invoke this tool correctly in a graph context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists parameters (node, depth, limit) but adds minimal semantics: 'by id or label/type' hints at node options, and 'up to a depth and limit' suggests constraints. However, it doesn't explain what 'neighbors' means in this context, how depth works (e.g., breadth-first), or units for limit, leaving parameters poorly understood.
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 action ('Get neighbors') and resource ('of a node'), specifying it operates on a graph node. It distinguishes from siblings like graph-path or graph-stats by focusing on neighbor retrieval rather than pathfinding or statistics. However, it doesn't explicitly differentiate from all siblings (e.g., graph-node-upsert), keeping it at 4 instead of 5.
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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing an existing node, or compare to other graph tools like graph-path for different traversal needs. This lack of context leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the operation ('Create or update') and return value ('Returns node id'), but lacks critical details like whether it's idempotent, what happens on conflicts, permission requirements, or error handling. This is insufficient for a mutation 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, using only one sentence that efficiently conveys the core action and outcome. Every word earns its place, with no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 4 parameters, nested objects, and no output schema) and lack of annotations, the description is incomplete. It misses essential context like behavioral traits, parameter details, and error handling, making it inadequate for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It lists 'label/type/props' and implies 'id' for updates, but doesn't explain their meanings, formats, or constraints (e.g., what 'props' object should contain, how 'type' relates to 'label'). This adds minimal value beyond the bare schema.
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 verb ('Create or update') and resource ('graph node') with specific attributes ('label/type/props'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'graph-import-from-notes' or 'graph-upsert' (if present), which prevents a perfect 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/5Does 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, such as 'graph-import-from-notes' for bulk operations or other graph-related tools. It mentions the return value but offers no context about prerequisites, error conditions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action 'Find a path' but doesn't describe what happens if no path exists, whether the operation is read-only or has side effects, performance characteristics, or output format. For a tool with 3 parameters and no annotation coverage, this leaves significant gaps in understanding its 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the core purpose ('Find a path of nodes from A to B') and adds necessary detail ('by id or label/type') in a parenthetical. This is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It covers the basic purpose but lacks details on parameter usage, behavioral traits, and return values. For a path-finding operation in a graph context, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions that 'from' and 'to' can be specified 'by id or label/type', which adds some meaning beyond the schema's structural definition. However, it doesn't explain 'maxDepth' at all, and the coverage gap for all 3 parameters is only partially addressed, leaving key semantics unclear.
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 verb 'Find' and resource 'path of nodes from A to B', making the purpose understandable. It distinguishes from some siblings like 'graph-neighbors' (which finds neighbors rather than paths) and 'graph-node-upsert' (which modifies nodes). However, it doesn't explicitly differentiate from all graph-related tools like 'graph-stats' or non-graph tools.
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 guidance on when to use this tool versus alternatives. It doesn't mention when path-finding is appropriate compared to other graph operations like 'graph-neighbors' or 'graph-stats', nor does it specify prerequisites or exclusions. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action is 'Delete,' implying a destructive mutation, but lacks details on permissions, reversibility, side effects, or response format. This is inadequate for a mutation tool with zero annotation coverage, leaving 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core action and clearly presents the two parameter-driven modes. 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.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive mutation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral traits, error handling, or return values, leaving the agent with insufficient context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions parameters 'id' and 'key' and their purposes (delete by id or all by key), adding some semantics beyond the bare schema. However, it doesn't explain data types, constraints, or interactions between parameters, failing to fully address the coverage gap.
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 action ('Delete') and resource ('image'), specifying two modes: by id or all by key. It distinguishes from sibling tools like image-get and image-upsert by focusing on deletion. However, it doesn't explicitly contrast with index-delete or other deletion tools, keeping it from a perfect 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/5Does 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., needing an existing image), exclusions, or comparisons with siblings like image-upsert (for updates) or index-delete (for different resources). Usage is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists keys and counts, implying a read-only operation, but doesn't specify whether it's safe, if it requires authentication, what format the output is in, or any rate limits. 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description 'List known keys and counts' is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for a simple tool, 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/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's apparent simplicity (one parameter, no output schema, no annotations), the description is incomplete. It doesn't cover parameter meaning, output format, or behavioral traits like safety or prerequisites, which are necessary for the agent to use it effectively in context with sibling tools.
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 has one parameter ('limit') with 0% description coverage, and the tool description adds no information about parameters. It doesn't explain what 'limit' means (e.g., maximum number of keys to return) or how it affects the output, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List known keys and counts' clearly states the action (list) and target (keys with counts), which is specific enough to understand the tool's function. However, it doesn't explicitly differentiate from sibling tools like 'index-query' or 'index-stats', which might have overlapping functionality, 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/5Does 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 like 'index-query' or 'index-stats'. It lacks context about prerequisites, such as whether an index must exist, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool queries notes but doesn't describe what the query returns (e.g., note content, metadata, or IDs), any limitations (e.g., search scope or performance), or prerequisites (e.g., required index setup). This leaves significant gaps for a query tool with three parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality. Every word earns its place by specifying the resource (notes) and two query methods, with no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (three parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return values, how parameters interact (e.g., can 'key' and 'text' be used together?), or behavioral aspects like error handling. For a query tool with undocumented parameters, this is inadequate.
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 description coverage is 0%, so the description must compensate. It mentions 'key' and 'text' as query parameters, which aligns with two of the three parameters, but doesn't explain their semantics (e.g., what a 'key' represents, how 'text' search works, or what 'limit' controls). This adds minimal value beyond the bare schema.
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's purpose as querying notes using either key-based or full-text search. It specifies the resource (notes) and two distinct query methods, though it doesn't differentiate from sibling tools like 'index-list-keys' which might also retrieve note information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description mentions two query methods but doesn't specify scenarios for choosing between them or when to use this over sibling tools like 'index-list-keys' for listing keys or 'graph-import-from-notes' for graph-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'Returns imported count,' which adds some context about the output, but fails to describe critical behaviors like whether this operation is destructive (e.g., overwrites existing notes), requires specific permissions, or has side effects like validation errors.
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 extremely concise with two sentences that directly state the action and result, with no wasted words. It is front-loaded, immediately conveying the core purpose, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a restore operation (potentially destructive), no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on error handling, what 'imported count' means (e.g., success vs. partial failures), and how it interacts with existing data, making it inadequate for safe and effective use.
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 has 0% description coverage, so the description must compensate. It implies that the 'file' parameter should be a JSON backup file, but doesn't specify the expected format, path, or content structure (e.g., whether it's a file path or raw JSON data). This leaves significant gaps in understanding how to use the parameter effectively.
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 verb ('Restore') and resource ('notes from a JSON backup file'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'index-backup' or 'graph-import-from-notes', which prevents a perfect 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/5Does 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 like 'index-backup' (for creating backups) or 'graph-import-from-notes' (for importing notes in a different format). It also lacks prerequisites, such as needing an existing backup file, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the upsert operation and return value, but fails to describe critical traits like whether this requires specific permissions, if updates are idempotent, what happens on conflicts, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that are front-loaded: the first states the core action and resource, and the second specifies the return value. There is no wasted text, 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/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters with nested objects, no output schema, and no annotations), the description is incomplete. It doesn't cover parameter meanings, behavioral details like error handling or side effects, or how the return value relates to the operation. For a mutation tool with rich input schema but low documentation, this leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 17%, with only the 'id' parameter having a description. The tool description adds no information about parameters beyond what's implied by the name (e.g., 'key' and 'content' are required, 'backup' is an object). It doesn't explain the meaning of 'metadata', 'tags', or the 'backup' object's purpose, failing to compensate for the poor schema coverage.
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 action ('Create or update'), the resource ('a note under a key'), and the outcome ('Returns the note id'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'graph-node-upsert' or 'image-upsert', which might handle similar upsert operations on different resources, so it misses full sibling distinction.
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 guidance on when to use this tool versus alternatives, such as 'index-query' for reading notes or 'index-delete' for removal. It lacks context on prerequisites, like whether the key must exist, or exclusions, such as when to use 'graph-node-upsert' instead for graph-related data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return value ('Returns image id') which is helpful, but doesn't describe whether this is a create/update operation, what happens on duplicate keys, authentication requirements, rate limits, or error conditions. For a mutation tool with zero annotation coverage, this is insufficient.
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 extremely concise with just two sentences that efficiently convey the core functionality and return value. Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the upsert behavior (create vs update), doesn't clarify parameter relationships (data vs file), and provides minimal guidance on usage. The return value is mentioned but not fully described.
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 60% (3 of 5 parameters have descriptions). The description adds minimal value beyond the schema - it mentions 'base64 data or file path' which aligns with the 'data' and 'file' parameters, but doesn't explain the 'key', 'metadata', or 'mime' parameters beyond what's in the schema. Baseline 3 is appropriate given moderate schema coverage.
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 action ('Store an image') and resource ('under a key'), and distinguishes from siblings like image-get and image-delete by specifying it's for storage/upsert operations. However, it doesn't explicitly differentiate from image-export or explain what 'upsert' means versus pure creation.
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 guidance on when to use this tool versus alternatives like image-get or image-delete. It mentions the return value but doesn't explain when image-upsert is appropriate versus other image or index tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Export all notes') and output ('JSON backup file'), but lacks details on permissions required, whether it overwrites existing files, error handling, or performance implications (e.g., time/large datasets). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Export all notes') and specifies key details (output format, return value). There is zero waste, and every word earns its place by clarifying the tool's function concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation exporting all notes), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover parameter meaning, behavioral traits like file overwriting or errors, or output details beyond the path. For a backup tool with significant 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/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 1 parameter ('dir') with 0% description coverage, so the description must compensate. It doesn't mention the parameter at all, failing to explain what 'dir' represents (e.g., output directory path). However, with only one parameter and a clear overall action, the baseline is moderate, but the description adds no value beyond the schema.
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's purpose with a specific verb ('Export') and resource ('all notes'), specifying the output format ('JSON backup file') and what's returned ('path'). It distinguishes from siblings like 'index-restore' (import) and 'index-upsert' (update), though it doesn't explicitly contrast with them. The purpose is unambiguous but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., notes must exist), exclusions (e.g., not for partial backups), or comparisons to siblings like 'index-restore' for importing or 'image-export' for different data types. The description implies usage for full backups but offers no contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'gets' counts, implying a read-only operation, but doesn't specify if it requires permissions, has rate limits, returns real-time or cached data, or what the output format looks like. This leaves 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's function without any fluff or redundant information. It is front-loaded and appropriately sized for a zero-parameter tool, making it easy for an agent to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is minimal but adequate for the basic function. However, with no annotations and no output schema, it lacks details on behavioral aspects like permissions, rate limits, or return format, which could be important for an agent to use it correctly in a broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter details, as there are none to document. It efficiently states what the tool does without unnecessary parameter explanations, aligning well with the schema's completeness.
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's purpose with a specific verb ('Get') and resource ('counts of nodes and edges in the graph store'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'graph-neighbors' or 'graph-path', which might also provide graph-related information but with different scopes or outputs.
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 guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to sibling tools such as 'graph-neighbors' for neighbor counts or 'index-health' for system metrics, leaving the agent to infer usage based on the name alone.
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/vjsr007/mcp-index-notes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server