obsidian-writer-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools target distinct resources and actions (list operations vs note operations vs tasks vs inbox). The only potential confusion is among create_note, append_note, and create_or_append_note, but descriptions clarify their intended use cases.
Naming Consistency4/5All tools use the obsidian_ prefix and snake_case. However, list operations use a noun-first pattern (list_add, list_remove) while others use verb-first (read_note, create_task), which is a minor structural inconsistency.
Tool Count5/513 tools is well within the ideal range for a domain-specific server focused on notes, lists, tasks, and inbox. Each tool has a clear role and contributes to the overall functionality.
Completeness3/5Core workflows are covered (create/read/append notes, list management, tasks, inbox). Gaps include no delete for notes, no update/complete for tasks, and no explicit list creation, but these can often be worked around.
Average 4.1/5 across 13 of 13 tools scored. Lowest: 3.5/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 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
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the basic append action and fails to mention whether the file is created if missing, how tags/timestamp are handled, or any side effects. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource. Every word is informative, with no filler 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?
With 3 parameters, no annotations, and no parameter descriptions, the description is under-specified. It lacks details on tag/timestamp formatting, file creation behavior, and edge cases, making it insufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no explanation for the 'tags' or 'timestamp' parameters; 'line' is only implied by 'append one line.' The description does not compensate for the complete lack of parameter documentation.
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 specific action ('Append one line') and resource ('today's inbox file'), making it distinct from siblings like obsidian_append_note or obsidian_create_note. The scope is explicit and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage trigger: 'Use when the user asks to add/save/capture something to inbox.' It does not explicitly mention when not to use it or alternatives, but the inbox focus differentiates it from note-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description is the only source of behavioral disclosure. It explains the conditional append-vs-create behavior and slug reuse, which is valuable, but it omits details about failure modes, what 'compatible' means, permission requirements, or output/return 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 moderately concise and front-loaded with the main purpose; the conditional and pre-step guidance earn their place. It has some redundancy between the first sentence and the 'If compatible... If not...' restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and 0% schema coverage, the description covers purpose, usage, and a precondition but leaves key gaps such as parameter semantics, the definition of 'compatible note', and error handling. The output schema mitigates return-value uncertainty but not these 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?
The schema provides no property descriptions (0% coverage), and the description only implicitly references 'slug' as the identifier for an existing compatible note. It does not clarify the meaning of 'title' or 'content', nor how they interact with the slug, leaving the agent to infer parameter semantics.
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 ('Create a note or append to an existing compatible note') tied to a named resource ('configured default vault') and explicitly positions itself for ambiguous requests, distinguishing it from sibling tools like obsidian_create_note and obsidian_append_note.
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 explicit when-to-use signals ('Use for ambiguous requests like...') and a clear prerequisite ('Before using, prefer calling obsidian_list_notes'). However, it does not explicitly state when not to use it or name alternative tools for unambiguous cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It discloses that the tool appends (not overwrites), requires an existing note, and uses the default vault, but it doesn't discuss failure modes, authentication, or return values. This is sufficient but not rich.
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 four sentences with no fluff. It front-loads the purpose, then gives usage guidance and helpful pre-steps. Slightly longer than strictly necessary but every clause 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 two-parameter append tool, the description provides purpose, usage context, and pre-requisite discovery steps. It omits explicit error/return behavior, but the output schema likely covers that, and the description is adequate for correct invocation.
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?
Despite 0% schema coverage, the description indirectly defines both parameters: 'content' is Markdown to append, and 'slug' is a note identifier that should be discovered via list_notes. It gives functional meaning beyond the bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool appends Markdown to an existing note in the default vault, which is a specific verb and resource. It distinguishes from create_note by specifying 'existing note', though it doesn't explicitly contrast with the sibling create_or_append_note.
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 when to use ('when the user asks to add content to an existing note') and gives helpful pre-steps (list notes first, read note if needed). It doesn't mention alternatives or when not to use it, so it stops short of a 5.
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 non-obvious behaviors: semantic fields are passed to obsidian-writer for final Markdown formatting, and dependencies are accepted but not sent. This goes beyond a simple 'create task'. However, it does not describe return values, failure modes, or vault prerequisites.
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 four concise sentences with purpose first, usage guidance second, and technical caveats last. No redundant or filler content.
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?
With 15 parameters, no annotations, and no schema descriptions, the description is too sparse to fully guide invocation. It omits parameter meanings, date formats, vault targeting, and expected output, making it incomplete for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description does not explain individual parameters. It only generalizes that semantic fields should be passed and notes depends_on is ignored, leaving 14 other parameters unspecified.
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 first sentence clearly states 'Create a structured Obsidian Tasks-compatible task in a vault', specifying the verb, resource, and format. This distinguishes it from sibling tools like obsidian_create_note and obsidian_list_tasks.
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 states when to use it: 'Use when the user asks for a task, todo, manual reminder, or pending action.' It provides clear trigger conditions, though it does not mention alternatives or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that items are added as 'unchecked' and that it operates on a 'configured default vault,' which adds some context. However, it omits important behaviors like whether the list must already exist, whether it appends to the end, and any idempotency or side-effect details. The description is not egregiously opaque but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the core purpose in the first sentence and usage guidance in the second. It is front-loaded and free of unnecessary detail, making it easy for an agent to quickly grasp the tool's function and prerequisite actions.
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 tool with 2 parameters and an output schema, the description provides adequate context: it states what the tool does, when to use it, and how to resolve ambiguity about list names. It does not detail edge cases like duplicate handling or list creation, but the output schema likely covers return values. Slight gaps remain around behavioral specifics, but overall it is sufficiently complete.
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 references the parameters: 'items' are 'unchecked items' and 'list_name' is a 'named list' in the default vault. It does not clarify the expected format of list_name (exact name vs. path) or items (e.g., markdown formatting). The little information provided is inferable from parameter names, so the description adds minimal value beyond 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 clearly states the tool's function: adding one or more unchecked items to an Obsidian list in the default vault. It uses a specific verb ('add') and resource ('list'), and differentiates from sibling tools like obsidian_list_remove and obsidian_list_update by focusing on addition.
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?
Explicitly states when to use: 'when the user asks to add items to a named list.' It also directs users to call obsidian_list_lists when the list name is uncertain, providing a clear alternative for name resolution. However, it does not explicitly exclude related tools like obsidian_append_note, so it misses some negative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It states the basic removal action but does not mention permanence, behavior when a list or item is not found, side effects, or permissions. For a mutating tool, this is insufficient 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 two concise sentences with no redundant words. The first sentence states the purpose directly, and the second adds practical usage guidance. Every sentence earns its place.
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 tool with two plain string/array parameters and an output schema, the description covers the core purpose and usage, including a helpful precaution about list names. It lacks some behavioral details, but given the tool's simplicity and the existence of an output schema, it is reasonably complete.
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 does clarify that 'items' are removed one or more at a time and that 'list_name' refers to an exact named list. However, it does not provide details on string formatting, whether items must already exist, or any constraints, leaving some gaps.
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 ('Remove'), the resource ('Obsidian list'), and the scope ('configured default vault'). It distinguishes itself from sibling tools like obsidian_list_add and obsidian_list_update by focusing specifically on removal.
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?
It explicitly says to use when the user asks to remove items from a named list, and provides a conditional prerequisite to call obsidian_list_lists if the exact list name is uncertain. This gives clear usage context and points to a relevant alternative/verification step.
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 for behavioral disclosure. It only states the basic operation and a prerequisite, but does not disclose how old_items and new_items are mapped (e.g., replacement semantics), error handling when old_items are not found, or whether the modification is irreversible. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the main action in the first sentence and usage guidance in the second. It is front-loaded, free of filler, and each sentence earns its place.
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 relatively simple 3-parameter tool, the description covers the core purpose, when to use it, and a useful prerequisite. The output schema likely documents return values, so that omission is acceptable. However, it lacks explicit parameter semantics and edge-case behavior, making it not fully complete.
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 0% description coverage, so the description must compensate. It implies list_name is the list identifier and old_items/new_items correspond to existing and desired items, respectively. However, it does not explicitly describe each parameter or their expected format (e.g., full list vs. partial), providing only minimal clarity.
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 updates list items in an Obsidian list, with a specific verb ('update') and resource ('list items'). It also notes the scope ('configured default vault') and differentiates from sibling tools like obsidian_list_add and obsidian_list_remove by focusing on changing existing items.
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 description explicitly says when to use this tool: 'Use when the user asks to rename/change existing list items.' It also provides a concrete instruction to call obsidian_list_lists first if there is doubt about the exact list name, which is clear guidance for selection and prerequisite usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the date default ('when omitted, obsidian-writer uses today') and mentions the configured default vault, adding useful behavior. However, it doesn't address edge cases like invalid dates or vault override behavior, making it adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, followed by usage and date format. Every sentence contributes value with no redundancy or filler, earning a 5.
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 tool with an output schema and only optional parameters, the description covers the essential aspects: purpose, usage, date format, and default behavior. The only notable gap is the missing explanation of the vault parameter, but given the tool's simplicity and presence of an output schema, this is a minor omission.
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?
With 0% schema description coverage, the description must compensate. It explains the date parameter format and default ('Date must be YYYY-MM-DD; when omitted, uses today'), but it does not explain the vault parameter at all, leaving its semantics ambiguous. Partial compensation justifies a 3.
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 'Read inbox items for a specific day from the configured default vault,' specifying the verb (read), resource (inbox items), and scope (specific day). This distinctively separates it from siblings like obsidian_read_note (reads a note) and obsidian_append_inbox (writes to inbox), earning a 5.
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?
Explicitly provides a use case: 'Use when the user asks what was captured/saved in the inbox today or on a specific date.' This is clear context, though it doesn't mention when not to use it or name alternative tools explicitly, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, description carries full burden. It discloses default status (todo), default vault behavior, and scope (lists tasks, not files or notes). This conveys the read-only nature implicitly and adds useful context about how the tool behaves by default, even though it doesn't discuss edge cases like pagination or limit 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?
Three sentences pack purpose, usage, and default behavior with no fluff. The core action is front-loaded, and every sentence adds information. This is concise and well-structured.
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 has an output schema (thus return format is already defined), the description is complete enough: it covers purpose, when to use, and default behavior. It mentions vault selection and task statuses, covering most relevant scenarios. It could add a mention of the limit parameter, but that's a minor gap given the output schema and straightforward functionality.
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 description must compensate. It explains status values (pending, completed, cancelled, all) and mentions vault (default vault), but does not explain the 'limit' parameter at all. Since limit is a common parameter and schema only provides the name, description partially compensates but leaves one parameter ambiguous, so score stays average.
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 it lists structured Obsidian Tasks-compatible tasks from a vault, which is a specific verb+resource (list tasks). It also differentiates from siblings by focusing on tasks rather than notes, lists, or other operations, and mentions statuses (pending, completed, cancelled, all) that align with the tool's unique role.
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?
Explicitly says 'Use when the user asks what tasks/todos/reminders are pending, completed, cancelled, or all,' providing clear context on when to invoke. It does not name alternatives or exclusions, but the guidance is specific and distinguishes this from siblings like obsidian_list_lists or obsidian_read_inbox.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'Read' and 'existing note,' implying a read-only operation, and adds context about the default vault. However, it does not disclose details such as error behavior if the note is missing, or explicit confirmation that it returns the note content, though an output schema 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?
The description is two sentences, front-loaded with the core purpose ('Read an existing note from the configured default vault'), followed by concise usage guidance. Every sentence earns its place without redundancy.
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 tool with an output schema, the description covers purpose, input source, and when to use it. It could add error-handling notes, but the output schema likely covers return values, and the description is sufficiently complete for an agent to select and invoke the tool.
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 sole parameter 'slug' has no schema description, but the description explains it is the slug returned by obsidian_list_notes, giving practical meaning and reducing ambiguity. This compensates for the lack of schema-level documentation.
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 with a specific verb and resource: 'Read an existing note from the configured default vault.' It distinguishes from sibling tools like obsidian_append_note and obsidian_list_notes by specifying the read intent and the prerequisite slug from obsidian_list_notes.
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 instructs when to use the tool: 'Use before appending to a note or answering about its content,' and provides the prerequisite of using the slug from obsidian_list_notes. While it does not explicitly mention when not to use it or alternative tools like obsidian_read_inbox, the context is clear.
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?
No annotations are provided, so the description carries the burden. It discloses key behaviors: always creates a new note, suffixes _2/_3 on slug conflicts, and provides content formatting guidance (well-formatted Markdown, don't repeat title). This is substantial but does not cover auth or return details beyond the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the primary purpose, and every sentence provides useful information. No filler or repetition of schema fields.
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 create tool with an output schema present, the description covers purpose, usage, slug conflict behavior, and content expectations. It could explicitly mention return behavior but the output schema covers that, making it largely complete.
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?
Schema has 0% description coverage, so the description compensates by explaining that content should be well-formatted Markdown and not repeat the title. It implies title is the note title and content is the body, adding meaning beyond the raw 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 clearly states it creates a new standalone Markdown note in the default vault, with a specific verb and resource. It also differentiates from siblings by mentioning mode=create and slug conflict handling, which distinguishes it from append/create_or_append 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 explicitly says 'Use when the user asks to create a new note' and describes behavior for existing slugs, implying it is for new notes rather than appending. It does not explicitly name alternative sibling tools, but the context makes the distinction clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing side effects. It implicitly indicates a read-only operation via 'List', and adds context about the default vault and duplicate avoidance. However, it does not explicitly state that it makes no modifications, which could be ambiguous given the mutation-heavy sibling set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first delivers the core purpose, the second adds actionable usage guidance. No redundant text or filler, every sentence earns its place.
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 tool's simple no-parameter interface and the presence of an output schema (so return values need no explanation), the description fully covers purpose and usage. It is complete for the level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description avoids cluttering with parameter details, which is appropriate since there are none to explain.
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 ('List') and resource ('existing notes') with a specific scope ('configured default vault'). It distinguishes itself from siblings like obsidian_read_note (reading a single note) and obsidian_create_note (creating) by explicitly framing its purpose as a preliminary step to avoid duplicates.
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 clear when-to-use guidance: before creating or updating when the user gives an approximate note name. It implies when-not-to-use (when you have an exact name, use read_note) but does not explicitly name alternatives, so it falls just short of full explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It mentions the default vault scope and frames the operation as a read-only lookup ('List existing... avoid creating duplicates'), implying no side effects. It does not specify return format, but the output schema exists and the tool is simple.
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 the primary purpose front-loaded in the first sentence. Each subsequent sentence adds clear usage guidance without repetition or fluff.
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, output-schema-provided tool, the description completely covers its purpose, when to use it, and why it matters. The mention of duplicate avoidance (e.g., mercado, compras) gives practical context for real-world usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description need not explain parameter semantics. The baseline of 4 applies because there is no parameter complexity to clarify and schema coverage is 100% by virtue of having an empty 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 clearly states the tool's verb and resource: 'List existing Obsidian lists in the configured default vault.' It distinguishes itself from sibling tools like obsidian_list_tasks and obsidian_list_notes by focusing specifically on lists rather than notes or tasks.
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?
Explicitly instructs when to use the tool: 'before adding/removing/updating list items when the user gives an approximate list name.' It also provides a clear rationale—'Prefer an existing compatible list to avoid creating duplicates'—which helps the agent decide between this and mutation tools.
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/ariedotme/obsidian-writer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server