Skip to main content
Glama
Commertize-Inc

Commertize Agents MCP Server

Official

Screen Commertize offerings by criteria

search_offerings
Read-only

Screen public investment offerings by text, asset class, geography, status and numeric ranges. Filter by cap rate, IRR, equity multiple, hold period and ticket size, with disclosed values only.

Instructions

Screen the public Commertize offering set: free-text search plus asset class, geography, status and exemption filters, plus inclusive min/max ranges on cap rate, year-1 cash-on-cash, target IRR, equity multiple, hold period, lockup, offering size, minimum ticket and SPV leverage, with sorting on any numeric field. Rates are DECIMAL FRACTIONS (0.06 = 6%). Undisclosed values never match a range filter and are returned in excluded_not_disclosed rather than silently dropped; field_coverage reports how many candidates disclose each figure at all, so an empty result is explainable. Public data only, filters narrow the public set and never widen it. Informational reference data — not an offer, solicitation, or recommendation.

Input Schema

NameRequiredDescriptionDefault
cityNoCity substring, case-insensitive — some listings name two towns.
limitNoMaximum offerings to return after filtering and sorting.
orderNoSort direction. Default desc.
queryNoCase-insensitive substring over name, city, state, sponsor name and asset class. Applied locally to the fetched public set — not a search index.
stateNoUS state code, e.g. "WA". Exact, case-insensitive.
statusNoThe public set only ever contains these three statuses.
sort_byNoNumeric field to sort by. One of: cap_rate, year_1_cash_on_cash, target_irr, target_equity_multiple, preferred_rate, hold_period_years, lockup_months, token_price, tokens_for_investors, target_raise, min_investment_amount, implied_equity_valuation, effective_appraisal_value, spv_leverage_ratio. Offerings that do not disclose it sort LAST in both directions.
sponsorNoSponsor id (exact) or a case-insensitive substring of the sponsor name.
exemptionNoExemption code, e.g. "RULE_506_B", "RULE_506_C", "REG_A". Exact, case-insensitive.
asset_classNoAsset class code, e.g. "MULTIFAMILY", "HOSPITALITY". Exact, case-insensitive.
max_cap_rateNoMaximum cap_rate, inclusive. Undisclosed values never match.
min_cap_rateNoMinimum cap_rate, inclusive. Undisclosed values never match.
max_target_irrNoMaximum target_irr, inclusive. Undisclosed values never match.
min_target_irrNoMinimum target_irr, inclusive. Undisclosed values never match.
max_target_raiseNoMaximum target_raise, inclusive. Undisclosed values never match.
min_target_raiseNoMinimum target_raise, inclusive. Undisclosed values never match.
max_lockup_monthsNoMaximum lockup_months, inclusive. Undisclosed values never match.
min_lockup_monthsNoMinimum lockup_months, inclusive. Undisclosed values never match.
accepting_investmentNoTrue selects only offerings open to new subscriptions (status ACTIVE).
max_hold_period_yearsNoMaximum hold_period_years, inclusive. Undisclosed values never match.
min_hold_period_yearsNoMinimum hold_period_years, inclusive. Undisclosed values never match.
max_spv_leverage_ratioNoMaximum spv_leverage_ratio, inclusive. Undisclosed values never match.
min_spv_leverage_ratioNoMinimum spv_leverage_ratio, inclusive. Undisclosed values never match.
max_year_1_cash_on_cashNoMaximum year_1_cash_on_cash, inclusive. Undisclosed values never match.
min_year_1_cash_on_cashNoMinimum year_1_cash_on_cash, inclusive. Undisclosed values never match.
max_min_investment_amountNoMaximum min_investment_amount, inclusive. Undisclosed values never match.
min_min_investment_amountNoMinimum min_investment_amount, inclusive. Undisclosed values never match.
max_target_equity_multipleNoMaximum target_equity_multiple, inclusive. Undisclosed values never match.
min_target_equity_multipleNoMinimum target_equity_multiple, inclusive. Undisclosed values never match.

Output Schema

NameRequiredDescriptionDefault
as_ofYesISO-8601 timestamp of when the underlying data was fetched from the API — not when this call was made. Older than a few seconds means it was served from cache.
cacheYesCache metadata for this response.
countYesOfferings returned after every filter.
errorYesNull on success. Populated when the call failed.
offeringsYes
sorted_byYes
truncatedYesTrue when `limit` cut the result short.
candidatesYesSurvivors of the non-numeric filters, before range filters.
disclaimerYesStanding disclaimer. Carry it into anything you report to a user.
sort_orderYes
source_urlYesThe upstream public API URL this response was derived from.
field_coverageYesHow many candidates disclose each numeric field at all.
unknown_fieldsYesField names in sort_by that this server does not know. Reported, then ignored — never silently treated as a no-match.
field_catalogueYesEvery numeric field, where it lives in an offering record, its unit and whether it is a disclosure, a derivation or a projection.
total_availableYesSize of the public set before any filter.
excluded_by_criteriaYesDropped because a DISCLOSED value failed a range test.
excluded_not_disclosedYesDropped because a filtered field is undisclosed. Unknown, not non-matching — worth a look if the criteria matter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the readOnlyHint/openWorldHint annotations: it declares the decimal-fraction convention for rates, that undisclosed values never match a range filter and are surfaced in `excluded_not_disclosed` instead of dropped, and that `field_coverage` explains empty results. Sort-last behavior for undisclosed sort fields is also 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?

Front-loads the core purpose in the first clause, then adds only high-value caveats (rate units, non-disclosure handling, public-only scope). Dense but every sentence carries information; the long opening clause is the only mild readability cost.

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

Completeness5/5

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

For a 29-parameter, zero-required screening tool with an output schema, this covers exactly what the schema cannot: unit conventions, filter semantics, and the existence/meaning of `excluded_not_disclosed` and `field_coverage`. An agent has enough to call and interpret it correctly.

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 already 100%, so the baseline is 3, but the description adds genuinely non-schema semantics: rates are decimal fractions (0.06 = 6%), undisclosed values never match ranges, and sorting works on any numeric field. That materially changes how an agent sets the min/max 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?

States a specific verb ('Screen') and resource ('public Commertize offering set') and enumerates the filter families it supports. Reads clearly as a filtered-search tool, distinguishable from list_offerings (plain list) and get_offering (single record) among the siblings.

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?

Explains the semantics of use ('public data only', 'filters narrow the public set and never widen it') and the informational nature, but never names an alternative or states when NOT to use it (e.g., versus list_offerings or compare_offerings). Usage is implied rather than routed.

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