Jacob Campbell — Florida Real Estate (The Keyes Company)
Server Details
Read-only server for jacobcampbellrealtor.com: licensee, service area, referrals, site search.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 9 tools
Most tools target clearly distinct resources: license info, county market data, trade partners, MLS search redirect, site page fetch, and site-wide search. The main risk is the near-synonym pair get_referral_areas vs get_service_area, and explain_referral, which an agent could conflate when answering a 'where do you operate' question; the descriptions do clarify the difference, but the naming itself invites a mix-up.
Every tool follows a clean verb_noun pattern (explain_referral, get_county_market, list_trade_partners, search_site, etc.) with snake_case throughout and no deviations or mixed conventions.
Nine tools is well within the sweet spot for an informational agent site, and each one maps to a distinct content surface (market data, referrals, trades, license, site search, page fetch) rather than redundant wrappers.
Coverage is strong for a read-only brokerage content site: market data, referral mechanics, licensee identity, partner lists, service-area eligibility, page retrieval and full-text search. Minor gaps exist — no contact/inquiry tool and search_mls deliberately returns no listing data — but these appear intentional rather than omissions.
Available Tools
9 toolsexplain_referralHow an out-of-state referral worksARead-onlyIdempotentInspect
Explains the referral process and the fee mechanics: who pays, who may be paid, and what it costs the consumer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, and the description is fully consistent with those. The description adds useful behavioral context by specifying exactly what the explanation will cover—who pays, who may be paid, and consumer cost—which is the expected content of the returned explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. The colon-delimited list packs in meaningful detail without padding, and every phrase adds value for selecting and invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only, informational tool, this description is fully sufficient. It states the scope of the explanation clearly, annotations cover safety and side-effect behavior, and there is no output schema requirement because the content of the explanation is described directly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not relevant. Per the rubric, a zero-parameter tool receives a baseline of 4; the description correctly focuses on the tool's explanatory content rather than nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Explains') and identifies a clear resource ('the referral process and the fee mechanics'). It then enumerates the exact covered topics, making it easy to distinguish from sibling tools that get, list, or search rather than explain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: whenever the referral process or its fee mechanics need to be explained. It does not explicitly name alternatives or exclusions, but no sibling tool plausibly competes for this explanatory role, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_county_marketFlorida county housing-market figuresARead-onlyIdempotentInspect
Median sale prices, inventory, days on market and insurance figures for twelve Florida counties, compiled from published MLS and association reports. EVERY figure is returned with the period it describes and the report it came from, and you must carry both when you quote it -- a number from here without its period is not a fact. Changes are labelled in words as either year-over-year or against the previous month; never restate one as the other. Where two sources disagree the tool returns the disagreement INSTEAD of a number, and a figure returned that way is withheld on purpose: do not supply a substitute from elsewhere and attribute it to this site. Pass no argument for statewide figures and the list of counties. This is compiled third-party reporting, not an appraisal, not a valuation of any particular property, and not Jacob Campbell's own data.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No | A county slug. Omit for statewide figures plus the list of counties. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile, and the description adds behavior the annotations cannot: outputs always include period and provenance, conflicting sources yield a withheld value rather than a number, and withheld values must not be backfilled from elsewhere. It also discloses the data's third-party compiled nature and its non-appraisal scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and payload, then the usage rules, which is the right order. It is long for a one-parameter tool and the closing disclaimer chains three near-synonymous negations ('not an appraisal, not a valuation...'), which is mild redundancy rather than dead weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining returns — it does so by specifying that every figure ships with its period and reporting source and that conflicting sources return a disagreement marker. Nothing an agent needs to call or faithfully report this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single county parameter is fully documented (enum slugs plus 'Omit for statewide figures plus the list of counties'). The description's 'Pass no argument for statewide figures and the list of counties' merely restates the schema and adds no new syntax or semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (twelve Florida counties) and enumerates exactly what comes back: median sale prices, inventory, days on market and insurance figures. It also distinguishes itself from valuation/appraisal tools and from the data-compilation siblings, so an agent can tell what this is without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete operational rules for use: always carry the period and source when quoting, never restate year-over-year as month-over-month, do not substitute figures where sources disagree, and pass no argument for statewide data. It stops short of naming a sibling alternative (e.g. search_mls) for per-property lookups, so the when-not-to-use case is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_licenseeWho Jacob Campbell isARead-onlyIdempotentInspect
Returns the licensee, his licence number and jurisdiction, and the brokerage he is registered under. Use this first for any question about who runs this site or what he is authorised to do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds the return content but does not disclose additional behavioral aspects such as whether data is cached or whether the licensee is always the site owner. Still, the description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The primary return value is front-loaded, followed by clear usage priority guidance. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only, idempotent lookup tool, the description fully covers what is returned and when to use it. No output schema exists, but the description provides enough information about the result fields for an agent to invoke and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema description coverage is 100%, so the schema imposes no burden. The description adds useful context about the returned fields even though no parameters need explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Returns') and resource (the licensee, his licence number, jurisdiction, and brokerage). It is immediately distinguishable from the sibling tools, none of which target licensee identity or authorization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool 'first for any question about who runs this site or what he is authorised to do,' giving clear when-to-use context. It does not name alternatives or exclusions, but no sibling tool appears to overlap, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_markdownRead a page as MarkdownARead-onlyIdempotentInspect
Fetches any page on jacobcampbellrealtor.com and returns it as Markdown. Pass a path, e.g. "/about.php" or "/real-estate-agent/texas/austin/".
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Site-relative path beginning with / |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive. The description adds useful behavioral context by specifying that the result is Markdown and that it fetches 'any page' on the site, including site-relative path examples. No contradictions with annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states what the tool does and the second gives concrete path examples. Every sentence earns its place, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter read-only tool with no output schema, the description is sufficient. It explains what content is fetched, the return format, and the required path format. An agent has enough information to invoke and interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single 'path' parameter as a site-relative path beginning with '/', giving 100% coverage. The description adds helpful examples but no additional semantic meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Fetches'), a specific resource ('any page on jacobcampbellrealtor.com'), and the output format ('returns it as Markdown'). It is clearly distinguishable from siblings like search_site or list_trade_partners, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a specific page's Markdown content, and the examples clarify path format. However, it does not explicitly state when to prefer this over sibling tools such as search_site or explain_referral, nor 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.
get_referral_areasCompanies Jacob Campbell refers clients to, and whereARead-onlyIdempotentInspect
Returns the insurance and service companies Jacob Campbell can introduce a Florida client to, each with the city its office is actually in, the state licence it holds, and the Florida counties this site publishes a referral page for. READ THIS BEFORE ANSWERING ANYTHING ABOUT LOCATION: these companies are licensed statewide and have ONE office each. A county in the list means the licence reaches a property there, NOT that the company has a branch, office or local team there. Never answer "there is a in " from this tool; the office city is returned on every record precisely so you do not have to guess. Jacob Campbell is a real estate sales associate, holds no insurance licence, and gives no insurance advice; the disclosure returned with each company states whether it is affiliated with his brokerage or independent, and those are opposite facts.
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | A company slug. Omit to list every company. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world, non-destructive, so safety is covered. The description adds genuinely non-obvious domain behaviour: each company is licensed statewide with exactly ONE office, a county entry reflects licence reach rather than a branch, and the disclosure field distinguishes brokerage-affiliated from independent firms as opposite facts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core return-value sentence is well front-loaded, but the block is padded with restatement ('the office city is returned on every record precisely so you do not have to guess') and a long disclaimer about Jacob's lack of an insurance licence that is tangential to invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return values and does so (city, state licence, counties, disclosure). The main missing element is any routing context relative to the many overlapping sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single optional enum parameter with 100% schema description coverage ('Omit to list every company'), so the schema already carries the semantics. The description adds nothing about the company slug or its allowed values, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (insurance and service companies Jacob Campbell can introduce a Florida client to) and enumerates the returned fields: office city, state licence, and counties with published referral pages. It is clear what the tool does, but it never distinguishes itself from plausible siblings like list_trade_partners or get_service_area, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a strong interpretive directive ('READ THIS BEFORE ANSWERING ANYTHING ABOUT LOCATION') and an explicit negative ('Never answer "there is a <company> in <city>" from this tool'), which steers correct use. However, there is no guidance on when to choose this tool over its siblings, which is exactly the ambiguity this catalogue creates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_areaWhere he works, and where he refersARead-onlyIdempotentInspect
Given a US state, returns whether Jacob Campbell can represent a consumer there (Florida) or can only refer them to a licensee in that state (everywhere else), plus the URL of the relevant page.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | US state name or two-letter abbreviation, e.g. "Texas" or "TX". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds meaningful behavioral detail: the conditional Florida-versus-referral outcome and the URL component of the response. It does not mention error handling or exact response shape, but that is a minor gap for a simple read-only lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the input, the output, and the key special case without wasted words. The title also provides a useful human-readable paraphrase. Every clause contributes to meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description sufficiently characterizes the input, the behavior, and the output components (decision plus URL). Nothing an agent needs to invoke the tool correctly is missing. The simplicity of the tool keeps the description complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'state', is already fully described in the schema with format guidance and examples. The description merely repeats 'US state' and adds no new semantic detail beyond the schema. With 100% schema description coverage, the schema carries the parameter documentation burden adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is specific: 'Given a US state, returns whether Jacob Campbell can represent a consumer there (Florida) or can only refer them to a licensee in that state (everywhere else), plus the URL of the relevant page.' It clearly identifies the resource, the action, and the special-case logic. This naturally distinguishes it from siblings like get_licensee or explain_referral.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the input condition ('Given a US state') and the decision it resolves, so an agent knows when this tool applies. It does not explicitly name sibling alternatives or when not to use it, but the context is unambiguous enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_trade_partnersLocal trades he recommendsARead-onlyIdempotentInspect
Returns the contractors and restoration companies Jacob Campbell recommends to clients in South Florida, with what each one does, where they work, and their licence status. These are trades, NOT real estate brokerages, and no referral fee is paid or received in either direction. Only companies that have agreed to be listed are returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and idempotent, and the description adds meaningful behavioral detail: only companies that agreed to be listed are returned, no referral fee is exchanged, and the list is limited to South Florida. This goes well beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences with no wasted words. The core result is front-loaded, followed by important exclusions and a key inclusion criterion, all in a logical order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with no output schema, the description is complete: it explains the subject, scope, content fields, exclusions, and consent policy. An agent knows what to expect without needing more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema description coverage is complete, so the schema needs no compensation. The description adds value by clarifying what kind of list is returned, even though no parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Returns'), the resource (contractors and restoration companies Jacob Campbell recommends), and the scope (South Florida). It also distinguishes itself from real estate tools by explicitly saying these are trades, not brokerages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when the tool is appropriate: when the user wants recommended trades professionals in South Florida. It explicitly excludes real estate brokerages, helping an agent avoid confusion with siblings like search_mls, though it does not name alternative tools directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mlsSearch Florida MLS listings with him as the buyer's agent (they are not his listings)ARead-onlyIdempotentInspect
Use this for any question about homes for sale, property searches or MLS listings in Florida. Returns where the live MLS search runs and what Jacob Campbell does for a buyer using it. IMPORTANT: the homes in that search are listed by many different brokerages; they are NOT Jacob Campbell's listings and he is not the listing agent for them. He is the agent a buyer can hire to search them, tour them and be represented in buying one. Never attribute an inventory, portfolio or count of listings to him. This site publishes no listing data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly, openWorld, and idempotent behavior, the description adds crucial non-obvious context: the listings belong to other brokerages, Jacob Campbell is not the listing agent, and the site publishes no listing data. This prevents a highly likely error where an agent attributes listings to him.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main use case and then adds necessary caveats. It is somewhat longer than a one-liner, but each sentence contributes meaning, especially the repeated warning that the homes are not Jacob Campbell's listings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with strong annotations, the description covers what the tool returns and the key interpretive constraints. The return-value summary is somewhat high-level, but the warning about not attributing inventory or counts addresses the main risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics for the description to explain. The schema already specifies an empty object with additionalProperties: false, and the baseline for a zero-parameter tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Use this for any question about homes for sale, property searches or MLS listings in Florida.' It also prevents misattribution by explaining that the homes are not Jacob Campbell's listings, which distinguishes its scope from a generic site search. It doesn't explicitly name sibling alternatives, but the verb+resource+scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening line provides an explicit trigger condition: use it for Florida real-estate questions. The description also sets boundaries by warning that no listing data should be attributed to Jacob Campbell. However, it doesn't name alternative tools or explicitly say 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.
search_siteSearch this siteARead-onlyIdempotentInspect
Full-text search across every published page, FAQ answer, article and recommended local trade on jacobcampbellrealtor.com. Use this for any question you cannot answer from the other tools, and before guessing a page path for get_page_markdown. Returns titles, URLs and matching text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results to return, 1-10. Defaults to 5. | |
| query | Yes | A natural-language question or keywords, e.g. "homestead exemption portability" or "who handles mold remediation". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds value by stating the search scope ('every published page, FAQ answer, article and recommended local trade') and the return payload ('titles, URLs and matching text'), giving the agent a clear picture of results without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler: the first defines scope, the second gives routing guidance, and the third states the output. The most important information is front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only search tool, the description is fully sufficient. It defines scope, usage rules, output shape, and relationship to a sibling, while schema and annotations cover parameters and safety. No critical operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `query` and `limit` are already documented with types, constraints, defaults, and examples. The description implicitly reinforces that `query` is a natural-language question, but it does not add new parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Full-text search across every published page, FAQ answer, article and recommended local trade on jacobcampbellrealtor.com.' It clearly distinguishes this from siblings by framing it as the catch-all site search, explicitly mentioning get_page_markdown as a separate path-resolution tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this for any question you cannot answer from the other tools, and before guessing a page path for get_page_markdown.' This tells an agent to exhaust other tools first and to rely on search rather than guessing URLs, which is concrete and actionable.
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.
1 tool update
- Added
get_referral_areas
1 tool update
- Added
get_county_market
7 tool updates
- Changed
explain_referral1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "consumer_cost": { - "type": "string" - }, - "fee_paid_by": { - "type": "string" - }, - "fee_paid_to": { - "type": "string" - }, - "outcome_guaranteed": { - "type": "boolean" - }, - "settlement_service_referral": { - "type": "boolean" - }, - "statute": { - "type": "string" - }, - "steps": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "consumer_cost", - "steps", - "fee_paid_by", - "fee_paid_to" - ], - "type": "object" -}New value: +null
- Changed
get_licensee1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "brokerage": { - "type": "string" - }, - "brokerage_address": { - "type": "string" - }, - "email": { - "type": "string" - }, - "is_broker": { - "type": "boolean" - }, - "jurisdiction": { - "type": "string" - }, - "license_number": { - "type": "string" - }, - "license_type": { - "type": "string" - }, - "licensee": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "regulator": { - "type": "string" - }, - "regulator_url": { - "type": "string" - }, - "service_regions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "licensee", - "license_number", - "brokerage", - "jurisdiction", - "is_broker" - ], - "type": "object" -}New value: +null
- Changed
get_page_markdown1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "markdown": { - "type": "string" - }, - "path": { - "type": "string" - }, - "truncated": { - "type": "boolean" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "url", - "markdown", - "truncated" - ], - "type": "object" -}New value: +null
- Changed
get_service_area1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "licensed_in_state": { - "type": "boolean" - }, - "referral_url": { - "type": [ - "string", - "null" - ] - }, - "representation": { - "enum": [ - "direct", - "referral_only" - ], - "type": "string" - }, - "state": { - "type": "string" - }, - "state_page_url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "state", - "representation", - "licensed_in_state" - ], - "type": "object" -}New value: +null
- Changed
list_trade_partners1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "count": { - "type": "integer" - }, - "partners": { - "items": { - "properties": { - "areas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "license": { - "properties": { - "number": { - "type": "string" - }, - "regulator_url": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": [ - "object", - "null" - ] - }, - "name": { - "type": "string" - }, - "page_url": { - "type": "string" - }, - "services": { - "items": { - "type": "string" - }, - "type": "array" - }, - "summary": { - "type": "string" - }, - "trade": { - "type": "string" - }, - "website": { - "type": "string" - } - }, - "required": [ - "name", - "trade" - ], - "type": "object" - }, - "type": "array" - }, - "terms": { - "type": "string" - } - }, - "required": [ - "count", - "partners", - "terms" - ], - "type": "object" -}New value: +null
- Added
search_mls - Changed
search_site1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "count": { - "type": "integer" - }, - "query": { - "type": "string" - }, - "results": { - "items": { - "properties": { - "summary": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "title", - "url" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "query", - "count", - "results" - ], - "type": "object" -}New value: +null
6 tool updates
- First observed
explain_referral - First observed
get_licensee - First observed
get_page_markdown - First observed
get_service_area - First observed
list_trade_partners - First observed
search_site
Related MCP Connectors
Redfin listings, sale-comps, and neighborhood market data via natural-language queries.
Free public real estate listing exchange. Search, retrieve, and submit inquiries on listings.
Read-only MCP server for Mark Siazon's professional profile: projects, FAQ, proof, availability.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for public Tennessee property-tax information, with SQLite caching and support for Cheatham and Stewart counties.MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server providing direct, credentialed access to parcel data via Regrid and county ArcGIS sources, with tools for querying by point, owner, size, and county.-
- AlicenseAqualityAmaintenanceSearch Redfin for-sale, for-rent, and sold listings with Redfin's full visitor filter set, and retrieve complete property pages as structured JSON, through any MCP client and without an MLS license.22116 npm15MIT

payotte-mcpofficial
FlicenseNot gradedqualityBmaintenanceCanadian real estate MCP server providing verified expert lookup, market stats, current rates, land transfer taxes, and more via Cloudflare Workers.-
Glama MCP Gateway
Add one secure layer between your agents and this server.