Skip to main content
Glama
estate-atlas

Estate Atlas SD-MCP

Official
by estate-atlas

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools have distinct purposes, but get_zone_info and get_setbacks_for_zone partially overlap (both return setbacks), and lookup_parcel includes zoning/overlays also covered by separate tools. Descriptions help, but an agent might be uncertain which to use for zone details.

    Naming Consistency4/5

    Tools predominantly use verb_noun snake_case (get_*, list_*, lookup_*, search_*). data_freshness breaks the pattern slightly, but overall naming is predictable and clear.

    Tool Count5/5

    14 tools cover a comprehensive domain (land use, zoning, permits, overlays, code enforcement, bulletins, case rulings) without unnecessary excess. Each tool earns its place for a real estate regulatory assistant.

    Completeness4/5

    The tool set covers most common regulatory queries (parcel info, overlays, permits, code sections, bulletins). Minor gaps: missing tax assessment or property history, and get_case_rulings is still pending. But core workflows are well-supported.

  • Average 3.8/5 across 14 of 14 tools scored. Lowest: 2.6/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states it is a query (read operation) but does not disclose authentication needs, rate limits, what happens if both or neither parameter is given, or any side effects. Minimal behavioral context.

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

    Conciseness3/5

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

    Two sentences; the first is clear and functional. The second is promotional ('The killer query...') which adds some context but is not essential. It is reasonably concise but could be more focused on parameter guidance.

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

    Completeness2/5

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

    Given the existence of sibling tools like get_zone_info and get_overlays_for_apn, the description does not explain how this tool aggregates data or how it relates to those. Also, with both parameters optional, the usage context is unclear. The output schema exists, so return values are covered, but overall completeness is low.

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

    Parameters2/5

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

    Schema description coverage is 0%, yet the description only says 'by street address OR APN' without explaining formats, constraints, or that exactly one should be provided. Both parameters are optional with null default, which is confusing. The description adds little over the schema structure.

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

    Purpose4/5

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

    The description clearly states the tool looks up a parcel by address or APN and lists returned data (zoning, overlays, etc.). However, it does not differentiate from sibling tools like get_zone_info or get_overlays_for_apn, which may cover subsets of the data.

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

    Usage Guidelines2/5

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

    The description does not specify when to use this tool versus alternatives. It mentions 'most public sources require visiting 4+ websites' as a rationale, but lacks explicit when-to-use or when-not-to-use guidance.

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

  • Behavior4/5

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

    Given no annotations, the description transparently discloses that the tool is pending with a planned date and a fallback URL. It explains the current behavior (returns coverage:pending) and future expectations, which is sufficient for an agent to understand its limitations.

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

    Conciseness3/5

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

    The description is somewhat verbose but front-loaded with the 'PENDING' status and date. The second sentence could be shortened, but the info about planned_at and fallback URL is useful. Overall adequate but not concise.

    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?

    Despite lacking parameter details, the description covers the tool's current state, future date, and fallback mechanism. An output schema is present (not shown but noted), which may compensate, but for now the agent lacks full context on input semantics. The description is moderately complete for a pending tool.

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

    Parameters1/5

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

    The schema has one parameter 'query' with 0% coverage in the description. The description does not explain what 'query' expects or how it affects results. The agent has no guidance on whether to pass a case number, topic, or other input.

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

    Purpose4/5

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

    The description clearly states the tool returns Federal and California appellate court rulings on specific land-use topics. The scope is well-defined, and it distinguishes itself from sibling tools like get_code_section or lookup_parcel by focusing on case law rather than municipal code or parcel data.

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

    Usage Guidelines2/5

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

    The description does not indicate when to use this tool versus alternatives. It mentions the tool is pending and returns a placeholder, but provides no guidance on when it should be invoked or what to do instead (e.g., use the fallback URL).

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. Only states it lists bulletins, with no mention of behavioral traits such as read-only nature, authentication requirements, or rate limits. No contradictions.

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

    Conciseness5/5

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

    Two concise sentences with no wasted words. First sentence states purpose and optional filtering, second provides useful context on what bulletins are.

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

    Completeness2/5

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

    Incomplete for a tool with 2 parameters and no parameter descriptions in schema. Does not mention the 'limit' parameter or any pagination/format details. Output schema exists but return structure not discussed.

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

    Parameters2/5

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

    Schema description coverage is 0%. Description adds meaning to 'project_type' with examples, but completely omits the 'limit' parameter. Fails to compensate for lack of schema documentation.

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

    Purpose5/5

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

    Clearly states the action (List), the resource (Development Services Department information bulletins), and optional filtering by project type with examples. Distinguishes from sibling 'get_bulletin' which likely retrieves a single bulletin.

    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?

    Implies usage for listing bulletins, optionally filtered. Provides an example of filtering by project type. However, no explicit guidance on when not to use or how it differs from siblings like 'search_municipal_code'.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only states what it returns, omitting details like read-only nature, rate limits, or authentication requirements.

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

    Conciseness5/5

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

    Two succinct sentences: the first front-loads the purpose and outputs, the second provides usage guidance. No redundancy or filler.

    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?

    While an output schema exists (so return values need not be elaborated), the description lacks context about prerequisites, data source, or detailed explanation of 'envelope limits' and 'pointer'. Adequate but incomplete.

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

    Parameters1/5

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

    Schema description coverage is 0% (no parameter descriptions). The description fails to explain any of the three parameters (zone_code, lot_area_sqft, dwelling_units), offering no value beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool returns a 'higher-level zone summary' with specific outputs (setbacks, envelope limits, pointer to SDMC), and distinguishes it from sibling tools like 'search_municipal_code' and 'get_setbacks_for_zone'.

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

    Usage Guidelines4/5

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

    The description explicitly advises combining with 'search_municipal_code' for narrative regulations, providing usage context. However, it lacks explicit when-not-to-use guidance or alternatives for other siblings.

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

  • Behavior4/5

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

    No annotations provided, so description fully discloses behavior: returns top-matching chunks with section numbers, source URLs, and PDF anchors. Adequate for a read-only search tool; no contradictions.

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

    Conciseness5/5

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

    Two sentences, no wasted words. Purpose and usage are front-loaded. Highly efficient and clear.

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

    Completeness2/5

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

    While output schema likely covers return format, the description omits parameter details, leaving agents to guess about limit, doc_types, and min_similarity. Incomplete for a 4-parameter tool with no schema descriptions.

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

    Parameters1/5

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

    Schema description coverage is 0%. Description fails to explain any of the 4 parameters (query, limit, doc_types, min_similarity). Only query is implied via examples. Does little to help agent understand correct parameter usage.

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

    Purpose5/5

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

    The description clearly states it performs semantic search across San Diego Municipal Code, information bulletins, and ordinances. It distinguishes from sibling tools like get_code_section and get_bulletin, which are more specific lookups.

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

    Usage Guidelines4/5

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

    Provides explicit use cases with example questions ('what are fence height rules', 'when do I need historical review'), guiding when to use semantic search. Does not explicitly state when not to use, but context implies alternatives exist for exact matches.

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

  • Behavior4/5

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

    The description notes that data is 'Sourced from SDMC tables,' providing a useful behavioral trait about data origin and implicitly that this is a read operation. With no annotations provided, this adds value beyond the schema and purpose. However, it does not address error handling or rate limits.

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

    Conciseness5/5

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

    The description is a single sentence that immediately states the action and resource, with no filler. It is optimally concise and front-loaded.

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

    Completeness3/5

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

    Given the presence of an output schema, the return format is covered. However, the description omits any explanation of how the optional parameters (lot_area_sqft, dwelling_units) influence results, which is a gap for an agent needing to invoke the tool correctly.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It provides an example format for zone_code but gives no explanation for lot_area_sqft or dwelling_units, leaving the agent to guess their purpose (e.g., whether they affect calculations).

    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 identifies the tool as returning setbacks, lot dimension minima, FAR, height limits, and special-overlay rules for a San Diego zone code, with specific example formats. This distinguishes it from sibling tools like get_zone_info (which may be more generic) and get_overlays_for_apn (which uses APN).

    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 states the tool is for a San Diego zone code, which implies when to use it, but it does not explicitly mention when not to use it or point to alternatives. For example, it does not guide the agent to use get_overlays_for_apn if an APN is available instead of a zone code.

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

  • Behavior3/5

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

    No annotations provided, so description must cover behavior. It mentions filtering by status and return fields, but omits details like pagination, rate limits, or error handling for invalid APNs.

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

    Conciseness5/5

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

    Two sentences, front-loaded with verb and object, no filler. Every sentence adds value.

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

    Completeness4/5

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

    Given the output schema exists (context signal) and the description already covers return fields and key parameters, it is largely complete. Minor gaps on limit behavior and APN format.

    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 0%, so description adds meaning: APN as parcel identifier, status with explicit values, limit likely for max results. However, it doesn't explain limit's behavior or APN format.

    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 action ('Fetch'), the resource ('code-enforcement cases'), and the identifier ('parcel by APN'). It also lists return fields, distinguishing it from sibling tools like get_permits_for_parcel.

    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 for fetching code-enforcement cases by APN, but provides no explicit guidance on when to use this tool versus alternatives like get_permits_for_parcel or search_municipal_code.

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

  • Behavior3/5

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

    With no annotations provided, the description adequately describes that the tool returns a collection of overlays and their relevance. It implies a read-only operation but does not disclose behavioral traits like data freshness, authentication needs, or potential caching. The description does not contradict any annotations (none exist).

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

    Conciseness5/5

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

    The description is a single concise sentence plus a brief contextual tagline, with no wasted words. It front-loads the purpose and key overlays efficiently.

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

    Completeness4/5

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

    Given the tool's complexity (multiple overlay types) and the presence of an output schema, the description provides sufficient context about what overlays are returned and their practical significance. It could be more complete by briefly explaining the effect of the 'include_all' parameter or noting if any overlays are inactive by default.

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

    Parameters2/5

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

    The description explains that the tool returns overlays 'by APN', adding some meaning to the 'apn' parameter, but does not explain the 'include_all' boolean parameter or its default false value. With 0% schema description coverage, the description does not compensate enough for the missing parameter documentation.

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

    Purpose5/5

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

    The description clearly states the tool returns regulatory overlays for a parcel by APN, listing specific overlay types like SDA, TPA, and historic-district overlays. It distinguishes from sibling tools like get_overlays_for_point by specifying the input type (APN vs point).

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

    Usage Guidelines4/5

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

    The description explicitly states it addresses 'the #1 multifamily-developer question' and relates overlays to ADU bonus and parking workflows, providing clear guidance on when to use the tool. However, it does not explicitly mention when not to use it or compare to alternatives.

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

  • Behavior3/5

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

    No annotations are provided, so the description must carry the full burden. It indicates a read-only lookup operation but does not disclose any behavioral traits beyond that, such as authorization needs, rate limits, or pagination. The description is adequate but not thorough.

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

    Conciseness5/5

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

    The description consists of two short sentences that are front-loaded with key information. Every word serves a purpose—no fluff.

    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 3-parameter lookup tool with an output schema, the description is nearly complete. It lacks parameter details but is otherwise sufficient. The sibling context and example usage provide enough guidance.

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

    Parameters2/5

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

    Schema description coverage is 0%, meaning no parameter descriptions in the schema. The tool description does not explain the parameters (lat, lon, include_all) beyond their names. While 'lat' and 'lon' are self-explanatory, 'include_all' is not described, which is a gap given the low coverage.

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

    Purpose5/5

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

    The description clearly states the tool performs an overlay lookup keyed by lat/lon coordinates, explicitly mentioning it is the same as get_overlays_for_apn but with coordinates. It distinguishes itself from the sibling tool and specifies the coordinate system (WGS84).

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

    Usage Guidelines5/5

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

    The description explicitly tells when to use this tool: 'Use when you have a project-site coordinate but no APN (map click, geocode result, etc.)', and by contrast, implies when not to use it (when APN is available, use get_overlays_for_apn).

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

  • Behavior3/5

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

    No annotations are provided, so the description carries full burden. It discloses that the tool returns 'checklist, required forms, and reference code sections,' adding behavioral context. However, it does not mention any side effects, permissions, or rate limits, but given the read-only nature, this is acceptable but not exceptional.

    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, each serving a distinct purpose: first explains the action and input, second describes the output. No extraneous words, highly efficient.

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

    Completeness4/5

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

    Given the output schema exists, the description appropriately summarizes return content without redundancy. It covers the core input parameter and output content. Minor improvement would be referencing the sibling 'list_bulletins' tool for context on obtaining IB numbers.

    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 0%, so the description must compensate. It provides a concrete example ('IB-121' or '121') for the ib_number parameter, clarifying the expected format. This adds significant meaning beyond the raw schema, though it could be more precise (e.g., regex pattern).

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

    Purpose5/5

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

    The description explicitly states 'Fetch the full content of a specific information bulletin by IB number' with an example format. It clearly identifies the resource (bulletin) and the action (fetch), distinguishing it from sibling tools like 'list_bulletins'.

    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 implies when to use the tool (when you have an IB number). It provides context for the IB number format but does not explicitly state when not to use it or recommend alternatives like 'list_bulletins' for obtaining IB numbers.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden. It correctly indicates a read operation ('Fetch') and describes the returned fields. However, it does not explicitly state idempotence, authentication needs, or potential performance impacts, leaving some gaps.

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

    Conciseness5/5

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

    The description consists of exactly two sentences, each adding distinct value. No redundant information, and the most critical details (purpose, filter, return fields) are front-loaded.

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

    Completeness4/5

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

    Given the tool's simplicity (3 params, output schema exists), the description covers essential aspects: what the tool does, how to filter, and what is returned. It does not mention the default limit or error conditions, but the presence of an output schema somewhat reduces the need for detailed return description.

    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 0%, so the description must compensate. It explains the 'apn' parameter (by APN) and the 'status' parameter with allowed values listed. The 'limit' parameter is not mentioned, but since it has a default value, the omission is partial. Overall, it adds significant meaning beyond the bare schema.

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

    Purpose5/5

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

    The description clearly states the verb 'Fetch' and the resource 'building permits for a parcel by APN'. It lists the filter parameter and return fields, differentiating it from sibling tools like get_violations_for_parcel or get_overlays_for_apn.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use this tool (to fetch permits by APN with optional status filter). However, it does not explicitly state when not to use it or mention alternative tools for related data.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden. It discloses the hierarchical and filtering behavior but omits details like authentication needs, rate limits, or error handling. Adequate but not rich in behavioral context.

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

    Conciseness5/5

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

    Two sentences, front-loaded with purpose. Every sentence adds value—no redundancy or filler. Efficient and well-structured.

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

    Completeness4/5

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

    Given the output schema exists, return values need not be described. The description covers purpose, usage hint, and parameter meaning. Could mention the hierarchical output structure more explicitly, but output schema likely handles that.

    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 0%, so description must compensate. It explains the 'chapter' parameter is optional and used for filtering, adding meaning beyond the schema's type/anyOf. However, it could specify accepted formats more precisely.

    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?

    Description clearly states the action (Return), resource (hierarchical table of contents for the Municipal Code), and optional filtering. It also provides usage context ('Use to discover what's available before searching'), distinguishing it from sibling tools like search_municipal_code.

    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?

    Description explicitly advises using the tool for discovery before searching, providing clear context. It does not mention when not to use or explicitly name alternatives, but the purpose is sufficiently differentiated from siblings.

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

  • Behavior4/5

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

    With no annotations provided, the description carries full burden. It discloses that output includes 'diagrams, cross-references, and source PDF link,' informing about key return elements. However, it does not mention behavior for missing or invalid section numbers, which would improve transparency.

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

    Conciseness5/5

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

    Two sentences with no wasted words. First sentence states action and input, second adds output details and usage guidance. Front-loaded and efficient.

    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 (one parameter, output schema present), the description covers purpose, usage context, and output highlights. It is sufficiently complete for an agent to correctly select and invoke the tool.

    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 has 0% description coverage, but the description illustrates parameter usage with an example ('e.g. '142.0610''), adding meaning beyond the schema's bare type 'string'. This compensates somewhat, though it could be more explicit about allowed format or constraints.

    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?

    Description uses specific verb 'Fetch' with resource 'full text of a specific SDMC section' and gives an example section number. It distinguishes from sibling tool search_municipal_code by stating 'Prefer this over search when you already know the section.' This clearly defines the tool's scope and 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?

    Explicitly advises when to use this tool over search: 'Prefer this over search when you already know the section.' This provides clear context for selection, though it does not explicitly state when not to use it (e.g., if unsure of section number).

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

  • Behavior4/5

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

    No annotations are provided, so the description carries the burden. It describes the output fields and implies a read-only operation. While it doesn't discuss auth or rate limits, the tool is simple and non-destructive, so the disclosure is adequate.

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

    Conciseness5/5

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

    Two concise sentences: one defines the product, the other advises usage. No wasted words, front-loaded with key information.

    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?

    With an output schema present, the description doesn't need to detail return values. It mentions key fields and provides a usage scenario. Given zero parameters, this is fully complete.

    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?

    There are no parameters; schema coverage is 100%. The description adds no parameter-specific info but none is needed. Baseline 4 is appropriate as the schema is already complete.

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

    Purpose5/5

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

    The description clearly states it provides per-source data freshness with specific attributes (last-update timestamp, record count, SLA cadence), and the name aligns well. It distinguishes itself from sibling data-retrieval tools by being a metadata tool about freshness.

    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?

    Explicitly advises to call when assessing if a regulatory answer is up-to-date. This provides clear guidance on appropriate invocation context.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

sandiego-mcp MCP server

Copy to your README.md:

Score Badge

sandiego-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/estate-atlas/sandiego-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server