Skip to main content
Glama
chrischall

onehome-mcp

by chrischall

Bulk-fetch OneHome listings by id

onehome_bulk_get
Read-onlyIdempotent

Fetch up to 200 OneHome listings in one call, returning per-ID success or error rows with retry details. Batch property lookups and re-run only pending IDs.

Instructions

Fetch up to 200 OneHome listings in a single call. Returns one structured row per input id (no side-by-side summary table — use onehome_compare_properties for that). Each row is either { listing_id, status: "ok", property } on success or { listing_id, status, error_kind, retryable, error } on failure (status = error_kind: timeout / bridge_down / pending are retryable, protocol / other are real misses) — one bad id never fails the whole call. Calls fan out concurrently against ListingById, capped at 6 in flight to avoid swamping the bridge; transient timeouts are retried once per row before being captured as an error. The whole call is bounded by an overall deadline: any row still unsettled comes back status: "pending" with a top-level pending count — re-run just those ids. The envelope reports count / ok / errored. extracted_features is populated per row automatically. The raw description (PublicRemarks) is omitted by default — pass include_description: true to keep it. group_id defaults to the magic-link session context.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
group_idNo
listing_idsYesListing OSK ids to fetch. 1..200. For higher counts, batch into multiple calls.
saved_search_idNo
include_descriptionNoInclude the raw `description` (PublicRemarks) on each row. Defaults to `false`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.13.1

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations (readOnly/idempotent/openWorld) by disclosing the concurrency cap of 6 in flight, per-row retry-once on transient timeouts, the overall deadline and pending-row behavior, partial-failure isolation, the error_kind taxonomy with retryable vs real-miss classification, and the envelope counts. This is unusually rich behavioral context for an agent.

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

Conciseness4/5

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

Front-loaded with the core action and its limit, and every sentence carries load (return shape, failure semantics, concurrency, deadline, envelope, feature extraction, description flag, group_id default). It is a dense single block rather than organized sections, which slightly hurts scanability.

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 no output schema, the description fully carries the return contract: per-row success and failure shapes, the envelope counts, pending-count semantics, and the fact that extracted_features is auto-populated. Nothing an agent needs to invoke or interpret results is missing.

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

Parameters3/5

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

Schema description coverage is 50%, and the description compensates for group_id (defaults to magic-link session context) and reinforces listing_ids batching and include_description's default. However saved_search_id is unexplained in both the schema and the description, leaving one of four parameters semantically opaque.

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

Purpose5/5

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

States a specific verb+resource with scope ('Fetch up to 200 OneHome listings in a single call') and explicitly disambiguates from the sibling onehome_compare_properties. An agent can tell it apart from onehome_get_property (single) and onehome_search_properties (query-based) without opening a schema.

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?

Gives explicit routing ('use onehome_compare_properties for that'), a batching rule for >200 ids, and operational guidance to re-run only the ids returned as pending. It does not name the single-id alternative (onehome_get_property) for the 1-id case, so the when-not is slightly incomplete.

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