Skip to main content
Glama

Server Details

A Model Context Protocol server that provides Philippine License to Sell (LTS) verification data to LLMs. Built on Cloudflare Workers with Supabase.

Public, read-only, no authentication required. Data sourced from the Department of Human Settlements and Urban Development (DHSUD) License to Sell registry and cross-referenced with published real estate projects on REN.PH.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

12 tools
lts_by_cityAInspect

Rank cities by LTS count with province, region, law breakdown, active/expired/unknown split (unknown = no expiry date on record, not lapsed), and top developer per city. Groups by city+province to avoid merging same-name cities across provinces. Use for housing pressure indices, city-level market analysis, and identifying emerging development hotspots. Cross-reference with PSGC MCP for city classification and population. Capped at 25k rows; check truncated flag and narrow filters if true.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNoFilter by housing law: BP220 (socialized/economic) or PD957 (open market)
yearNoFilter by LTS issue year
limitNoMax cities to return, sorted by count desc
regionNoFilter to a specific DHSUD region

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and delivers: the 'unknown = no expiry date on record, not lapsed' semantic clarification, the city+province grouping rationale, and the 25k row cap with truncated-flag instruction. These go well beyond what the schema or annotations could convey.

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?

Five sentences, each earning its place: purpose and output composition, grouping behavior, use cases, cross-reference advice, and an operational warning. Information is front-loaded with the core ranking statement first and no filler.

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 tool with no annotations and no output schema, the description is remarkably complete: it describes the return composition, the grouping key, the meaning of the unknown status, the row cap with a follow-up action, and target use cases. Nothing an agent needs to select or invoke this tool correctly is left unexplained.

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 all four parameters (law, year, limit, region) are already documented and baseline is 3. The description adds only general operational guidance ('narrow filters if true') rather than param-specific semantic detail, so it does not exceed the baseline.

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 opens with a specific verb and resource — 'Rank cities by LTS count' — and enumerates the output dimensions (province, region, law breakdown, active/expired/unknown split, top developer). The city-centric aggregation clearly distinguishes it from siblings like lts_by_developer, lts_by_law, and lts_by_region.

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?

States explicit use cases — housing pressure indices, city-level market analysis, emerging development hotspots — and adds cross-referencing guidance with PSGC MCP. It lacks explicit when-not-to-use conditions or named sibling alternatives, so it stops short of a 5.

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

lts_by_developerAInspect

Rank developers by LTS count with regional footprint, law breakdown, and active/expired/unknown split (unknown = no expiry date on record, not lapsed). Use for developer intelligence, competitive analysis, and identifying which developers dominate specific regions or housing segments. Capped at 25k rows; check truncated flag and narrow filters if true.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNoFilter by housing law: BP220 (socialized/economic) or PD957 (open market)
yearNoFilter by LTS issue year
limitNoMax developers to return, sorted by count desc
regionNoFilter to a specific DHSUD region

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries disclosure duties. It surfaces important behavioral details: the 'unknown' status definition ('no expiry date on record, not lapsed') and the 25k row cap with the instruction to check the truncated flag and narrow filters. This is substantial, though it doesn't address authorization, rate limits, or exact output shape.

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 tight sentences, each earning its place: output definition, use case, and a concrete limit warning. The core verb and purpose are front-loaded, with no filler.

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 tool with no output schema or annotations, the description conveys the result dimensions (counts, regions, laws, status split) and the truncation behavior. It could be more explicit about the exact return fields, but the essentials for calling it correctly are present.

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, with each parameter already bounded and described. The description adds only a generic hint to 'narrow filters,' which doesn't enrich any specific parameter beyond the 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?

The description opens with a concrete verb and target: 'Rank developers by LTS count,' and specifies the output components (regional footprint, law breakdown, status split). It does not explicitly contrast with sibling tools like lts_by_region or lts_by_city, so it misses the top score for sibling differentiation.

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 states clear intended use cases: 'developer intelligence, competitive analysis, and identifying which developers dominate specific regions or housing segments.' It lacks explicit when-not-to-use or alternative tool guidance, so it stays a 4 rather than 5.

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

lts_by_lawAInspect

Break down LTS records by housing law (BP220 socialized/economic vs PD957 open market). Shows regional distribution per law and year-over-year shift in BP220 share (when no year filter). Use for housing policy analysis and socialized housing supply tracking. Capped at 25k rows; check truncated flag and narrow filters if true.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoFilter by LTS issue year. Omit for YOY shift calculation
regionNoFilter to a specific DHSUD region

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so well. It reveals the 25k row cap, the truncated flag, the advice to narrow filters, and the conditional YOY calculation—details that are not visible in the input schema.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, use case, and operational caveat. The description is front-loaded with the core function and contains no filler or redundant jargon.

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?

Despite having no annotations or output schema, the description provides sufficient context for an agent to decide when to call this tool and interpret potential output flags. It covers the tool's analytical purpose, the conditional behavior without a year filter, and the row cap/truncation handling—making it complete for a 2-parameter, 0-required 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?

The input schema already provides 100% coverage for both parameters, so the baseline is 3. The description does not add new parameter-specific details beyond the schema; it merely restates the year-omit behavior that the schema already documents.

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 immediately states the tool's function with a specific verb ('Break down') and resource ('LTS records by housing law'), and explicitly distinguishes the two law categories (BP220 vs PD957). This clearly differentiates it from sibling tools like lts_by_city or lts_by_region.

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 clear usage context: 'Use for housing policy analysis and socialized housing supply tracking.' It also explains the conditional year-over-year shift when no year filter is applied. However, it does not explicitly state when not to use this tool or name alternative sibling tools for exclusions.

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

lts_by_regionAInspect

Aggregate LTS records by DHSUD region. Returns count, market share, law breakdown (BP220/PD957), and active/expired/unknown split per region (unknown = no expiry date on record, not lapsed). Use for State of RE reports and regional housing market analysis. Cross-reference with PSGC MCP search for population data to compute per-capita density. Capped at 25k rows; check truncated flag and narrow filters if true.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNoFilter by housing law: BP220 (socialized/economic) or PD957 (open market)
yearNoFilter by LTS issue year
statusNoFilter by derived LTS status: active (expiry >= today), expired (expiry < today), or unknown (no expiry date on record). Records with no expiry date are NOT counted as expired

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the meaning of 'unknown' status ('no expiry date on record, not lapsed'), discloses the 25k row cap, and instructs the agent to check the truncated flag and narrow filters when truncation occurs. It does not explicitly state read-only behavior, but 'Aggregate' and 'Returns' strongly imply a non-mutating query.

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 front-loaded with the core purpose and then flows logically through outputs, use cases, cross-reference, and limitations. Every sentence adds useful information, though the PSGC cross-reference tip is a helpful extra rather than essential for correct invocation, preventing a 5.

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?

Despite lacking an output schema, the description covers return values, the meaning of unknown status, row limits, and truncation handling. It does not specify exact field names, region definitions, or behavior when no filters are applied, but for a query tool with three optional filters this is a solid, actionable context.

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 baseline is 3. The description adds minimal parameter meaning beyond the schema: it mentions law breakdown and status split, but the schema already documents the law enum, year range, and status semantics, including the 'not counted as expired' clarification. The 'narrow filters' advice is generic and does not teach parameter-specific details.

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 opens with a specific verb and resource: 'Aggregate LTS records by DHSUD region.' It then enumerates the exact outputs (count, market share, law breakdown, status split), making the tool's function unambiguous. The regional grouping plus 'regional housing market analysis' clearly distinguishes it from sibling lts_by_city, lts_by_developer, and lts_by_law 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 states when to use it: 'Use for State of RE reports and regional housing market analysis.' It does not explicitly name alternatives or give exclusion criteria, but the regional context is clear enough to route an agent correctly alongside the sibling by_* tools.

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

lts_checkAInspect

Check if a specific LTS number exists in the system. Returns whether it exists in lts_records, in project_lts, or both. Includes full record details when found.

ParametersJSON Schema
NameRequiredDescriptionDefault
ltsNumberYesThe LTS number to look up (e.g., 'LS 0001234')

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full transparency burden. It explicitly discloses the return behavior (whether the number exists in lts_records, project_lts, or both) and promises full record details when found. This gives an agent clear expectations, though it does not explicitly state that the operation is read-only or describe error 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 extremely concise—three short sentences that each add distinct information (purpose, sources checked, output details). It is front-loaded with the primary action and contains no redundant or ambiguous wording.

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 simple lookup with one parameter and no output schema, the description covers the essential aspects: what it does, which sources it checks, and what it returns when found. It does omit specifics about the 'not found' return format or any error conditions, but it is sufficiently complete for an agent to invoke 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?

The input schema already provides 100% coverage for the single parameter ltsNumber, including an example format. The description only restates 'specific LTS number' and adds no new semantic details, so it meets the baseline but does not extend it.

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 a specific action (check if a specific LTS number exists), the resources involved (lts_records, project_lts), and the output (existence status and full record details). This distinguishes it from sibling tools that search by city, developer, law, etc., making the purpose unmistakable.

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 implies usage when an exact LTS number is known and existence needs verification, but it does not explicitly state when to choose this tool over alternatives like lts_search or lts_by_*. There is no mention of when not to use it or direct comparisons to sibling tools, so guidance is only implied.

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

lts_expiry_riskAInspect

Find LTS records expiring within a given number of days. Returns records sorted by urgency (soonest first) with days remaining, plus summary counts by region and developer. Use for compliance monitoring, renewal pipeline tracking, and risk assessment. Capped at 25k rows; check truncated flag and narrow filters if true.

ParametersJSON Schema
NameRequiredDescriptionDefault
lawNoFilter by housing law: BP220 (socialized/economic) or PD957 (open market)
daysNoLook-ahead window in days from today (default 90)
regionNoFilter to a specific DHSUD region

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully discloses key behaviors: sorting by urgency, returning days remaining, providing summary counts by region/developer, and a 25k row cap with a truncated flag and advice to narrow filters. This exceeds typical disclosure and gives the agent critical operational knowledge.

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 sentences, each earning its place: purpose/returns, use cases, and capacity warning. The description is front-loaded and free of fluff.

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?

Despite no output schema, the description explains return structure (sorted, days remaining, summary counts, truncated flag) and operational limits (cap, filter advice). It's complete for a tool of this 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?

The schema covers 100% of parameters, so baseline is 3. The description adds context by linking the 'days' parameter to the expiry window and mentioning 'narrow filters,' which implicitly describes how to use region/law parameters. It reinforces but doesn't duplicate schema details.

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 finds LTS records expiring within a specified timeframe, using a specific verb ('Find') and resource ('LTS records'). It differentiates from sibling tools by emphasizing expiry risk, urgency sorting, and summary counts, making its purpose distinct.

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?

It explicitly names use cases: 'compliance monitoring, renewal pipeline tracking, and risk assessment.' While it doesn't mention alternative tools or exclusions, the context is clear and sufficient for an agent to decide when to invoke this tool.

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

lts_filtersAInspect

Get available filter values for LTS queries. Returns distinct regions and cities from the verification queue. Optionally filter cities by region. Use this before calling lts_queue or lts_search with region/city filters to get valid values.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoIf provided, only return cities within this region

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the transparency burden. It discloses that the tool returns distinct regions and cities from the verification queue, optionally filtered by region. This gives useful behavioral context beyond a simple 'get filters' statement, though it doesn't describe the output format or edge cases.

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 four concise, purposeful sentences. It front-loads the purpose, then covers the resource, optional parameter, and usage guidance with no redundancy or filler.

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 simple tool with one optional parameter and no output schema, the description is largely complete. It covers purpose, usage, and parameter semantics. However, it omits the response structure (e.g., whether the result is an array or an object), which would be useful given no output schema is present.

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 schema covers the region parameter, but the description adds semantic value by clarifying that regions are always returned while the region parameter filters only the cities. This goes beyond the schema's description of 'only return cities within this region.'

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's function: 'Get available filter values for LTS queries.' It specifies the resource (LTS queries) and the output (distinct regions and cities from the verification queue), distinguishing it from sibling data-query tools like lts_search or lts_by_region.

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 gives explicit usage context: 'Use this before calling lts_queue or lts_search with region/city filters to get valid values.' It names alternatives and specifies the timing, satisfying the requirement for when-to-use guidance.

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

lts_projectAInspect

Get the complete LTS picture for a single project: all LTS records with computed fields (is_expired, days_until_expiry), summary counts, and the primary LTS number. Pass either a project UUID or a project name (fuzzy matched).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoProject UUID. Takes priority over projectName if both provided
projectNameNoProject name or slug for fuzzy lookup. Matched as a literal substring; use * as a wildcard. A term of only wildcards matches nothing. Use when you don't have the UUID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses what the call returns (records, computed fields, summary counts, primary number), but does not disclose edge-case behavior for fuzzy matching — such as what happens when a name matches multiple projects or nothing at all. These are material behaviors for an agent relying solely on this text.

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, with the core purpose and return contents front-loaded in the first sentence. The second sentence is somewhat redundant with the schema's parameter documentation, so it does not strictly earn its place, which prevents a 5, but overall the description is tight and well-ordered.

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 no annotations, the description must convey the return shape, and it does name the key outputs. However, it omits no-match/ambiguous-match behavior and does not describe the structure or size of the returned record set, leaving an agent guessing about edge-case outcomes.

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 baseline is 3: both parameters are already fully documented, including the projectId priority rule, substring matching, wildcard semantics, and the no-wildcard-only rule. The description's 'Pass either a project UUID or a project name (fuzzy matched)' adds no meaning beyond the schema, merely summarizing it.

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 uses a specific verb ('Get') and precise resource ('the complete LTS picture for a single project'), and enumerates the return contents: LTS records with computed fields (is_expired, days_until_expiry), summary counts, and the primary LTS number. This clearly distinguishes it from the dimension-scoped siblings (lts_by_city, lts_by_developer, lts_by_law, lts_by_region) and from lts_records/lts_search, which are not the complete single-project picture.

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 'for a single project' phrasing provides clear context for the intended scenario, and the schema adds a 'Use when you don't have the UUID' hint for projectName. However, with 11 siblings, the description never explicitly states when to choose this over lts_check, lts_records, lts_search, or lts_stats, nor does it state when not to use it.

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

lts_recordsAInspect

Browse LTS records from DHSUD with filters. Shows normalized records with confidence levels. Filter by confidence (high/medium), linked status (has project_id), region, or text search. Use expiringWithinDays to find records expiring soon.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
linkedNotrue = linked to project, false = unlinked
offsetNoPagination offset
regionNoFilter by region (use lts_filters to get valid values)
searchNoText search: project name, LTS number, or developer. Matched as a literal substring; use * as a wildcard. A term of only wildcards matches nothing
sortByNoSort fieldcreated_at
sortOrderNoSort directiondesc
confidenceNoFilter by data confidence level
expiringWithinDaysNoShow records with expiry date within N days from today

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It communicates that the tool is a read-oriented browse operation and that the output consists of normalized records with confidence levels. It does not mention pagination behavior, sort defaults, authorization requirements, or what happens when filters return no results, but for a browse tool this is a minimally acceptable 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?

The description is three sentences with no filler. The main purpose is front-loaded, the output nature is stated, and the key filtering capabilities are summarized efficiently. 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?

The description covers the core browsing and filtering behavior but omits several operational details that matter given the 9 parameters and no output schema: pagination defaults, sort options, and the shape of returned records beyond 'normalized.' It is sufficient for a simple call, but an agent would still need to rely on the schema for complete invocation context.

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 baseline is 3. The description adds value by grouping parameters into meaningful filter categories, clarifying that 'linked' refers to having a project_id, and explaining the practical meaning of expiringWithinDays. This goes beyond the schema alone without duplicating 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 states a clear verb and resource: 'Browse LTS records from DHSUD with filters.' It further explains what the records contain (normalized records with confidence levels) and lists the main filter dimensions. It does not explicitly contrast itself with siblings like lts_search or lts_by_region, so it stops short of full 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 clearly identifies the general use case: browsing and filtering LTS records, and even gives a specific pointer for expiringWithinDays. However, it never mentions when to prefer a sibling tool such as lts_search or lts_stats, nor does it state when not to use lts_records. Usage context is implied rather than explicitly contrasted.

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

lts_statsAInspect

Get system-wide LTS statistics. Returns two sections: (1) lts_records stats (total, by confidence, linked/unlinked, active/expired, unique developers/cities), and (2) project LTS stats (total records, verified, expired, expiring within 30 days, projects with LTS).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently details the two return sections and their contents, giving a clear picture of the output. It does not mention caching, permissions, or computation method, but for a read-only stats endpoint, this level is sufficient.

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

Conciseness5/5

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

The description is two sentences, front-loads the main purpose, and uses a clear numbered list for the return sections. Every word contributes value; there is no fluff or repetition.

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?

Given the tool's simplicity (no parameters, no output schema), the description fully accounts for what the caller needs to know: the scope and the exact contents of the response. The sibling tool names further reinforce the system-wide vs. segmented distinction. No additional context is necessary.

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 tool has zero parameters, so there is no parameter semantics to explain. The baseline score of 4 applies because there is nothing that requires elaboration, and the description does not need to compensate for schema gaps.

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 begins with a specific verb and resource: 'Get system-wide LTS statistics.' It clearly distinguishes this tool from siblings like lts_by_city or lts_by_developer by emphasizing the system-wide scope. It also enumerates the exact return sections, making the 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 phrase 'system-wide' provides clear context for when to use this tool versus more narrowly scoped sibling tools. However, it does not explicitly name alternatives or state exclusions, so the guidance is implied rather than directly actionable. This is a minor gap.

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. 1 tool update
    • Changedlts_by_region2 fields changed
      • changedInput schema / properties / status / description
        Previous value: -"Filter by derived LTS status: active (expiry >= today) or expired"New value: +"Filter by derived LTS status: active (expiry >= today), expired (expiry < today), or unknown (no expiry date on record). Records with no expiry date are NOT counted as expired"
      • changedInput schema / properties / status / enum
        Previous value: -[
        -  "active",
        -  "expired"
        -]New value: +[
        +  "active",
        +  "expired",
        +  "unknown"
        +]
  2. 3 tool updates
    • Changedlts_project1 field changed
      • changedInput schema / properties / projectName / description
        Previous value: -"Project name or slug for fuzzy lookup. Use when you don't have the UUID"New value: +"Project name or slug for fuzzy lookup. Matched as a literal substring; use * as a wildcard. A term of only wildcards matches nothing. Use when you don't have the UUID"
    • Changedlts_records1 field changed
      • changedInput schema / properties / search / description
        Previous value: -"Text search: project name, LTS number, or developer"New value: +"Text search: project name, LTS number, or developer. Matched as a literal substring; use * as a wildcard. A term of only wildcards matches nothing"
    • Changedlts_search1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Search term: project name, LTS number, developer name, or city"New value: +"Search term: project name, LTS number, developer name, or city. Matched as a literal substring; use * as a wildcard. A term of only wildcards matches nothing"
  3. 12 tool updates
    • First observedlts_by_city
    • First observedlts_by_developer
    • First observedlts_by_law
    • First observedlts_by_region
    • First observedlts_check
    • First observedlts_expiry_risk
    • First observedlts_filters
    • First observedlts_project
    • First observedlts_records
    • First observedlts_search
    • First observedlts_stats
    • First observedlts_trends

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct aspect of LTS data (by city, developer, law, region, etc.) with no overlapping purposes. The descriptions clearly delineate their unique use cases.

Naming Consistency5/5

All tools follow the consistent pattern 'lts_<descriptive_noun_or_phrase>' using snake_case. The naming is uniform and predictable, aiding agent selection.

Tool Count5/5

With 12 tools, the set is well-scoped for a data query and analysis server. Each tool serves a clear function without redundancy or overload.

Completeness5/5

The tool set covers all necessary query dimensions (city, developer, law, region, expiry, stats, trends) and includes a search, check, and project-level view. No obvious gaps for a read-only analytics server.

Resources