Skip to main content
Glama
CryptoCultCurt

Appfolio MCP Server

Appfolio MCP Server (@fluegeldao/appfolio-mcp-server)

A Model Context Protocol (MCP) server providing tools to interact with the Appfolio Property Manager Reporting API.

Installation

Installing via Smithery

To install appfolio-mcp-server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @CryptoCultCurt/appfolio-mcp-server --client claude

Manual Installation

Install the package using npm:

npm install @fluegeldao/appfolio-mcp-server

Related MCP server: Buildium MCP Server

Usage

Configuration as an MCP Server

{
  // ... other server configurations
  "appfolio": {
    "command": "npx",
    "args": ["@fluegeldao/appfolio-mcp-server"],
    "env": {
      "NODE_OPTIONS": "--experimental-vm-modules", // Optional, may depend on your Node version/setup
      "VHOST": "YOUR_APPFOLIO_HOSTNAME", // e.g., "yourcompany"
      "USERNAME": "YOUR_APPFOLIO_API_USERNAME",
      "PASSWORD": "YOUR_APPFOLIO_API_PASSWORD"
    },
    "restart": true // Optional: Restart the server if it crashes
  }
  // ... other server configurations
}

As a Tool

npx @fluegeldao/appfolio-mcp-server

Available Tools

47 tools
get_account_totals_reportCInspect

Returns account totals for given filters and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityYesProperty visibility filter
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
gl_account_idsNoGL account IDs1
posted_on_fromYesStart date (YYYY-MM-DD)
posted_on_toYesEnd date (YYYY-MM-DD)
columnsNoSpecific columns to include

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description only says 'Returns account totals.' It does not disclose behavioral traits such as read-only nature, aggregation logic, data scope (e.g., all accounts or filtered), or any side effects. The agent is left without understanding key behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff. However, it could be slightly more informative while still remaining efficient. It is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 9 parameters, no output schema, and many siblings. The description fails to explain what account totals mean, how they are computed, or what the output contains, leaving the agent with an incomplete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description's mention of 'filters and date range' adds minimal value beyond the schema. The baseline of 3 is appropriate as the description does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns account totals for filters and date range. However, it does not differentiate this report from the many sibling reports (e.g., get_trial_balance_by_property_report, get_chart_of_accounts_report) that may also return similar aggregated financial data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool over alternatives. Given the large set of sibling report tools, the agent has no criteria to select get_account_totals_report for a specific report-need.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aged_payables_summary_reportBInspect

Returns aged payables summary for the given filters. IMPORTANT: All ID parameters must be numeric strings (e.g. '123'), NOT names.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by statusactive
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
occurred_onYesAs-of date (YYYY-MM-DD)
party_company_idNoFilter by company ID
balance_amountNoBalance amount to compare against
balance_comparatorNoComparison operator (e.g. "gt", "lt")
columnsNoSpecific columns to include

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behaviors. Only mentions ID parameter format requirement. Does not state read-only nature, permission needs, or output format. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Critical usage note is front-loaded in second sentence. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 10 parameters and no output schema, description is very brief. Does not explain report scope, typical use cases, or output structure. Lacks guidance for selecting among 46 sibling report tools. Incomplete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters described). Description adds critical value by clarifying that all ID parameters must be numeric strings, a constraint not obvious from schema type 'string'. This prevents misuse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States it returns an aged payables summary for given filters. Verb and resource clear. Does not differentiate from sibling reports like get_aged_receivables_detail_report, but the name itself indicates payables focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives among many sibling report tools. Only provides a parameter constraint note, no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aged_receivables_detail_reportBInspect

Returns aged receivables detail for the given filters. IMPORTANT: All ID parameters (properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active".active
propertiesNoOptional. Filter by specific property-related IDs.
tagsNoOptional. Filter by property tags.
balance_operatorNoOptional. Filter by balance amount with comparison operator.
tenant_statusesNoOptional. Filter by tenant status.
occurred_on_toYesEnd date for transaction occurrence filter (YYYY-MM-DD format).
gl_account_map_idNoOptional. General ledger account map ID.
columnsNoArray of specific columns to include in the report. Valid columns: payer_name, property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, invoice_occurred_on, account_number, account_name, account_id, total_amount, amount_receivable, future_charges, 0_to30, 30_to60, 60_to90, 90_plus, 30_plus, 60_plus, occupancy_name, account, unit_address, unit_street, unit_street2, unit_city, unit_state, unit_zip, unit_name, unit_type, unit_tags, tenant_status, payment_plan, txn_id, occupancy_id, unit_id
as_ofYesAs-of date for the aged receivables report (YYYY-MM-DD format).

TDQS

B3.4/5.0
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 return type ('aged receivables detail') but does not indicate whether the tool is read-only, what side effects exist, data sensitivity, or output format (e.g., if pagination is supported). For a report tool, basic safety information is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences: one stating the purpose and one critical usage warning. Every sentence adds value, no redundancy, and front-loads important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description is minimal. The schema descriptions are thorough, so the description does not need to repeat them, but it omits any explanation of the output structure or behavior like pagination. It is adequate but lacks some context for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaningful emphasis by reiterating that all ID parameters must be numeric strings and to use directory reports for lookup, which clarifies correct parameter usage beyond the schema. This added value justifies a score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Returns aged receivables detail for the given filters,' which is a specific verb+resource. However, it does not distinguish this report from many sibling report tools (e.g., get_account_totals_report, get_receivables_activity_report), lacking differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an important note about ID parameters requiring numeric strings and directs users to lookup IDs via directory reports first, which aids correct usage. However, it does not provide when-to-use guidance versus alternative report tools (e.g., for filtering by property vs. tenant), nor does it specify prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_annual_budget_comparative_reportCInspect

Returns annual budget comparative report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
occurred_on_toYesThe end date for the report period (YYYY-MM-DD)
additional_account_typesNoArray of additional account types to include
gl_account_map_idNoFilter by GL account map ID
level_of_detailNoSpecify the level of detail. Defaults to "detail_view"detail_view
columnsNoArray of specific columns to include
periodsNoPeriods

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no behavioral details such as whether the report is read-only, any performance implications, or output format. The agent gains no insight beyond the tool's existence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), which is concise but at the expense of providing needed context. It is not front-loaded with critical information beyond the basic purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description is insufficient for an agent to understand the report's scope or how to use parameters effectively. It does not explain what 'annual budget comparative' means or how filters affect output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 11 parameters are described in the input schema (100% coverage), so the description adds no extra meaning. Baseline score of 3 is appropriate as the schema already handles parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns an 'annual budget comparative report' for given filters. It distinguishes from some siblings (e.g., 'get_budget_comparative_report' without 'annual'), but does not explicitly differentiate from similar reports like 'get_annual_budget_forecast_report'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs. the many sibling report tools. With over 40 similar tools, the agent has no context for selecting this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_annual_budget_forecast_reportCInspect

Returns annual budget forecast report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
period_fromYesStart period for the forecast (YYYY-MM). Required.
period_toYesEnd period for the forecast (YYYY-MM). Required.
consolidateNoConsolidate results0
gl_account_map_idNoFilter by GL account map ID
columnsNoSpecific columns to include

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no behavioral context such as read-only nature, performance implications, or any side effects. The agent has no information beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, but lacks front-loading of key details. Adequately concise for a simple purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and many sibling tools, the description is insufficient. Missing return format, how filters combine, and any explanation of the report's content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The tool description adds no extra meaning beyond 'given filters', so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns an annual budget forecast report and mentions filters. It's specific enough to distinguish from many sibling reports but could be more explicit about what the report contains compared to similar budget reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_annual_budget_comparative_report). No prerequisites or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balance_sheet_reportCInspect

Returns the balance sheet report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
posted_on_toYesRequired. Date to run the report as of in YYYY-MM-DD format.
gl_account_map_idNoFilter by GL account map ID
level_of_detailNoLevel of detail. Defaults to "detail_view"detail_view
include_zero_balance_gl_accountsNoInclude GL accounts with zero balance. Defaults to "0"0
columnsNoSpecific columns to include

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states what it does, not any traits like read-only, potential costs, data scope (e.g., does it include all accounts?), or performance. The description is insufficient for a tool with 10 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 9 words with no fluff or repetition. It is front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite a rich schema with 10 parameters, the description lacks context about return values, typical use, or the meaning of the balance sheet report. There is no output schema to compensate. The description feels incomplete for an agent to fully understand the tool's purpose and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions in the schema). The tool description adds no further meaning; it just says 'given filters'. Baseline is 3 because the schema already documents parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Returns' and resource 'balance sheet report', with scope 'for the given filters'. It is specific about what the tool does, but given the many sibling report tools, it does not differentiate from them (e.g., get_income_statement_date_range_report also returns a report for filters).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the 45+ sibling report tools. The description does not specify prerequisites, typical use cases, or when not to use it. This is a significant gap given the large set of similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_budget_comparative_reportCInspect

Returns budget comparative report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoactive
propertiesNo
period_fromYes
period_toYes
comparison_period_fromYes
comparison_period_toYes
additional_account_typesNo
gl_account_map_idNo
level_of_detailNo
columnsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full responsibility for disclosing behavioral traits. It only says 'Returns budget comparative report' without mentioning whether it is read-only, requires authentication, handles large data sets, or has any side effects. For a likely read-only report, the lack of explicit safety indication is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly brief (one short sentence) to the point of under-specification. While conciseness is valued, this lacks essential structure and context, making it incomplete rather than efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the input schema (10 parameters, nested objects), no output schema, and no annotations, the description fails to provide sufficient context. An agent cannot determine what the report contains, how to interpret the output, or how to properly use the filters, making the tool hard to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no additional meaning for any of the 10 parameters, including the nested 'properties' object. Parameters like 'period_from' and 'level_of_detail' have no explanation of format or allowed values, leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Returns budget comparative report for the given filters.' This clearly identifies the tool's action and resource. However, among over 45 sibling report tools, there is no differentiation from other budget reports like 'get_annual_budget_comparative_report', so it's not fully distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There are multiple budget-related reports in sibling tools (e.g., get_annual_budget_comparative_report, get_annual_budget_forecast_report), but the description does not explain the differences or appropriate contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cancelled_workflows_reportCInspect

Retrieves a report of cancelled workflows, allowing filtering by various criteria such as properties, process templates, and date ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachablesNoFilter results based on specific attached entities
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, or portfolios
process_templateNoFilter by specific process template name. Defaults to "All"All
workflow_stepNoFilter by specific workflow step name. Defaults to "All"All
assigned_userNoFilter by assigned user ID or "All". Defaults to "All". NOTE: Expects numeric user IDs (e.g. "4"), not user names. There is no user directory report available to lookup IDs by name.All
date_range_fromNoStart date for the cancellation date range (YYYY-MM-DD)
date_range_toNoEnd date for the cancellation date range (YYYY-MM-DD)
cancelled_byNoFilter by the user who cancelled the workflow. Defaults to "All"All
columnsNoArray of specific columns to include in the report

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose whether the tool is read-only, has side effects, pagination, or rate limits. For a report retrieval, read-only is implied but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently states purpose and key filters. It is front-loaded and concise, though could benefit from slight restructuring for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, nested objects, no output schema), the description lacks details on default columns, output format, and typical use cases. It is insufficient for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions (e.g., assigned_user notes numeric IDs). The tool description adds minimal meaning beyond what is in the schema, meeting baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a report of cancelled workflows and lists filtering criteria. However, it does not differentiate from sibling report tools like get_completed_workflows_report, missing a distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. Implicit usage is to get a cancelled workflows report, but no explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cashflow_12_month_reportBInspect

Generates a 12-month cash flow report.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
posted_on_fromYesRequired. The start month for the reporting period (YYYY-MM).
posted_on_toYesRequired. The end month for the reporting period (YYYY-MM).
gl_account_map_idNoOptional. Filter by a specific GL Account Map ID.
level_of_detailNoLevel of detail. Defaults to "detail_view"detail_view
include_zero_balance_gl_accountsNoInclude GL accounts with zero balance. Defaults to "0"0
exclude_suppressed_feesNoExclude suppressed fees. Defaults to "0"0
columnsNoArray of specific columns to include

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only states the generic action without disclosing read-only nature, potential resource consumption, or other behavioral traits beyond what is obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise. However, it lacks necessary detail, so it is not optimally informative for its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 12 parameters and no output schema, the description should summarize the report's purpose and how filters impact it. The current description is too vague to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description. The description adds no additional meaning to the parameters beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a 12-month cash flow report, which is a specific verb+resource combination. It distinguishes from sibling tools like get_cashflow_report which may cover different periods.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention required parameters or preconditions. There is no explicit context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cashflow_reportBInspect

Returns Cash Flow Details including income and expenses for given time period.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityYesProperty visibility filter
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
posted_on_fromYesStart date for the posting period (YYYY-MM-DD) - Required
posted_on_toYesEnd date for the posting period (YYYY-MM-DD) - Required
gl_account_map_idNoFilter by GL account map ID
exclude_suppressed_feesNoExclude suppressed fees ("0" or "1")
columnsNoSpecific columns to include

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It does not disclose read-only nature, data source, permissions needed, or behavior when no data matches. Only states output type.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise and front-loaded with verb. However, it is too brief missing important context. Not wasteful but leaves gaps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter report tool with no output schema, description is incomplete. No explanation of return format, calculation logic, or what 'cash flow details' entail. Missing context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 10 parameters. Description adds only general statement about income/expenses, which does not enhance parameter understanding beyond schema. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns Cash Flow Details including income and expenses for a given time period. It distinguishes from sibling 'get_cashflow_12_month_report' which is for 12-month period.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the numerous sibling report tools (e.g., when to choose cashflow vs income statement). No context on prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_chart_of_accounts_reportAInspect

Returns the chart of accounts with GL account information. Use this to lookup gl_account_ids by GL account number ('number' field) or name ('account_name' field). IMPORTANT: Column names are specific - use 'number' for GL account number, 'account_name' for account name, 'gl_account_id' for internal database ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNoArray of specific columns to include in the report. Valid columns: number, account_name, account_type, sub_accountof, offset_account, subject_to_tax_authority, options, fund_account, hidden, gl_account_id, sub_account_of_id, offset_account_id. If not specified, all columns are returned. NOTE: Use 'number' for GL account number, 'account_name' for account name, and 'gl_account_id' for the internal ID.

TDQS

A4.2/5.0
Behavior3/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 includes column naming details and the general functionality, but does not mention safety (e.g., read-only), performance, or any side effects. As a report tool, destructive behavior is unlikely, but the description could add more context like that it is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences and no extraneous details. It front-loads the core purpose and follows with important column naming caveats. Every sentence serves a clear function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter and no output schema, the description adequately explains what is returned (chart of accounts with GL account information) and how to use columns. It does not explain return structure, but the use case is straightforward. The description is complete for the complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter fully described. The description adds value by emphasizing the lookup-specific columns ('number', 'account_name', 'gl_account_id'), which goes beyond the schema's enum list. This helps an agent understand the purpose behind the columns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it returns the chart of accounts with GL account information and specifies its use for looking up gl_account_ids by number or name. This clearly indicates the tool's verb (returns) and resource (chart of accounts), and the lookup purpose distinguishes it from sibling report 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by stating when to use the tool (to lookup gl_account_ids by GL account number or name). It does not explicitly state when not to use it or list alternatives, but the sibling context shows many other reports, so the guidance is sufficient for appropriate selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_completed_workflows_reportAInspect

Returns a report of completed workflows (processes) based on the provided filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, units_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachablesNoFilter results based on specific attached entities. All ID fields must be numeric strings, not names.
property_visibilityNoFilter by property visibility. Defaults to "active"active
propertiesNoFilter results based on properties, groups, or portfolios. All ID fields must be numeric strings, not names.
process_templateNoFilter by specific process template name. Defaults to "All"All
workflow_stepNoFilter by specific workflow step name. Defaults to "All"All
assigned_userNoFilter by assigned user ID or "All". Defaults to "All". NOTE: Expects numeric user IDs (e.g. "4"), not user names. There is no user directory report available to lookup IDs by name.All
date_range_fromNoStart date for the completion date range (YYYY-MM-DD)
date_range_toNoEnd date for the completion date range (YYYY-MM-DD)
columnsNoArray of specific columns to include in the report

TDQS

A4.3/5.0
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 behavioral traits: that IDs must be numeric strings (not names) and that user ID lookup is unsupported. This goes beyond the schema by flagging a missing directory report. However, it does not describe pagination, rate limits, or side effects, which are less critical for a read-only report.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: a clear purpose statement followed by an imperative usage note. No filler or redundancy. Front-loaded with the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the purpose and key constraint (numeric IDs) but lacks details about output format, default columns, or what the 'columns' parameter controls. For a complex report tool with no output schema, more context about the result structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by reinforcing the numeric string requirement and alerting about the absent user directory report, which is not in the schema. This extra context helps agents avoid common errors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Returns a report') and resource ('completed workflows (processes)') with filtering capability, clearly distinguishing it from sibling reports like get_in_progress_workflows_report or get_cancelled_workflows_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage guidance by emphasizing that all ID parameters must be numeric strings and directing users to directory reports for ID lookups. It also notes that assigned_user expects numeric IDs and no directory exists for users. However, it does not explicitly state when not to use this tool or compare it to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_delinquency_as_of_reportAInspect

Returns delinquency as of report for the given filters. IMPORTANT: All ID parameters (properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed. NOTE: tenant_statuses uses numeric codes: 0=Current, 1=Past, 2=Future, 3=Evict, 4=Notice.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active".active
propertiesNoOptional. Filter by specific property-related IDs.
occurred_on_toYesRequired. Date to run the report as of in YYYY-MM-DD format.
delinquency_note_rangeNoOptional. Filter by delinquency note range.
tenant_statusesNoFilter by tenant status. Valid values: "0"=Current, "1"=Past, "2"=Future, "3"=Evict, "4"=Notice. Defaults to ["0", "4"] (Current and Notice tenants).
tagsNoOptional. Filter by property tags.
amount_owed_in_accountNoFilter by amount owed in account. Defaults to "all".all
balance_operatorNoOptional. Filter by balance amount with comparison operator.
columnsNoArray of specific columns to include in the report. Valid columns: unit, name, tenant_status, tags, phone_numbers, move_in, move_out, primary_tenant_email, unit_type, property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, amount_receivable, delinquent_subsidy_amount, 00_to30, 30_plus, 30_to60, 60_plus, 60_to90, 90_plus, this_month, last_month, month_before_last, delinquent_rent, delinquency_notes, certified_funds_only, in_collections, collections_agency, unit_id, occupancy_id, property_group_id

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description adds behavioral context by requiring numeric strings for IDs and clarifying status codes, but does not disclose read-only nature, auth requirements, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: first states purpose, then two bullet-pointed notes. Front-loaded with main action, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a report tool with 9 parameters (nested objects) and no output schema, the description covers key operational details. Could mention the report output format or that columns parameter controls data, but overall complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds critical value by specifying that ID parameters must be numeric strings (not names) and explaining tenant_statuses codes, which goes beyond the schema's type definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a 'delinquency as of report' (specific verb and resource). The sibling tools are all different report names, so this description distinguishes it sufficiently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this report vs. siblings. The description provides important operational notes (ID format, tenant status codes) but not comparative usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expense_distribution_reportCInspect

Returns expense distribution report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoactive
propertiesNo
party_contact_infoNo
posted_on_fromYesRequired. Start date for posted_on range in YYYY-MM-DD format.
posted_on_toYesRequired. End date for posted_on range in YYYY-MM-DD format.
gl_account_map_idNo
columnsNo

TDQS

C2.4/5.0
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 says 'returns' a report, which implies a read operation, but does not confirm side effects, auth requirements, rate limits, or output format. The lack of output schema further compounds this gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise. However, it lacks structure and does not front-load critical information. The conciseness comes at the cost of completeness, making it minimally viable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, nested objects, no output schema, 46 siblings), the description is severely incomplete. It does not explain the report's content, return format, or how filters affect results. The agent cannot reliably invoke this tool without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (only two date parameters have descriptions). The description mentions 'given filters' but does not explain the meaning or usage of the 7 parameters, including nested objects like 'properties' and 'party_contact_info'. The agent has insufficient information to populate parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it returns an 'expense distribution report' but does not specify what this report contains or how it differs from the 46 sibling report tools. The name suggests a specific financial report, but without further clarification, the agent cannot distinguish it from similar reports like 'get_account_totals_report' or 'get_budget_comparative_report'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention any prerequisites, typical use cases, or conditions under which this report is appropriate. Without this, an agent may select the wrong tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fixed_assets_reportCInspect

Returns a report of fixed assets based on the provided filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
unit_idsNoArray of unit IDs to filter by
propertyNoFilter by a specific property ID
include_property_level_fixed_assetsNoInclude assets linked directly to the property. Defaults to "1" (true)1
asset_typesNoFilter by specific asset type name. Defaults to "All"All
statusNoFilter by asset status. Defaults to "all"all
columnsNoArray of specific columns to include in the report

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It only states 'returns a report' without mentioning read-only nature, permissions, output format, or pagination, leaving important gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence) but lacks necessary detail. While not verbose, it sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and many sibling tools, the description is insufficient. It omits details on output format, filtering behavior, and when to use this report over others.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for each parameter. The tool description adds no additional meaning beyond what the schema already provides, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a report of fixed assets based on filters, which is a specific verb+resource. It distinguishes from other report siblings by focusing on fixed assets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus other report tools. With many sibling tools, the lack of differentiation or context is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_guest_card_inquiries_reportAInspect

Returns guest card inquiries report for the given filters. IMPORTANT: All ID parameters (properties_ids, property_groups_ids, portfolios_ids, owners_ids) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by visibility status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, portfolios, or owners
guest_card_sourcesNoFilter by guest card sources. Defaults to ["all"]
guest_card_statusesNoFilter by guest card statuses. Defaults to ["all"]
guest_card_lead_typesNoFilter by guest card lead types. Defaults to ["all"]
assigned_userNoFilter by assigned user. Defaults to "All"All
assigned_user_visibilityNoFilter assigned users by visibility. Defaults to "active"active
guest_card_statusNoFilter by guest card status. Defaults to "open"open
filter_date_range_byNoWhich date field to use for filtering. Defaults to "inquiry"inquiry
received_on_fromYesStart date for the reporting period (YYYY-MM-DD). Required.
received_on_toYesEnd date for the reporting period (YYYY-MM-DD). Required.
columnsNoArray of specific columns to include in the report. Valid columns: name, email_address, phone_number, received, last_activity_date, last_activity_type, latest_interest_date, latest_interest_source, status, move_in_preference, max_rent, bed_bath_preference, pet_preference, monthly_income, credit_score, lead_type, source, property, unit, assigned_user, assigned_user_id, guest_card_id, guest_card_uuid, inquiry_id, occupancy_id, property_id, unit_id, notes, tenant_id, rental_application_id, rental_application_group_id, applicants, inquiry_type, total_interests_received, interests_received_in_range, showings, interest_to_showing_scheduled, showing_to_application_received, application_received_to_decision, application_submission_to_lease_signed, inquiry_to_lease_signed, inactive_reason, crm. If not specified, all columns are returned.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only discloses the ID format requirement; does not mention side effects, authentication, rate limits, or output format. Lacks sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second gives critical usage instruction. No fluff, front-loaded, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, no output schema, the description is minimal. It does not explain the return format or pagination, but the parameters are well-documented in schema. Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description adds a critical usage note about numeric IDs (already in schema but reinforced), but does not add significant new meaning beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Returns guest card inquiries report for the given filters,' which specifies the verb, resource, and scope. It distinguishes from sibling report tools by focusing on guest card inquiries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on using numeric IDs and referencing directory reports to look up IDs. However, no guidance on when to use this tool versus alternatives among many report siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_income_statement_12_month_reportCInspect

Generates a 12-month income statement report.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, portfolios, or owners
fund_typeNoFilter by fund type. Defaults to "all"all
posted_on_fromYesRequired. The start month for the reporting period (YYYY-MM).
posted_on_toYesRequired. The end month for the reporting period (YYYY-MM).
gl_account_map_idNoOptional. Filter by a specific GL Account Map ID.
level_of_detailNoLevel of detail. Defaults to "detail_view"detail_view
include_zero_balance_gl_accountsNoInclude GL accounts with zero balance. Defaults to false.
columnsNoArray of specific columns to include in the report

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It only says 'Generates a 12-month income statement report' with no mention of side effects, read-only nature, authentication needs, or processing time. For a reporting tool, it likely has no side effects, but that is not disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence, which is concise. However, it is too brief for the tool's complexity, but from a pure conciseness standpoint it is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 9 parameters, including nested objects and filtering options, and no output schema. The description does not explain how the 12-month report works (e.g., trailing 12 months, calendar year), what the output contains, or how parameters like 'columns' affect the result. It is incomplete for a complex report generator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 9 parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description adds no additional meaning beyond what the schema provides, neither clarifying nor extending parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a 12-month income statement report. However, it does not distinguish from the sibling get_income_statement_date_range_report, which also generates an income statement for a date range. The '12-month' qualifier is specific but not explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_income_statement_date_range_report. There is no mention of the 12-month constraint or context for its use. The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_income_statement_date_range_reportCInspect

Returns the income statement report for a specified date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
properties_idsNoFilter by specific property IDs
property_groups_idsNoFilter by property group IDs
portfolios_idsNoFilter by portfolio IDs
owners_idsNoFilter by owner IDs
posted_on_fromYesStart date for the posting period (YYYY-MM-DD) - Required
posted_on_toYesEnd date for the posting period (YYYY-MM-DD) - Required
gl_account_map_idNoFilter by a specific GL account map ID
level_of_detailNoSpecify the level of detail. Defaults to "detail_view"detail_view
include_zero_balance_gl_accountsNoInclude GL accounts with zero balance. Defaults to "0"0
fund_typeNoFilter by fund type. Defaults to "all"all
columnsNoArray of specific columns to include

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose any behavioral traits such as read-only nature, side effects, rate limits, or pagination. The agent cannot infer safety or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence and very concise, but it lacks necessary detail to fully inform the agent. It is front-loaded but under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, no output schema, and no annotations, the description fails to provide complete context. It does not explain return structure, data format, or any constraints beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The tool description adds no new parameter information beyond the schema, meeting the baseline for high coverage but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns an income statement report for a specified date range. However, it does not differentiate from the sibling tool get_income_statement_12_month_report, leaving ambiguity about when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparison with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_in_progress_workflows_reportAInspect

Returns a report of in-progress workflows based on the provided filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, units_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachablesNoFilter results based on specific attached entities. All ID fields must be numeric strings, not names.
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, or portfolios. All ID fields must be numeric strings, not names.
process_templateNoFilter by specific process template name. Defaults to "All"All
workflow_stepNoFilter by specific workflow step name. Defaults to "All"All
assigned_userNoFilter by assigned user ID or "All". Defaults to "All". NOTE: Expects numeric user IDs (e.g. "4"), not user names. There is no user directory report available to lookup IDs by name.All
date_range_fromNoStart date for the due date range (YYYY-MM-DD)
date_range_toNoEnd date for the due date range (YYYY-MM-DD)
columnsNoArray of specific columns to include in the report

TDQS

A3.7/5.0
Behavior3/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 the critical ID format constraint but does not mention side effects, response format, or other behavioral traits beyond filter application.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core purpose, the second provides a critical constraint and guidance. It is efficiently front-loaded with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 9 parameters with nested objects, the description covers purpose and ID constraints but lacks an overview of the report content or usage context beyond filters. The detailed schema compensates partly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds a global note about numeric string IDs, which is already reflected in individual parameter descriptions but aggregated for emphasis.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a report of in-progress workflows based on filters. It uses a specific verb ('Returns a report') and resource ('in-progress workflows'), distinguishing it from sibling tools like get_completed_workflows_report and get_cancelled_workflows_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an important guideline about ID parameters being numeric strings and suggests using directory reports to look up IDs by name. However, it does not explicitly state when to use this tool versus other report tools or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_expiration_detail_by_month_reportAInspect

Retrieves a report detailing lease expirations by month, filterable by properties, date range, and other criteria. IMPORTANT: All ID parameters (properties_ids, property_groups_ids, portfolios_ids, owners_ids) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_dateYesThe start date for the reporting period (YYYY-MM-DD). Required.
to_dateYesThe end date for the reporting period (YYYY-MM-DD). Required.
propertiesNoFilter results based on properties, groups, portfolios, or owners
unit_visibilityNoFilter units by status. Defaults to "active"active
tagsNoFilter by unit tags (comma-separated string)
filter_lease_date_range_byNoWhich date field to use for the date range filter. Defaults to "Lease Expiration Date"Lease Expiration Date
exclude_occupancies_with_move_outNoExclude occupancies that have a move-out date. Defaults to "0" (false)0
exclude_month_to_monthNoExclude occupancies that are month-to-month. Defaults to "0" (false)0
columnsNoArray of specific columns to include in the report. Valid columns: property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, unit, unit_tags, unit_type, move_in, lease_expires, lease_expires_month, market_rent, sqft, tenant_name, deposit, rent, phone_numbers, unit_id, occupancy_id, tenant_id, owner_agent, tenant_agent, rent_status, legal_rent, owners_phone_number, owners, last_rent_increase, next_rent_adjustment, next_rent_increase, lease_sign_date, last_lease_renewal, notice_given_date, move_out, tenant_tags, affordable_program, computed_market_rent. If not specified, all columns are returned.

TDQS

A4.2/5.0
Behavior3/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. It discloses filter capabilities and ID format requirements but omits output format, pagination, or rate limits. This is adequate but not comprehensive for a report 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: first defines purpose, second provides critical usage guidance. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, nested objects, no output schema, and no annotations, the description covers primary purpose and key caveat. It could detail return format or add examples, but is sufficiently complete for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds crucial context beyond the schema by emphasizing the numeric ID requirement and the need to use directory reports for ID lookup, enhancing parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a specific report on lease expirations by month, distinguishing it from sibling reports like occupancy or rent roll. The verb 'retrieves' and resource 'report' with specific focus make purpose 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises that ID parameters must be numeric strings from directory reports, providing a clear prerequisite and lookup suggestion. It implies usage context but does not explicitly contrast with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leasing_funnel_performance_reportAInspect

Returns leasing funnel performance report for the given filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoall
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
date_fromYes
date_toYes
assigned_user_visibilityNoactive
assigned_userNoAll
columnsNo

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as side effects, rate limits, pagination, or output format. The only additional behavioral info is the ID format requirement, but that is parameter-level, not behavioral.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains two sentences: one stating the purpose and one providing critical usage guidance. It is concise, front-loaded, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, nested objects, no output schema), the description is minimal. It does not explain the report contents, result interpretation, or relationship to other reports. It meets the minimum for agent usage but leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, but the description repeats the key ID format requirement already present in the schema. It does not add new meaning for other parameters like date_from, date_to, or columns. The description is adequate but does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Returns leasing funnel performance report' with a specific verb and resource. The tool name is distinct among many sibling reports, and the description effectively distinguishes it by focusing on leasing funnel performance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly requires ID parameters to be numeric strings and directs users to use directory reports for ID lookups. This provides clear when-to-use and when-not-to-use guidance, referencing sibling tools like get_owner_directory_report.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leasing_summary_reportAInspect

Provides a summary of leasing activities, including inquiries, showings, applications, and move-ins/outs. IMPORTANT: All ID parameters (properties_ids, property_groups_ids, portfolios_ids, owners_ids) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners
unit_visibilityNoFilter units by status. Defaults to "active"active
posted_on_fromYesThe start date for the reporting period (YYYY-MM-DD). Required.
posted_on_toYesThe end date for the reporting period (YYYY-MM-DD). Required.
columnsNoArray of specific columns to include in the report. Valid columns: unit_type, number_of_units, number_of_model_units, inquiries_received, showings_completed, applications_received, move_ins, move_outs, leased, vacancy_postings, number_of_active_campaigns, number_of_ended_campaigns. If not specified, all columns are returned.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description bears full responsibility. It accurately describes inputs and purpose but omits behavioral details like pagination, data freshness, or return format. Adequate for a read-only report 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose concisely, second provides critical usage guideline. No superfluous text; key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description lists included metrics and the columns parameter provides specifics. However, it doesn't describe whether the report is aggregated by property, date, or other dimensions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds critical clarification that ID parameters are numeric strings (not names) and suggests using directory reports for lookup. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a summary of leasing activities including inquiries, showings, applications, move-ins/outs. It distinguishes from sibling report tools by its specific focus on leasing metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly notes that all ID parameters must be numeric strings (not names) and advises using directory reports to lookup IDs. While it doesn't list when to avoid this tool, the context of siblings provides implicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_loans_reportCInspect

Retrieves a report on loans associated with properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, portfolios, or owners
reference_toYesThe reference date for the report (YYYY-MM-DD). Required.
show_hidden_loansNoInclude loans marked as hidden. Defaults to "0" (false)0
columnsNoArray of specific columns to include in the report

TDQS

C2.9/5.0
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 disclosing behavioral traits. It only states the tool retrieves a report, omitting details like read-only nature, permission requirements, response size, or pagination 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the core function. It could be expanded with more context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, and the existence of numerous sibling report tools, the description is incomplete. It does not explain what the report contains, how to use filters effectively, or what the output looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no parameter-specific information beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves a report on loans associated with properties, using a specific verb and resource. However, among 47 sibling report tools, it does not differentiate its purpose (e.g., vs. rent roll or delinquency reports).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like get_rent_roll_itemized_report or get_delinquency_as_of_report. The description lacks any context on appropriate use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_occupancy_summary_reportAInspect

Generates a summary of property occupancy, including number of units, occupied units, and vacancy rates. IMPORTANT: All ID parameters must be numeric strings (e.g. '123'), NOT names. Use directory reports to lookup IDs by name if needed. Common columns: 'number_of_units', 'occupied', 'vacant_rented', 'vacant_unrented', 'percent_occupied'.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners
unit_visibilityNoFilter units by status. Defaults to "active"active
as_of_dateYesThe "as of" date for the report (YYYY-MM-DD). Required.
columnsNoArray of specific columns to include in the report. Valid columns: unit_type, number_of_units, occupied, percent_occupied, average_square_feet, average_market_rent, vacant_rented, vacant_unrented, notice_rented, notice_unrented, average_rent, property, property_id. If not specified, all columns are returned. NOTE: Use 'occupied' for occupied units count, 'vacant_rented' and 'vacant_unrented' for vacancy details.

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No behavioral traits disclosed beyond the basic summary generation. No annotations provided, so description should cover read-only nature or performance implications, but it does not. Only mentions ID format which is parameter 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a column list. No redundancy, front-loaded with purpose and critical usage note. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main purpose and parameter constraints but omits explanation of output structure (e.g., grouped by property) and the role of the nested properties object. Lacks guidance on how the filters interact or what the required as_of_date implies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value by emphasizing numeric string requirement for IDs and listing common columns with clarifications (e.g., use 'occupied' for count). Adds meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Generates a summary' and resource 'property occupancy' with specific metrics (units, occupied, vacancy rates). Distincts from sibling reports like get_leasing_summary_report or get_unit_vacancy_detail_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit instruction that IDs must be numeric strings and directs users to directory reports for ID lookup. Lacks explicit when-not to use or comparison with siblings, but the important note is highly actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_owner_directory_reportAInspect

Retrieves a DIRECTORY report with details about property owners. This returns ALL owners (with optional filters) - to find specific owners by name, call this report and search the results client-side. IMPORTANT: All ID parameters must be numeric strings, NOT names. The 'tags' parameter is for filtering by actual system tags, NOT for text search.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by visibility. Defaults to 'active'.active
propertiesNoFilter results based on properties, groups, portfolios, or owners.
tagsNoFILTER BY SYSTEM TAGS ONLY: Comma-separated list of actual tags assigned to owners in the system (e.g., 'vip,corporate'). NOT for searching by owner names - use the full report results for name searching.
owner_visibilityNoFilter owners by visibility. Defaults to 'active'.active
created_byNoFilter by who created the owner. Defaults to 'All'.All
columnsNoList of columns to include in the report. If omitted, default columns are used.

TDQS

A4.5/5.0
Behavior4/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 that the tool returns all owners (subject to filters) and that it's a report retrieval. It also warns about parameter formats. However, it does not mention any potential side effects, auth requirements, or pagination 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences that efficiently convey the purpose and critical usage notes. It could be slightly more streamlined, but every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema, the description explains the high-level behavior and parameter constraints. However, it lacks details about the output format, whether the report is paginated, or if it runs synchronously. More context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds critical clarifications: IDs must be numeric strings, and the tags parameter is for system tags only, not for name search. This prevents misuse that the schema alone might not prevent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a directory report of property owners and distinguishes it from other report tools by emphasizing it returns ALL owners with optional filters. It also clarifies that specific name searches should be done client-side, differentiating it from potential search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided on when to use (to get a comprehensive directory) and how to use parameters correctly, including warnings that IDs must be numeric strings and tags are for system tags only. This helps avoid common mistakes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_owner_leasing_reportAInspect

Provides a leasing report tailored for property owners, showing leasing activity within a specified date range. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
received_on_fromYesThe start date for the reporting period based on received date (YYYY-MM-DD). Required.
received_on_toYesThe end date for the reporting period based on received date (YYYY-MM-DD). Required.
unit_visibilityNoFilter units by status. Defaults to "active"active
include_units_which_are_not_rent_readyNoInclude units that are not marked as rent ready. Defaults to "0" (false)0
include_units_which_are_hidden_from_the_vacancies_dashboardNoInclude units hidden from the vacancies dashboard. Defaults to "0" (false)0
columnsNoArray of specific columns to include in the report

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It describes the report's purpose and the ID format requirement but does not disclose whether the operation is read-only, any side effects, or the exact contents of the report. The description adds value but misses some behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences: one for purpose and one for critical usage guidelines. It is front-loaded, concise, and contains no filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters (nested object), 2 required, and no output schema, the description covers the core purpose and a key constraint. However, it does not explain the output structure or any defaults beyond what the schema already provides, leaving some gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all parameters. The description adds the critical instruction on numeric string IDs and the need to use directory reports, which goes beyond the schema. It enriches the semantic understanding of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a leasing report tailored for property owners, with leasing activity within a date range. This specific verb+resource combination distinguishes it from 45 sibling reports (e.g., get_leasing_summary_report or get_leasing_funnel_performance_report).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mandates that all ID parameters must be numeric strings (not names) and instructs users to use directory reports to look up IDs first. This provides clear, actionable guidance for correct usage but does not explicitly compare with sibling leasing reports.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_property_directory_reportAInspect

Retrieves a property directory report with details about properties, including status, address, units count, and owner information. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use Owner Directory Report first to lookup owner IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on property, group, portfolio, or owner IDs. All values must be numeric ID strings, not names.
columnsNoArray of specific columns to include in the report. Valid columns: property, property_name, property_id, property_integration_id, property_address, property_street, property_street2, property_city, property_state, property_zip, property_county, market_rent, units, sqft, management_flat_fee, management_fee_percent, minimum_fee, maximum_fee, waive_fees_when_vacant, reserve, home_warranty_expiration, insurance_expiration, tax_year_end, tax_authority, owners_phone_number, payer_name, description, portfolio, premium_leads_status, premium_leads_monthly_cap, premium_leads_activation_date, owner_i_ds, property_group_id, portfolio_id, portfolio_uuid, visibility, maintenance_limit, maintenance_notes, site_manager_name, site_manager_phone_number, management_fee_type, lease_fee_type, lease_flat_fee, lease_fee_percent, renewal_fee_type, renewal_flat_fee, renewal_fee_percent, future_management_fee_start_date, future_management_fee_percent, future_management_flat_fee, future_minimum_fee, future_maximum_fee, future_management_fee_type, future_waive_fees_when_vacant, owner_payment_type, property_type, property_created_on, property_created_by, owners, prepayment_type, late_fee_type, late_fee_base_amount, late_fee_daily_amount, late_fee_grace_period, late_fee_grace_period_fixed_day, late_fee_grace_balance, max_daily_late_fees_amount, ignore_partial_payments, admin_fee_amount, year_built, contract_expirations, management_start_date, management_end_date, management_end_reason, agent_of_record, tax_region_code, property_class, online_maintenance_request_instructions, amenities, listing_type. If not specified, all columns are returned.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It implies a read operation (retrieves a report) but does not confirm read-only nature, disclose auth requirements, rate limits, or potential side effects. The description focuses on content rather than 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences: one stating the purpose, and one providing critical usage guidance. No filler words. The important note is front-loaded with 'IMPORTANT' for emphasis.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a report tool with no output schema, the description covers the purpose and critical parameter constraints. It is missing default behavior (e.g., returns all properties if no IDs specified) and pagination info, but these are common defaults. Overall sufficient for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters. The description reiterates the numeric string requirement and cross-references another tool, adding marginal value beyond schema. However, it does not elaborate on the properties object structure or columns selection beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieves' and the specific resource 'property directory report', listing included details (status, address, units count, owner information). This distinguishes it from sibling tools like get_owner_directory_report or get_unit_directory_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on parameter usage: all ID parameters must be numeric strings, not names, and directs to use Owner Directory Report for name-to-ID lookup. Does not explicitly contrast with other property-related reports, but the instruction is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_property_group_directory_reportAInspect

Get property group directory report from AppFolio. Shows properties organized by property groups and portfolios. IMPORTANT: All ID parameters (properties_ids, property_groups_ids, portfolios_ids, owners_ids) must be numeric strings (e.g. "123"), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoProperty visibility filteractive
propertiesNoProperty filtering options
orphans_onlyNoFilter to show only orphaned properties (1) or all properties (0)0
columnsNoArray of specific columns to include in the report. Valid columns: property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, property_county, property_legacy_street1, property_group_name, portfolio, property_group_id, portfolio_id. If not specified, all columns are returned.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that IDs must be numeric strings, which is a behavioral constraint. However, it does not mention read-only nature, authentication requirements, rate limits, or error behavior for invalid IDs. With no annotations, a score of 3 is appropriate – adds some value but lacks full 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with a clear lead sentence stating purpose, followed by a critical usage note. Every sentence adds value; no wasted words. The warning is appropriately emphasized with 'IMPORTANT'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 100% schema coverage and no output schema, the description adequately explains what the tool does and how to use IDs. It hints at the output (properties organized by groups/portfolios). For a report tool, this is sufficient; missing explicit return format but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description reiterates the ID format requirement already in the schema descriptions ('numeric strings, NOT names'). It adds guidance to use directory reports to lookup IDs, but that is usage context rather than parameter semantics. No additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get property group directory report from AppFolio. Shows properties organized by property groups and portfolios.' It uses a specific verb ('Get') and resource ('property group directory report'). The mention of organization by groups and portfolios distinguishes it from sibling tools like get_property_directory_report and get_owner_directory_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'IMPORTANT: All ID parameters ... must be numeric strings ... NOT names. Use respective directory reports first to lookup IDs by name if needed.' This tells the agent when to use this tool (after looking up IDs) and gives clear alternatives (other directory reports).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_property_performance_reportAInspect

Retrieves the Property Performance report, showing financial performance metrics for properties within a specified date range. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
report_formatYesFormat for the property performance report. Required.
period_fromYesThe start date for the reporting period (YYYY-MM-DD). Required.
period_toYesThe end date for the reporting period (YYYY-MM-DD). Required.
columnsNoArray of specific columns to include in the report. Note: Available columns depend on the report_format selected. Avoid generic names like "total_income" - check the API documentation for valid column names for this report.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the ID format constraint and that it retrieves a report. However, it lacks details on side effects, authentication requirements, rate limits, or response format, which are important for an agent invoking the 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus a bolded critical note. It front-loads the purpose and immediately follows with essential usage constraint. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, 3 required, nested objects, and no output schema, the description provides key context (ID format, column dependency) but does not describe the return structure or specific metrics included. For this complexity level, it is partially complete but could detail what financial metrics are in the report.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds value by emphasizing that all ID parameters must be numeric strings and suggesting to use directory reports for lookup. It also warns that column names depend on report_format and to check API docs. This goes beyond the schema's built-in descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a 'Property Performance report' with financial metrics for a date range. The verb 'Retrieves' is specific, and the resource 'Property Performance report' distinguishes it from sibling report 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides important usage guidance: IDs must be numeric strings, and recommends using directory reports to look up IDs if needed. It does not explicitly state when to use this report versus other financial reports, but the ID guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_property_source_tracking_reportAInspect

Returns property source tracking report for the given filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
unit_visibilityNoFilter units by status. Defaults to "active"
received_on_fromYesThe start date for the reporting period based on received date (YYYY-MM-DD). Required.
received_on_toYesThe end date for the reporting period based on received date (YYYY-MM-DD). Required.
columnsNoArray of specific columns to include in the report

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. It mentions required filters and ID constraints but lacks details on output format, pagination, or what happens with no results. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant information. Purpose is stated upfront, followed by a critical usage note. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks description of the report's content, output format, or how to interpret results. No output schema. With many sibling report tools, more context is needed to enable proper selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover 100% of parameters. The description adds emphasis on numeric ID format but does not introduce new semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Returns') and the resource ('property source tracking report'). However, it does not explain what the report tracks (e.g., source of leads), which could help distinguish it from sibling report 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance that ID parameters must be numeric strings and suggests using directory reports for ID lookup. Does not specify when to use vs. alternative reports, but the ID format warning is valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_receivables_activity_reportAInspect

Returns receivables activity report for the given filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_visibilityNoFilter tenants by status. Defaults to "active"
tenant_statusesNoFilter by specific tenant statuses (e.g., ["0", "4"] for Current and Notice)
property_visibilityNoFilter properties by status. Defaults to "active"
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
receipt_date_fromYesThe start date for the reporting period based on receipt date (YYYY-MM-DD). Required.
receipt_date_toYesThe end date for the reporting period based on receipt date (YYYY-MM-DD). Required.
manually_entered_onlyNoInclude only manually entered receipts. Defaults to "0" (false)
columnsNoArray of specific columns to include in the report

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description does not disclose behavioral traits such as whether the tool is read-only, pagination behavior, or implications of filtering. The ID format warning is parameter-related, not behavioral. The agent is left uninformed about side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant words. The first sentence states purpose, the second emphasizes a critical usage detail. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 8 parameters, the description lacks information about the report's output format or structure. The ID lookup guidance is helpful, but missing output details reduces completeness for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described. The description adds a holistic note about ID numeric strings, but this is already present in some parameter descriptions. No new semantic meaning beyond schema is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a receivables activity report for given filters, using specific verb 'Returns' and resource 'receivables activity report'. Among many sibling report tools, this uniquely identifies its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on parameter usage: ID parameters must be numeric strings and suggests using directory reports for ID lookup. However, it does not compare when to use this report versus other sibling reports, which would strengthen guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_renewal_summary_reportAInspect

Provides a summary of lease renewals. IMPORTANT: All ID parameters (properties_ids, property_groups_ids, portfolios_ids, owners_ids) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed. NOTE: All string parameters should be properly quoted JSON strings (e.g. "active", not active).

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners
unit_visibilityNoFilter units by status. Defaults to "active"active
start_on_fromYesThe start month for the reporting period based on lease start date (YYYY-MM). Required.
start_on_toYesThe end month for the reporting period based on lease start date (YYYY-MM). Required.
statusesNoFilter by renewal status. Defaults to ["all"]
include_tenant_transfersNoInclude tenant transfers in the report. Defaults to "0" (false)
columnsNoArray of specific columns to include in the report. Valid columns: unit_name, property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, unit_type, unit_id, occupancy_id, tenant_name, lease_start, lease_end, previous_lease_start, previous_lease_end, previous_rent, rent, respond_by_date, renewal_sent_date, countersigned_date, automatic_renewal_date, percent_difference, dollar_difference, status, term, lease_start_month, tenant_id, tenant_tags, tenant_agent, lease_uuid, lease_document_uuid, notice_given_date, move_out. If not specified, all columns are returned.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits like read-only nature, permissions, or error behavior. It only covers input formatting, not behavior, so transparency is low.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus an IMPORTANT and NOTE. It is concise with no wasted words, though the formatting notes make it slightly less structured. Still earns a high score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not explain return values or error handling. For a report tool, this is a gap. However, the input schema is well-covered and usage is clear, so it is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds emphasis on ID format and quoting, but does not add significant meaning beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Provides a summary of lease renewals', which is a specific verb+resource. It clearly distinguishes from the many sibling report tools by focusing on renewal summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells agents that ID parameters must be numeric strings, not names, and advises using directory reports first. It also warns about proper JSON quoting for string parameters. This is excellent usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rental_applications_reportAInspect

Returns rental applications report for the given filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoactive
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
received_on_fromNo
received_on_toNo
statusesNo
sourcesNo
columnsNo

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It does not disclose behavioral traits such as read-only nature, pagination, output format, or required permissions. The tool name implies a report but details are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. First sentence states purpose, second sentence provides critical usage warning. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite complexity (7 params, nested object, no output schema, no annotations), the description lacks details on output, pagination, sorting, valid filter values, and examples. It does not fully compensate for the missing annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (14%), but the description adds critical clarification about ID format and directory lookup. However, it does not explain other parameters like received_on_from/to, statuses, sources, or columns beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Returns rental applications report for the given filters', specifying verb and resource. It is distinct from sibling report tools by naming the specific report type, but could be clearer by explicitly differentiating from similar tools like 'get_screening_assessment_report'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: all ID parameters must be numeric strings, not names, and recommends using directory reports to look up IDs first. This tells the agent when to use other tools as prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rent_roll_itemized_reportBInspect

Returns rent roll itemized report for the given filters. IMPORTANT: All ID parameters (properties_ids, property_groups_ids, portfolios_ids, owners_ids, gl_account_ids) must be numeric strings (e.g. '123'), NOT names. CRITICAL: gl_account_ids are internal database IDs, NOT GL account numbers! Do not use GL account numbers like '4630', '4635' - use the Chart of Accounts Report first to lookup the correct gl_account_ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNo
unit_visibilityNoFilter units by status. Defaults to "active".active
tagsNoTags filter
gl_account_idsNoArray of GL account IDs (internal database IDs, NOT GL account numbers). These are numeric strings like "123", "456". Do NOT use GL account numbers like "4630", "4635". Use the Chart of Accounts Report to lookup gl_account_ids by GL account number or name.
as_of_dateYesReport date in YYYY-MM-DD format
columnsNoArray of specific columns to include in the report. Valid columns: property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, property_type, occupancy_id, unit_id, unit, unit_tags, unit_type, bd_ba, tenant, status, sqft, market_rent, computed_market_rent, advertised_rent, total, other_charges, monthly_rent_square_ft, annual_rent_square_ft, deposit, lease_from, lease_to, last_rent_increase, next_rent_adjustment, next_rent_increase_amount, next_rent_increase, move_in, move_out, past_due, nsf, late, amenities, additional_tenants, monthly_charges, rent_ready, rent_status, legal_rent, preferential_rent, tenant_tags, tenant_agent, property_group_id, portfolio_id. If not specified, all columns are returned.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states it returns a report, but doesn't disclose behavioral traits like read-only nature, output format, or error handling. For a mutation tool this would be insufficient, but for a report tool the lack is still noticeable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences that front-load the purpose and provide critical warnings. No unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description should describe what the report returns (e.g., list of items with columns). It only says 'itemized report' without details. Lacks information on output structure, pagination, or error scenarios. Incomplete for a tool with 6 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (83%), so baseline is 3. Description repeats the ID format warnings which are critical but already in schema. It adds emphasis but little new meaning. Does not explain parameter relationships or context beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns a rent roll itemized report with filters. While it doesn't explicitly differentiate from sibling report tools, the name and description are specific enough to identify its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides critical usage guidance: ID parameters must be numeric strings and gl_account_ids are internal IDs, not account numbers. Suggests using Chart of Accounts Report for lookup. However, it doesn't specify when to use this tool vs alternative reports.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resident_financial_activity_reportBInspect

Returns resident financial activity report for the given filters. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoactive
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
occurred_on_fromYes
occurred_on_toYes
include_voidedNo
columnsNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It only mentions the ID requirement and that it returns a report, but lacks details on read-only nature, pagination, idempotency, or rate limits. This is insufficient for a report 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, first states purpose, second an important note. Concise but could be better structured (e.g., bullet points). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters and no output schema, the description lacks explanation of filters, date range, boolean flag, and columns. It is incomplete for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (17%), and the description adds value by emphasizing the numeric string requirement for IDs, but does not explain other parameters like occurred_on_from, include_voided, or columns. Partially compensates but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a 'resident financial activity report' for given filters, distinguishing it from sibling reports like balance sheet or income statement by specifying 'resident financial activity', though it doesn't explicitly differentiate from similar financial reports like receivables activity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a critical usage guideline: all ID parameters must be numeric strings, not names, and advises using directory reports to look up IDs. It lacks explicit when-to-use vs alternatives but implies context for resident financial data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_screening_assessment_reportCInspect

Returns screening assessment report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoactive
propertiesNo
screening_date_fromNo
screening_date_toNo
statusesNo
decision_statusesNo
columnsNo

TDQS

C2.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description gives no behavioral details (e.g., side effects, permissions, output format, pagination). The agent cannot infer behavior from this minimal description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence), which is good, but it sacrifices necessary detail. Every word contributes, but more information is needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, nested objects, many siblings, no output schema), the description is severely underspecified. It fails to provide essential context about the report content, filter usage, or result interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the 7 parameters. 'Given filters' is too vague; the agent cannot understand how to populate parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a 'screening assessment report' and mentions 'filters,' distinguishing it from other report tools. However, it does not explain what a screening assessment report contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the many sibling report tools. No conditions, prerequisites, or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_security_deposit_funds_detail_reportDInspect

Returns security deposit funds detail report for the given filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoactive
propertiesNo
as_of_dateYes
include_voidedNo
columnsNo

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only says 'returns report' with no disclosure of side effects, data source, permissions needed, or response behavior. Completely opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is short, but it is under-specified rather than concise. It fails to earn its place by providing useful information beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters (including nested objects), no output schema, and 46 sibling report tools, the description is severely incomplete. It offers no context for selection or usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description adds no meaning to any parameter. The phrase 'given filters' is generic and does not explain what each parameter controls. The agent receives no help understanding the complex nested object or required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it returns a 'security deposit funds detail report', which is specific to a resource. However, it does not differentiate from many sibling report tools with similar verb-noun patterns, and the phrase 'for the given filters' is vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs. alternatives. The description does not mention any context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tenant_directory_reportAInspect

Returns tenant directory report for the given filters. IMPORTANT: All ID parameters (properties_ids, owners_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_visibilityNoactive
tenant_typesNo
property_visibilityNoactive
propertiesNo
columnsNo

TDQS

A3.6/5.0
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 mentions the ID format requirement and says nothing about authorization needs, performance implications, error behavior, or any other interactions beyond parameter formatting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: first states the purpose, second delivers the key caveat. It is concise, front-loaded, and contains no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, nested objects, two enums, and no output schema. The description does not explain return type, format, or what the enums mean. Given the complexity, more contextual detail is needed to fully inform the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does 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 adds the critical clarification that IDs are numeric strings, but fails to explain other parameters like tenant_visibility, columns, or the nested object structure. It adds value but not for all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a tenant directory report for given filters. It uses a specific verb ('returns') and resource ('tenant directory report'), which distinguishes it from the many sibling report 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns that all ID parameters must be numeric strings, not names, and advises to use respective directory reports to look up IDs. This provides clear when-to-use guidance for parameter preparation, though it does not explicitly contrast with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tenant_ledger_reportCInspect

Generates a report on tenant ledgers.

ParametersJSON Schema
NameRequiredDescriptionDefault
parties_idsYesRequired. Specify the occupancies to include.
occurred_on_fromYesRequired. The start date for the reporting period (YYYY-MM-DD).
occurred_on_toYesRequired. The end date for the reporting period (YYYY-MM-DD).
transactions_shownNoFilter transactions shown. Defaults to "tenant"tenant
columnsNoArray of specific columns to include in the report

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, allowed call frequency, data destruction, or permissions. The agent gets no insight into side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, efficiently front-loading the core purpose. While short, it avoids verbosity, but the extreme brevity borders on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 5 parameters (including nested objects), and over 40 sibling tools, the description is drastically incomplete. It does not explain the report structure, column options, or data scope, leaving an AI agent with insufficient context to decide and use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds no extra meaning beyond the schema (e.g., does not explain how parties_ids or columns interact). Baseline score of 3 is appropriate as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Generates a report on tenant ledgers', which clearly identifies the tool's resource but is generic. Among many sibling report tools (e.g., get_resident_financial_activity_report), it fails to specify what distinguishes a tenant ledger report from others, making it vague in context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool vs alternatives, no prerequisites or conditions mentioned. The description provides no context for appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trial_balance_by_property_reportCInspect

Generates a trial balance report by property.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNoFilter results based on properties, groups, portfolios, or owners
posted_on_fromYesRequired. The start date for the reporting period (YYYY-MM-DD).
posted_on_toYesRequired. The end date for the reporting period (YYYY-MM-DD).
gl_account_map_idNoOptional. Filter by a specific GL Account Map ID.
columnsNoArray of specific columns to include in the report

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only states it generates a report. Does not disclose whether the operation is read-only, required permissions, or any side effects, which is critical for a data retrieval 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core function. However, it sacrifices necessary detail for brevity, making it somewhat underspecified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, nested objects, and no output schema, the description is insufficient. It does not explain the report's content, format, or how to interpret results, leaving significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already described. The description adds no additional meaning beyond stating the tool's function, meeting baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a trial balance report by property, which is specific. However, it does not differentiate from sibling report tools like get_balance_sheet_report, relying on the name for distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternative report tools. Lacks context on prerequisites, use cases, or exclusions, leaving the agent to infer from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unit_directory_reportAInspect

Retrieves a unit directory report with details about units in properties. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
unit_visibilityNoFilter units by status. Defaults to "active"active
tagsNoOptional. Filter by a comma-separated list of tags (e.g., "bbq,deck").
columnsNoArray of specific columns to include in the report

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It lacks disclosure of behavioral aspects like read-only status, authentication needs, or side effects. The only behavioral hint is the numeric ID requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, followed by critical usage guidance. No unnecessary words, highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain what the report contains beyond 'details about units', nor does it mention pagination, sorting, or other features. Since there is no output schema, more context on the report's content would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already documents parameters. The description adds value by reinforcing the numeric string requirement and providing lookup hints, but this is incremental.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a unit directory report with details about units in properties. It provides a specific verb and resource, distinguishing it from sibling report tools by name and context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns that all ID parameters must be numeric strings and recommends using directory reports to look up IDs by name. This provides clear usage guidance, though it does not contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unit_inspection_reportAInspect

Generates a report on unit inspections. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
unit_visibilityNoFilter units by status. Defaults to "active"active
last_inspection_on_fromNoOptional. Filter units last inspected on or after this date (YYYY-MM-DD).
include_blank_inspection_dateNoInclude units with no inspection date. Defaults to false.
columnsNoArray of specific columns to include in the report

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states 'Generates a report', implying a read-only operation but not explicitly confirming it. No information about effects, authentication, rate limits, or error handling is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first directly states the purpose, and the second delivers critical usage guidance. It is front-loaded, succinct, and contains no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters (including a nested object) and no output schema, the description is incomplete. It does not explain the report's content, column options, return format, or limitations. Important context like what happens with invalid IDs or empty results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description's note about numeric IDs is redundant with the schema descriptions (e.g., 'numeric strings, NOT property names'). The description adds no new parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Generates a report on unit inspections' clearly states the tool's purpose with a specific verb and resource. The name itself distinguishes it from many sibling report tools focused on other areas, though no explicit differentiation is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit note that all ID parameters must be numeric strings, not names, and advises using directory reports to look up IDs. This provides clear guidance on tool prerequisites and when to use alternative tools, covering both when and how to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unit_vacancy_detail_reportAInspect

Generates a report on unit vacancies. IMPORTANT: All ID parameters (owners_ids, properties_ids, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNoFilter results based on properties, groups, portfolios, or owners. All ID fields must be numeric strings, not names.
property_visibilityNoFilter units by status. Defaults to "active"active
tagsNoOptional. Filter by a comma-separated list of tags (e.g., "bbq,deck").
columnsNoArray of specific columns to include in the report. Valid columns: advertised_rent, posted_to_website, posted_to_internet, property, property_name, amenities, lockbox_enabled, affordable_program, address, street, street2, city, state, zip, unit, unit_tags, unit_type, bed_and_bath, sqft, unit_status, rent_ready, days_vacant, last_rent, schd_rent, new_rent, last_move_in, last_move_out, available_on, next_move_in, description, amenities_price, computed_market_rent, ready_for_showing_on, unit_turn_target_date, advertised_rent_months, property_id, unit_id. If not specified, all columns are returned.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only states the purpose and parameter requirements, but does not mention read-only nature, side effects, authentication needs, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a highlighted important note. It is concise, front-loaded, and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and the complexity of parameters, the description fails to explain what the report returns or any expected output structure. This leaves agents with incomplete information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and already includes ID format hints. The description reinforces this but adds little new meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a report on unit vacancies. It also includes an important clarification about ID format, distinguishing it from other report 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs users to use numeric strings for IDs and to lookup IDs using directory reports first. This provides clear when-to-use guidance, though it does not explicitly contrast with sibling report tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vendor_directory_reportCInspect

Retrieves a directory of vendors. IMPORTANT: All ID parameters must be numeric strings (e.g. '123'), NOT names.

ParametersJSON Schema
NameRequiredDescriptionDefault
workers_comp_expiration_toNoOptional. Filter vendors whose Workers Comp expires on or before this date (YYYY-MM-DD).
liability_expiration_toNoOptional. Filter vendors whose Liability Insurance expires on or before this date (YYYY-MM-DD).
epa_expiration_toNoOptional. Filter vendors whose EPA Certification expires on or before this date (YYYY-MM-DD).
auto_insurance_expiration_toNoOptional. Filter vendors whose Auto Insurance expires on or before this date (YYYY-MM-DD).
state_license_expiration_toNoOptional. Filter vendors whose State License expires on or before this date (YYYY-MM-DD).
contract_expiration_toNoOptional. Filter vendors whose Contract expires on or before this date (YYYY-MM-DD).
tagsNoOptional. Filter by a comma-separated list of tags (e.g., "plumbing,hvac").
vendor_visibilityNoFilter vendors by status. Defaults to "active"active
payment_typeNoOptional. Filter by payment type (eCheck, Check, or all). Defaults to all if not specified.
created_byNoFilter by who created the vendor. Defaults to "All".All
vendor_typeNoFilter by vendor type. Defaults to "All".All
columnsNoArray of specific columns to include in the report

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as data freshness, pagination, or permissions required. The tool's behavior beyond 'retrieves a directory' is completely opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes space with a misleading note about ID parameters that do not exist in the schema. It is not effectively concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters and no output schema or annotations, the description is severely incomplete. It does not explain the return format, how to interpret the directory, or any edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 12 parameters already have descriptions in the schema. The description adds no additional meaning beyond the schema, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieves a directory of vendors,' which is a specific verb+resource. Among many sibling report tools, this one is uniquely identified as a vendor directory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an important note about ID parameters, but the input schema contains no ID parameters, making the note irrelevant. There is no guidance on when to use this tool versus alternatives like get_vendor_ledger_report.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vendor_ledger_reportDInspect

Generates a report on vendor ledgers.

ParametersJSON Schema
NameRequiredDescriptionDefault
vendor_idYesRequired. The ID of the vendor (company).
property_visibilityNoFilter properties by status. Defaults to "active"active
propertiesNo
occurred_on_fromYesRequired. The start date for the reporting period (YYYY-MM-DD).
occurred_on_toYesRequired. The end date for the reporting period (YYYY-MM-DD).
reverse_transactionNoInclude reversed transactions. Defaults to false.
columnsNoArray of specific columns to include in the report

TDQS

D1.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose any behavioral traits such as authentication needs, rate limits, or whether it is read-only. For a report tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is concise but under-specified, omitting essential details about the report's scope and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a complex input schema (7 parameters including nested objects), the description fails to provide a complete understanding of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (86%), so the description adds no value beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Generates a report on vendor ledgers' is almost tautological, restating the tool name without specifying what the report contains or how it differs from numerous sibling reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_aged_payables_summary_report or get_receivables_activity_report.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_order_labor_summary_reportCInspect

Returns a report detailing work order labor based on specified filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active"active
maintenance_techNoFilter by maintenance technician. Defaults to "All"All
labor_performed_fromYesStart date for labor performed (YYYY-MM-DD)
labor_performed_toYesEnd date for labor performed (YYYY-MM-DD)
unit_turnNoFilter by unit turn. Defaults to "0" (false)0
propertiesNoFilter by specific properties, groups, portfolios, or owners
columnsNoArray of specific columns to include in the report
work_order_statusesNoFilter by work order status IDs

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It only states the function without disclosing read-only nature, authentication needs, or return format. As a report tool, read-only is implied but not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no wasted words. However, could be restructured to front-load key details or break into bullet points for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters (including nested objects) and no output schema, the description is too minimal. It does not explain what the report contains (e.g., labor hours, costs), how filters combine, or what the columns parameter does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides; it does not explain parameter interactions or provide usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a report about work order labor with filters. It distinguishes from sibling report tools like 'get_work_order_report' by specifying 'labor summary', but does not explicitly differentiate from other labor-related reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the many other report tools. No suggestions on prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_order_reportAInspect

Generates a report on work orders. IMPORTANT: All ID parameters (unit_ids, property_id, etc.) must be numeric strings (e.g. '123'), NOT names. Use respective directory reports first to lookup IDs by name if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_visibilityNoFilter properties by status. Defaults to "active".active
unit_idsNoOptional. Filter by specific unit IDs.
propertyNoOptional. Filter by a single property ID.
parties_idsNoOptional. Filter by specific occupancy IDs.
party_contact_infoNoOptional. Filter by a specific vendor ID (company).
assigned_userNoFilter by assigned user ID or "All". Defaults to "All".All
created_byNoFilter by creator user ID or "All". Defaults to "All".All
priorityNoFilter by priority. Defaults to "All".All
from_inspectionNoOptional. Filter by whether the work order originated from an inspection. Defaults to false.
current_estimate_approval_statusNoFilter by estimate approval status. Defaults to "All".All
work_order_statusesNoOptional. Filter by specific work order status IDs.
work_order_typesNoOptional. Filter by specific work order types.
unit_turn_categoryNoFilter by unit turn category. Defaults to ["all"].
status_date_range_fromNoOptional. Start date for status date range filter (YYYY-MM-DD).
status_date_range_toNoOptional. End date for status date range filter (YYYY-MM-DD).
status_dateNoField to use for status date range filtering. Defaults to "all".all
columnsNoArray of specific columns to include in the report. Valid columns: property, property_name, property_id, property_address, property_street, property_street2, property_city, property_state, property_zip, unit_address, unit_street, unit_street2, unit_city, unit_state, unit_zip, priority, work_order_type, service_request_number, service_request_description, home_warranty_expiration, work_order_number, job_description, instructions, status, vendor_id, vendor, unit_id, unit_name, occupancy_id, primary_tenant, primary_tenant_email, primary_tenant_phone_number, created_at, created_by, assigned_user, estimate_req_on, estimated_on, estimate_amount, estimate_approval_status, estimate_approved_on, estimate_approval_last_requested_on, scheduled_start, scheduled_end, work_completed_on, completed_on, last_billed_on, canceled_on, amount, invoice, unit_turn_id, corporate_charge_amount, corporate_charge_id, discount_amount, discount_bill_id, markup_amount, markup_bill_id, tenant_total_charge_amount, tenant_charge_ids, vendor_bill_amount, vendor_bill_id, vendor_charge_amount, vendor_charge_id, inspection_id, inspection_date, work_order_id, service_request_id, recurring, submitted_by_tenant, requesting_tenant, maintenance_limit, status_notes, follow_up_on, vendor_trade, unit_turn_category, work_order_issue, survey_id, vendor_portal_invoices

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the tool generates a report but does not disclose behavioral aspects like output format, pagination, authentication requirements, or performance implications. For a report generating tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the purpose directly, and the second is a crucial usage note. No unnecessary words, perfectly front-loaded and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 17 parameters, 4 enums, and no output schema, the description is minimal. It covers the main purpose and a key nuance, but lacks info on default report behavior, output structure, or any limits. Acceptable but could be expanded.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, but the description adds critical meaning by specifying that all ID parameters must be numeric strings and not names. This goes beyond the schema, which only describes types. Without this note, the tool could be misused.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generates a report on work orders,' specifying the verb (generates) and resource (work orders). This distinguishes it from sibling tools like get_work_order_labor_summary_report, which focuses on labor summaries. The purpose is 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/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on ID parameter format (must be numeric strings) and directs users to use directory reports for ID lookup. However, it does not explicitly state when to avoid this tool (e.g., for non-report workflows) or offer alternative report tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 47 tool updatesv1.1.3
    • First observedget_account_totals_report
    • First observedget_aged_payables_summary_report
    • First observedget_aged_receivables_detail_report
    • First observedget_annual_budget_comparative_report
    • First observedget_annual_budget_forecast_report
    • First observedget_balance_sheet_report
    • First observedget_budget_comparative_report
    • First observedget_cancelled_workflows_report
    • First observedget_cashflow_12_month_report
    • First observedget_cashflow_report
    • First observedget_chart_of_accounts_report
    • First observedget_completed_workflows_report
    • First observedget_delinquency_as_of_report
    • First observedget_expense_distribution_report
    • First observedget_fixed_assets_report
    • First observedget_guest_card_inquiries_report
    • First observedget_in_progress_workflows_report
    • First observedget_income_statement_12_month_report
    • First observedget_income_statement_date_range_report
    • First observedget_lease_expiration_detail_by_month_report
    • First observedget_leasing_funnel_performance_report
    • First observedget_leasing_summary_report
    • First observedget_loans_report
    • First observedget_occupancy_summary_report
    • First observedget_owner_directory_report
    • First observedget_owner_leasing_report
    • First observedget_property_directory_report
    • First observedget_property_group_directory_report
    • First observedget_property_performance_report
    • First observedget_property_source_tracking_report
    • First observedget_receivables_activity_report
    • First observedget_renewal_summary_report
    • First observedget_rent_roll_itemized_report
    • First observedget_rental_applications_report
    • First observedget_resident_financial_activity_report
    • First observedget_screening_assessment_report
    • First observedget_security_deposit_funds_detail_report
    • First observedget_tenant_directory_report
    • First observedget_tenant_ledger_report
    • First observedget_trial_balance_by_property_report
    • First observedget_unit_directory_report
    • First observedget_unit_inspection_report
    • First observedget_unit_vacancy_detail_report
    • First observedget_vendor_directory_report
    • First observedget_vendor_ledger_report
    • First observedget_work_order_labor_summary_report
    • First observedget_work_order_report

TDQS

B3.1/5.0
Disambiguation5/5

Every tool has a unique report name, making them easily distinguishable. There is no overlap in purpose; each retrieves a specific report type.

Naming Consistency5/5

All tools follow a consistent pattern: 'get_<report_name>_report'. This unified convention makes the tool set predictable and easy to navigate.

Tool Count3/5

At 47 tools, the count is high but justifiable for a reporting-focused server covering many report types. However, the large number may still feel excessive, slightly reducing usability.

Completeness3/5

The set covers a broad range of financial, operational, and directory reports, which is appropriate for reporting. However, it is purely read-only with no mutation or workflow capabilities, leaving gaps for tasks that require actions beyond report retrieval.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides tools to access the Repliers API for real estate listings, property search, market analytics, and AI-powered data through natural language queries.
    225
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables interaction with Buildium property management software through natural language, supporting operations on associations, leases, rentals, tenants, and more.
    81
    5
    MIT

Latest Blog Posts

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/CryptoCultCurt/appfolio-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server