tally-mcp-server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Every tool maps to a distinct resource or report: list/get for ledgers and stock items, list for companies/groups/vouchers, and separate tools for each financial report. There is no meaningful overlap or ambiguity between tool purposes.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern using list_, get_, or create_. This makes the tool set predictable and easy for an agent to navigate.
Tool Count5/5Twelve tools is well within the ideal range and each tool earns its place for a Tally accounting integration. The count covers both master data queries, transaction listing/creation, and core financial reports without unnecessary bloat.
Completeness4/5The tool set provides strong coverage for reading companies, ledgers, stock items, vouchers, and financial reports, plus creating vouchers. Missing operations like editing or deleting vouchers, viewing individual voucher details, or creating ledgers are minor gaps for an integration focused on retrieval and transaction entry.
Average 3.8/5 across 12 of 12 tools scored. Lowest: 3.2/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 carries the full behavioral disclosure burden. It discloses scoping ('active company', 'date range') but not return content, ordering, pagination, whether voided vouchers are included, or the complete set of valid voucherType values.
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?
A single front-loaded sentence presents the verb and object first, followed by voucher-type examples and scoping. Nothing is wasted; the trailing 'etc.' is slightly vague but acceptable.
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 tool with no output schema and no annotations, the description captures the intent but not the return structure or full voucherType value set. It also references the 'active company' without explaining how the agent determines or selects it, though that may be a broader tool-context concept.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; each parameter already has a description in the schema, including date formats and a voucherType example. The description adds little beyond pointing to a date range and five example voucher types, which is consistent with the schema but not additive.
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 uses a specific verb ('List') with a concrete resource ('transaction vouchers') and enumerates common voucher types (Sales, Purchase, Payment, Receipt, Journal), making the purpose immediately clear. It does not explicitly name a differentiating sibling such as get_day_book or get_ledger, though the voucher-type scope largely separates it from list_companies, list_ledgers, and create_voucher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this when vouchers in the active company within a date range are needed. No explicit when-not-to-use guidance or alternatives (e.g., get_day_book, get_ledger, create_voucher) are given, so the agent must infer the right choice.
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 behavioral burden. 'Fetch' and 'report' imply a read-only operation, and 'active company' plus 'as of a given date' provide useful scoping. However, it does not disclose auth requirements, error behavior, or whether some report sections are excluded.
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?
A single, front-loaded sentence with no filler. Every phrase adds relevant information: the action, the resource, the scope, and the reporting date.
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?
Adequate for a simple one-parameter report fetch, but with no annotations and no output schema, the description could clarify the read-only nature or briefly mention that the date defaults to the current period. The sibling report tools are close enough that a small usage hint would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with asOfDate fully documented including its default. The description only paraphrases the date concept and adds no new constraints, aliases, or formatting details 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 states a specific verb ('Fetch') and a specific resource ('Balance Sheet report'), and adds scope ('active company', 'as of a given date'). It is clearly distinguishable from siblings by report type, though it does not explicitly name or differentiate from get_profit_and_loss or get_trial_balance.
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 given on when to choose this tool over related report tools like get_trial_balance or get_profit_and_loss. There are no exclusions, preconditions, or alternative tool references, so the agent must infer usage solely from the report name.
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 only says 'Get details' without specifying what details are returned, how exact matching behaves, or what happens when the item is not found. This is a minimal transparency gap for a read tool.
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 a single clear sentence that front-loads the resource and scope. It is appropriately sized for a simple tool, with no redundant wording.
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 there is no output schema, the description's vague 'details' leaves the return shape uncertain, and it does not clarify error behavior or how this tool relates to list_stock_items. For a tool with minimal documentation, this leaves an agent guessing about the response.
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 already documents the 'name' parameter well, and the description reinforces the 'exact' requirement. Since schema coverage is 100%, the description adds marginal semantic value beyond restating the existing parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('single stock item') with an explicit scoping constraint ('by exact name'). This clearly distinguishes it from the sibling list_stock_items, which retrieves multiple items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by exact name' phrasing implies this tool is for looking up one known item, but it does not explicitly state when to prefer list_stock_items or what to do if the exact name is unknown. The guidance is present only implicitly.
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. The verb 'fetch' implies read-only behavior, and the scope is stated, but the description does not disclose return format, whether the report includes summary balances, or any other behavioral details.
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 front-loaded sentence with no filler. It communicates action, resource, and scope efficiently, and every word earns its place.
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 simple two-parameter read-only tool with fully documented params, the description is adequate but leaves gaps: no mention of what the response contains, and no reference to the 'active company' selection mechanism used by siblings like list_companies. With no output schema or annotations, a bit more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters (toDate/fromDate with formats and defaults) at 100% coverage. The description's 'over a date range' adds no meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch'), a clear resource ('Profit and Loss statement'), and a scope ('active company over a date range'). This unambiguously distinguishes it from sibling tools like get_balance_sheet or get_trial_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context (active company, date range) but no explicit when-to-use guidance or alternatives. It does not name siblings or describe exclusions, so the usage scenario is only implied by the financial report name.
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 behavioral disclosure burden. It indicates a read-only fetch, chronological ordering, and date-range scope, but it does not mention output format, pagination, or what happens if no active company is set. It is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It communicates the resource, its nature, scope, and range in a compact form.
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 operation with two optional parameters fully documented in the schema, the description sufficiently identifies the resource, its chronological nature, and its scope. It lacks explicit alternative routing and behavioral caveats, but the tool is simple enough that these are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters, including formats and default behavior. The description only restates 'date range' and adds no additional meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and names a clear resource ('Day Book'), with a parenthetical explaining it as a chronological transaction listing. This is distinct enough from siblings like get_ledger or list_vouchers that an agent can identify the intended purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a chronological transaction listing for the active company over a date range is needed. However, it does not explicitly mention alternative tools, exclusions, or prerequisites such as ensuring an active company is selected.
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 disclosure burden. It correctly implies a read-only listing operation and adds useful context about the active company and returned fields. It does not mention permissions, pagination, or empty-result behavior, but for a simple list operation the core behavior is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no filler. It front-loads the action and resource, then adds the key output information. Every word contributes 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 tool with one optional parameter and no output schema, the description covers the essential context: what is listed, where it is listed, and what relevant fields are returned. It could additionally clarify sorting or absence behavior, but those are minor gaps for this tool's complexity.
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 single optional parameter nameContains is already fully described in the input schema with 100% description coverage. The tool description adds no additional parameter-level detail, so the baseline score of 3 applies.
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 a specific action ('List'), a specific resource ('inventory/stock items'), and a scope ('active Tally company'). It also mentions the included output fields ('closing stock quantity and value'), distinguishing it from the singular sibling get_stock_item without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this to enumerate stock items in the active company. However, the description does not explicitly mention when to prefer this over alternatives such as get_stock_item, nor does it state exclusions or conditions. Some guidance is present, but it relies on inference.
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 an important behavioral requirement: the voucher must contain the full set of ledger entries and debits must equal credits, and it references the active company context. However, it does not describe what happens on failure, whether the operation is reversible, permission requirements, or what response the caller should expect after creation.
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 deliver the core purpose, scope, and key constraint without repetition or filler. The most decision-relevant details are front-loaded: what is created, where, and what input condition must hold.
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 create-oriented tool with a fully documented schema, the description covers the essential operational context: active company, voucher types, complete entries, and the balancing rule. The main gaps are the absence of return-value behavior and failure semantics, but these are minor given the schema already defines all inputs and there is no output schema to reconcile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all six parameters clearly, including voucherType examples, date formats, the meaning of isDebit, and the entries requirement. The description adds only the general balance constraint and active-company context, which does not materially exceed what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') with a clear resource ('accounting voucher') and gives concrete examples (Payment, Receipt, Journal, Contra, Sales, Purchase). It also scopes the action to the active Tally company, making it unmistakably distinct from the read-only sibling tools like list_vouchers and get_ledger.
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 makes clear this is the tool for creating vouchers in the active Tally company, and the balance/full-entry requirement signals when the input is valid. It does not explicitly name alternative tools for reading or listing vouchers, but since all siblings are read-only and there are no other creation tools, the usage context is effectively clear.
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 disclosing behavior. It correctly implies a read-only operation ('Get') and a current balance, but does not state what happens when the exact ledger name is not found, whether matching is case-sensitive, or what 'details' includes.
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?
One sentence communicates the action, object, return scope, and matching criterion with no filler. Every word contributes.
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, single-parameter read tool, the description is largely complete: it states the input requirement and the returned information (details and current balance). However, without an output schema it leaves the exact composition of 'details' somewhat open.
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 documentation coverage is 100%: the name parameter is described as 'Exact ledger name as it appears in Tally.' The tool description adds no new semantic information about the parameter beyond that, so baseline 3 applies.
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 names a concrete verb ('Get'), a specific resource ('single ledger account'), and the key selector ('by exact name'), which clearly differentiates it from list_ledgers and other list tools. It is immediately obvious what the tool does.
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 phrase 'by exact name' establishes the condition for using this tool: you already know the precise ledger name. It does not explicitly name alternatives or exclusions, but the prerequisite is clear enough to route an agent to list_ledgers when the name is unknown.
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 transparency burden. It does disclose the active-company scope and date-scoping behavior, and 'Fetch' signals read-only retrieval. However, it does not state absence of side effects, error behavior if no active company exists, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, leading with the action and packing the necessary constraints (active company, date) into a compact structure. Every word contributes.
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 low-complexity tool with one optional and well-documented parameter, the description supplies the essential context: active company and as-of date. It does not describe return-structure details, but 'Trial Balance report' is a standard report concept and no output schema exists to add more.
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 only parameter, asOfDate, is fully documented in the schema with format and default behavior, giving 100% schema coverage. The description's 'as of a given date' merely echoes that semantic without adding new detail, so the baseline of 3 is appropriate.
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?
States a specific action ('Fetch'), a specific resource ('the Trial Balance report'), and scope ('active company ... as of a given date'). The explicit report name distinguishes it from sibling report tools such as get_balance_sheet and get_profit_and_loss.
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 usage context: this is the tool to call when the Trial Balance for the active company at a specific date is needed. It does not explicitly mention alternatives or exclusions, but the report type makes selection unambiguous.
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 full burden and does well: it states this is a listing (read-only) operation, restricts scope to the 'active Tally company', and discloses that balances are included. It does not mention filtering behavior or potential absence of results, but these are minor for a simple list 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?
The description is a single sentence that front-loads the core action ('List all ledger accounts') and then adds essential scope and content details. There is no redundant or filler wording.
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 tool with one optional documented parameter and no output schema, the description is nearly complete: it specifies the resource, scope, and return content. It could go slightly further by noting the effect of the nameContains filter, but that is already fully documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning, but the schema already documents the nameContains parameter, including case sensitivity and its filtering effect. The description does not need to repeat this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('ledger accounts (chart of accounts)'), and further clarifies the scope to the active Tally company and the inclusion of opening/closing balances. This clearly distinguishes it from sibling tools like get_ledger (single account), list_groups (different resource), and list_stock_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: to enumerate ledger accounts in the active Tally company. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or conditions under which a different sibling (e.g., get_ledger) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It correctly signals a read-only enumeration and the 'currently open/loaded' constraint, but it does not mention return shape, behavior when no companies are open, or any errors that might occur.
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?
A single, front-loaded sentence with no filler. Every word contributes: the operation, the target, and the scope.
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 zero-parameter list operation, the description is essentially complete. It could be stronger by stating what fields each listed company contains or how the list is ordered, but the core usage is unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so parameter documentation is not needed. The baseline of 4 applies; the empty schema correctly confirms no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('companies') and adds a precise scope qualifier ('currently open/loaded in Tally'). This clearly differentiates it from sibling tools that target ledgers, groups, stock items, and vouchers.
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 makes plain when to use the tool: whenever an agent needs to enumerate active companies in Tally. It doesn't explicitly name alternatives or exclusions, but the resource distinction from the sibling tools 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?
With no annotations provided, the description carries the transparency burden; the verb "List" clearly indicates a read-only operation, and "in the active company" discloses the implicit scope dependency. It does not describe error behavior when no active company exists or the exact structure of the returned hierarchy, but for a zero-parameter list tool this is a modest gap.
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?
One concise, front-loaded sentence clearly states the action, resource, semantic clarification, and scope. The parenthetical examples earn their place by resolving ambiguity with ledger categories, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool, the description is largely complete: it names what is listed, what those things are, and the active-company context. The absence of an output schema means a note about the expected return shape would have been helpful, but the tool's simplicity and clear name keep this from being a major gap.
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 input schema has zero parameters, so there are no parameter semantics to document. Description scope like "in the active company" is contextual rather than parameter-related, and the baseline for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "List all ledger groups" and further clarifies the domain with examples like Sundry Debtors and Current Assets. It is clearly distinguished from siblings like list_ledgers, which likely operate at a different level of the accounting hierarchy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for retrieving the account classification hierarchy rather than individual ledgers, but it does not explicitly state when to use list_groups versus list_ledgers or other sibling tools. The 'in the active company' qualifier gives useful context but no direct alternatives or exclusion criteria.
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/visheshStallion/tally-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server