poweroffice-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct resource and action: connection info, configuration status, customer CRUD/search, general ledger account CRUD/list, and account transactions. Even the similar list/search/get operations are clearly separated by resource type and described filters.
Naming Consistency4/5Tool names consistently use the poweroffice_ prefix and mostly follow a verb_noun pattern such as create_customer, update_customer, list_account_transactions. The two status/info tools break the pattern slightly, but the overall style is uniform and predictable.
Tool Count5/5Ten tools is a well-scoped size for a PowerOffice MCP server covering customers, general ledger accounts, transactions, and connection diagnostics. Each tool serves a clear purpose without redundancy or bloat.
Completeness4/5The server covers the main customer and general ledger account workflows including create, update, and read operations, plus transaction listing. Minor gaps exist such as no single-account fetch for general ledger accounts and no delete operations, but these are not critical for common integration workflows.
Average 4.3/5 across 10 of 10 tools scored. Lowest: 3.6/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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction exists. The description adds the endpoint and the returned data (subscriptions, API privileges), which is useful context, but it does not disclose details like error behavior or authentication failure semantics.
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 exact HTTP verb and endpoint, then states the purpose and return value. There is no wasted language or redundant information.
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 no-input, read-only tool with rich annotations and an existing output schema, the description is complete enough to guide invocation. It names the endpoint, explains the purpose, and states what information is returned, which is sufficient for an agent to use it correctly.
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?
There are zero parameters and the schema coverage is complete, so the description carries no parameter burden. A 0-parameter tool with an empty schema gets a baseline of 4; the description appropriately focuses on behavior and result rather than parameters.
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 ('Call GET /ClientIntegrationInformation') and the resource, plus the purpose: verifying authentication and returning client subscriptions and API privileges. It is clear and distinct in meaning, though it does not explicitly differentiate itself from the similarly named sibling poweroffice_configuration_status.
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 implies the tool is used to verify authentication and check privileges, but it gives no explicit guidance on when to use it versus alternatives, nor any exclusion criteria. There is no mention of how this relates to poweroffice_configuration_status or when a connection check is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation and not idempotent. The description adds valuable behavioral context beyond that: it writes to the configured PowerOffice client and requires explicit user approval before confirm=true. No contradiction with annotations was found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the core action, and each sentence earns its place. The approval warning is critical and placed at the end without unnecessary padding.
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 that a detailed output schema exists and annotations cover the write/non-idempotent behavior, the description is largely sufficient. It captures the essential operational context: endpooint, target client, and the mandatory user-approval condition. It does not explain duplicate risk explicitly, but the non-idempotent annotation covers that.
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 50%, with confirm documented but customer not described. The description adds useful meaning for confirm ('only after the user has explicitly approved the exact customer data') but does not clarify semantics of the large customer object beyond what the schema's field names and constraints already convey.
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 ('Create one customer'), a concrete HTTP resource ('POST /Customers'), and a clear scope ('one customer'). This clearly distinguishes it from siblings like update_customer, search_customers, and get_customer without needing to open the schema.
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 gives clear context for when to use the tool: creating exactly one customer, and it adds a critical usage guardrail around confirm=true. However, it does not explicitly name alternatives such as update_customer for existing customers or search_customers for lookups, so exclusion guidance is absent.
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?
Adds meaningful behavior beyond the annotations by identifying the HTTP POST endpoint and, more importantly, the consent gate: confirm=true must only be set after explicit user approval. This is consistent with readOnlyHint=false and adds a practical safety constraint not present in the structured fields.
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 carry the endpoint, a required-field rule, and a confirmation safeguard. Every sentence earns its place, and the most important operational constraint is front-loaded.
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 nested-object creation tool, the description covers the critical details needed to invoke it: endpoint, required VatCode/VatCodeId, and the confirmation gate. Output schema handles return values, and the remaining gaps are minor relative to the annotation coverage.
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 only 50%, and the description partly compensates by adding the external requirement that VatCode or VatCodeId be provided. However, the many nested account fields still lack explanatory context, so the description does not fully bridge the gap between the schema and the API's actual requirements.
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 the operation explicitly: 'Create one general ledger account with POST /GeneralLedgerAccounts.' The endpoint and resource make it clear which action is performed and distinguish it from siblings like poweroffice_list_general_ledger_accounts and poweroffice_update_general_ledger_account.
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: VatCode or VatCodeId is required, and confirm=true is only allowed after explicit user approval of the exact account data. It does not explicitly name alternative tools or when-not-to-use conditions, 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?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds behavioral context beyond the annotations by noting the inclusive date range and advising narrow queries, which signals that this operation can be expensive if not filtered. This is consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the action and resource, the second provides practical guidance. No filler or repetition; 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?
With an output schema present, return values are covered elsewhere. The annotations carry the safety profile. The description adequately covers purpose and high-level invocation strategy for a tool with 18 parameters, though it could mention the default pageSize or the most commonly used filters.
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 describes most parameters, with 72% coverage. The description itself adds little parameter-specific meaning—'inclusive date range' merely restates schema descriptions, and 'use filters' is generic. It does not compensate for the few undocumented parameters like agricultureDepartments or includeSubProject.
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 verb ('Read') and resource ('posted account transactions') and even names the API endpoint (GET /AccountTransactions). This distinguishes it from sibling tools that deal with customers or general ledger accounts.
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 offers clear usage guidance: use filters and small pages to keep accounting queries narrow. It does not explicitly name alternatives or exclusions, but no sibling tool overlaps with this functionality, so the absence of an explicit when-not-to-use is not a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation safe, read-only, idempotent, and non-destructive. The description adds meaningful behavior beyond annotations by revealing pagination behavior, the exact endpoint, and support for account range syntax like '1000-1999,2500,3000-'.
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 short sentences with no filler. The core action and resource are front-loaded, and the account range example is the only extra detail provided, all of which is useful.
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?
Between the description, the read-only annotations, the output schema, and schema parameter descriptions, the tool is mostly self-sufficient. The main gaps are lack of routing guidance to sibling tools and no explanation of ambiguous parameters like useDatabaseValidation, but this is not critical for a read-only list operation.
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 schema already provides descriptions for 63% of parameters. The description adds valuable semantic context for accountNos by showing concrete syntax examples, and clarifies pagination behavior which helps interpret pageNumber and pageSize. A few schema-uncovered parameters like useDatabaseValidation remain unexplained, but the description is not solely responsible since coverage is above 50%.
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 ('Read'), a specific resource ('GET /GeneralLedgerAccounts'), and states it returns a paginated list. This clearly differentiates it from creating/updating general ledger accounts and from listing account transactions.
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 the tool is for reading a paginated list of general ledger accounts, but it does not explicitly state when to use this tool versus alternatives such as create/update_general_ledger_account or list_account_transactions. There is no 'when not to use' or sibling-specific routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only behavior, but the description adds important behavioral context: only mutable CustomerPatchDto paths are accepted, and confirm=true requires explicit user approval of the exact changes. This goes beyond a simple 'update' statement and clarifies safety-critical 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?
Three short sentences, each earning its place: the first defines the operation and endpoint, the second constrains allowed patch paths, and the third states the confirmation requirement. No filler or redundant restatement of the schema.
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?
The description covers the key operational concerns for a destructive update: allowed paths and explicit confirmation. It does not enumerate the actual mutable CustomerPatchDto paths, which would require an agent to know them from elsewhere, but the endpoint, annotations, and output schema cover most remaining 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?
With only 33% schema description coverage, the description compensates by explaining that patch is JSON Patch, restricting it to mutable CustomerPatchDto paths, and defining confirm as an explicit user-approval flag. The id parameter is inferable from the endpoint /Customers/{id}.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, resource, and endpoint: 'Update one customer with JSON Patch at PATCH /Customers/{id}'. It clearly distinguishes this from sibling tools like poweroffice_create_customer, poweroffice_get_customer, and poweroffice_search_customers.
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 operational guidance, especially the explicit confirmation requirement for confirm=true, but it does not name alternatives or state when to use this tool versus create_or_get variants. Usage context is implied by the tool name and endpoint rather than explicitly spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly/idempotent/openWorld/non-destructive signals; the description adds useful behavior beyond those: the endpoint is paginated, multi-value filters follow PowerOffice comma-separated syntax, and response fields are compact unless Fields is supplied. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the core action and endpoint, then pack filter syntax and response default into the remaining space. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter search tool, this is reasonably complete: it covers endpoint, pagination, filter syntax, and default field selection, while annotations and output schema cover safety and return value shape. It could add filter-combination semantics or examples for the ambiguous parameters, leaving minor gaps.
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 covers about 71% of parameters, and the description adds a meaningful default for fields (compact field set unless supplied) plus a general rule for multi-value filter parameters. A few parameters such as useDatabaseValidation remain unexplained, so it is not a 5.
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 verb and resource: 'Read a paginated list from GET /Customers.' It clearly identifies this as a list/search operation over customers, and the plural 'list' differentiates it from sibling get_customer without ambiguity.
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 establishes clear usage context: an agent should call this when it needs a paginated, filterable list of customers, and the compact-field behavior is stated. It does not explicitly name alternatives or exclusions, 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 adds meaningful behavioral context beyond annotations: only mutable account paths are accepted, and confirm=true must only be set after the user explicitly approves the exact changes. This helps the agent avoid destructive or unauthorized modifications. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the endpoint, operation type, mutation constraint, and the critical confirmation requirement. There is no filler or redundant repetition of the schema.
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?
The description provides the key operational details: what is updated, how it is updated, what restrictions apply, and when confirm may be true. The output schema covers return values, so no additional response description is needed. It could be more complete by listing which account paths are mutable, but that is a minor 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 schema documents only the confirm parameter, leaving id and patch with no description. The description compensates by clarifying that patch paths must be mutable and that confirm is an explicit user-approval flag. While id still lacks explanation, its purpose is evident from the endpoint.
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: updating a single general ledger account using JSON Patch, and specifies the exact endpoint. It distinguishes this tool from siblings like create_general_ledger_account and list_general_ledger_accounts by emphasizing 'Update one' and the PATCH method.
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 is clear this tool is for modifying an existing general ledger account by id. It provides no explicit when-not-to-use guidance or comparison with alternatives, but the 'Update one' phrasing and endpoint make the intended context 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?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral context by noting the compact default field set and the effect of supplying Fields. It does not discuss error behavior or auth, but for a simple read with strong annotations this is sufficient.
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 tightly written sentences with no filler. The core operation and endpoint are front-loaded, and the field-set behavior is stated in a single follow-up sentence. Every word 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?
The tool is simple: one required ID parameter and one optional fields parameter. The description addresses both, names the endpoint, and the output schema covers return values. Nothing critical is missing for an agent to call this tool correctly.
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 coverage is only 50% because id lacks a description. The description compensates by explaining that id is the PowerOffice numeric ID and by clarifying that fields controls whether the compact or full field set is returned. This adds meaningful semantics 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 states a specific verb ('Read'), a specific resource ('one customer by PowerOffice numeric ID'), and the exact endpoint ('GET /Customers/{id}'). This clearly distinguishes the tool from siblings like poweroffice_search_customers, poweroffice_create_customer, and poweroffice_update_customer.
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 clearly implies usage when you already have a PowerOffice numeric ID and need a single customer. It does not explicitly mention alternatives or when not to use the tool, but the context is clear enough for an agent to select it over search or mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond annotations: it explicitly promises not to reveal credential values and not to call PowerOffice. This is important trust and safety information that annotations alone do not convey, fully aligning with the readOnly, idempotent, and non-destructive hints.
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 with no filler: the first states the primary purpose, and the second adds two important behavioral exclusions. Every word 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 zero parameters, a present output schema, and annotations covering safety, the description is complete. It explains what the tool checks, what it does not reveal, and the fact that it makes no external calls, leaving no material gaps for an agent selecting or invoking it.
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 and the schema coverage is 100%, so there is no additional parameter meaning to explain. The baseline of 4 applies, and the description appropriately focuses on behavior rather than parameters.
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 ('Check whether the PowerOffice MCP process has the required environment variables') on a specific resource, making the tool's purpose immediately clear. It also distinguishes itself from sibling tools by focusing on configuration readiness rather than connection details or data operations.
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 implicitly establishes when to use this tool: as a preflight configuration check before invoking PowerOffice tools. The statement 'Does not call PowerOffice' clarifies it can be safely used for diagnostics without side effects, though it does not explicitly compare itself to alternatives like poweroffice_connection_info.
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/Oleksandr-Kliuiev/poweroffice-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server