Reported issues for onehome-mcp
Pod holds 18 of 25 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to onehome-mcp.
Most discussed
bulk resolver should run the same fallback rungs as single-call (parity audit)
Round 3 feedback exposed that zillow_resolve_addresses was running only the direct-resolver rung while zillow_get_by_address had grown a 3-rung strategy (direct → suffix-expansion → search-fallback). Real example: 20 addresses → 0 resolved via bulk, 17 resolved when looped through the single call. Filed as chrischall/zillow-mcp#<TBD>.
This issue is the parity audit for onehome_resolve_addresses against onehome_get_by_address. Confirm or fix:
- Does the bulk resolver run exactly
Read the thread · 2026-05-28 · closed · 1 comment
Add bulk onehome_resolve_addresses(addresses[]) — companion to onehome_bulk_get
From the cross-MCP real-world report (item #4): every backfill workflow starts with "I have an address, give me an ID/URL," and resolving 60 addresses across two sessions took ~6 search calls + ~15 individual resolves + manual matching. A single batch call collapses this to one round trip.
Differentiation from existing onehome_bulk_get
This is distinct from the already-filed onehome_bulk_get (issue #19, PR #29):
onehome_bulk_get(listing_ids[])— takes listing IDs, returns inf
Read the thread · 2026-05-27 · closed · 1 comment
P2: add portal_url_hyperlink (Google-Sheets formula) to every property record
Motivation
Today's session built 53 of these by string concat. Lift the URL-pattern knowledge server-side.
Schema
Add portal_url_hyperlink: string to every property record:
portal_url_hyperlink: '=HYPERLINK("https://portal.onehome.com/en-US/properties/<id>","OneHome")'
Mirrors the per-row url field but in Sheets-paste-ready form.
Acceptance
Pasting the value into a Google Sheet cell renders as a clickable "OneHome" link to the right listing.
Read the thread · 2026-05-27 · closed · 1 comment
P2: onehome_get_session_context should list ALL registered sessions + add active_session_id
Motivation
With multi-session support (#9) the diagnostic tool needs to show the full set, not just the active one.
Output
{
active_session_id: "<id>",
sessions: [
{ session_id, auth_mode, auth_ready, auth_expires_at, session_context },
...
]
}
When only one session is registered (today's behavior), the array has one entry and active_session_id points at it — backwards-compatible-shaped enough to keep the common path readable.
Acceptance
Multi-session test
Read the thread · 2026-05-27 · closed · 1 comment
P1: null out placeholder tax_annual: 1 and surface tax_is_estimated
Problem
Real session saw tax_annual: 1 on three Eagles Nest new-construction listings. Not a real tax bill — a not-yet-assessed placeholder. Caller treated $1 as a real number, which was wrong.
Fix
- Null out
tax_annualwhen its value is1(and probably0). - Add
tax_is_estimated: boolean— true when the upstream marks the value as a county estimate vs an actual bill (the data has a flag for this; check the raw payload).
Acceptance
- Listing with raw
tax_annual: 1→ ret
Read the thread · 2026-05-27 · closed · 1 comment
P1: compute days_on_market + price_drop_amount + price_drop_percent on every record
Motivation
Two derived fields every caller will want. Lift the math server-side.
Fields
days_on_market: number | null— frommajor_change.atwhenmajor_change.type === "NewListing"; else from a first-list timestamp if upstream provides one; else null.price_drop_amount: number | null—previous_list_price - list_pricewhen both present.price_drop_percent: number | null—(previous_list_price - list_price) / previous_list_price * 100, rounded to 0.1.
Acceptance
Read the thread · 2026-05-27 · closed · 1 comment
Auto-review follow-ups for PR #104: refactor(skill): move root SKILL.md into skills/, point plugin.json at ./skills/
Tracking auto-review follow-ups for #104 (verdict: fail).
🔴 Important
- Broken cross-skill documentation references in skills/onehome-fpx/references/graphql-operations.md — lines 6 and 32 contain ../SKILL.md that should be ../onehome/SKILL.md
When addressing the review on #104, resolve each item and add Closes #<this issue> to the PR once everything is genuinely fixed; deferred items stay open here. See the auto-review follow-up conventio
Read the thread · 2026-07-13 · closed · external user · 0 comments
P1: onehome_set_auth hangs ~4 min on a stale/invalid magic-link token instead of failing fast
Summary
Calling onehome_set_auth with a stale magic-link token hangs for the full MCP client timeout (~4 minutes) before erroring, instead of returning a fast "token expired/invalid" error.
Root cause
onehome_set_auth → OneHomeClient.setAuthFromInput → DirectTransport.start() → exchangeEmailToken() (src/auth.ts:231) does a bare fetch(CHECK_TOKEN_URL, ...) POST to /api/authentication/checkToken with no per-attempt deadline. When upstream wedges on a stale token (c
Read the thread · 2026-05-29 · closed · 0 comments
Most recent
P0: every listing fetch fails — UnparsedAddress removed from OneHome CustomProperty schema
Summary
Source is 100% broken. Every listing fetch fails upstream validation:
Validation error (FieldUndefined@[listingDetail/customProperty/UnparsedAddress]):
Field 'UnparsedAddress' in type 'CustomProperty' is undefined
OneHome (CoreLogic) dropped or renamed the UnparsedAddress field on the CustomProperty GraphQL type. Because the field is selected in our canonical customProperty { ... } selection set, the entire document is rejected at validation time — so it isn't j
Read the thread · 2026-05-29 · closed · 0 comments
set keepAliveIntervalMs: 25_000 in FetchproxyServer constructor (fetchproxy#71)
Parent issue
fetchproxy#71 — cohort follow-up to opt Pattern A MCPs into proactive keep-alive (0.9.0 wave).
The change
In src/transport-fetchproxy.ts (or equivalent), add keepAliveIntervalMs: 25_000 to the FetchproxyServer constructor options:
const transport = new FetchproxyServer({
serverName: 'onehome-mcp',
// ... existing options
keepAliveIntervalMs: 25_000, // Round-3 #67 — proactive SW resident-keeping
});
`
[Read the thread](https://github.com/chrischall/onehome-mcp/issues/48) · 2026-05-28 · closed · 0 comments
### add search-fallback rung to onehome_get_by_address (round-3 architectural gap)
## Architectural gap
Round-3 zillow corpus made the case: a real-world set of 20 mountain MLS addresses resolved 0/20 via zillow's direct-resolver rung but 17/20 via the price-band-bounded search-fallback rung. **The search-fallback rung was load-bearing**, not the price band per se.
`onehome_get_by_address` today runs **one rung**: a single `ListingSuggestionsSearch` GraphQL op against the magic-link-gated saved-search scope (`groupId`). When suggestions returns no row — the failure mode rura
[Read the thread](https://github.com/chrischall/onehome-mcp/issues/44) · 2026-05-28 · closed · 0 comments
### fetchproxy service-worker eviction handling (capture-mode auth)
From the cross-MCP real-world report (item #22): today's session blocked entirely on "extension icon needs to be clicked to wake service worker." The same `bridge_down` error class affects every fetchproxy-backed MCP in the fleet.
## Scope for onehome-mcp
This applies to onehome **only in `fetchproxy_capture` mode** — i.e., when `ONEHOME_TOKEN` / `ONEHOME_MAGIC_LINK` env vars aren't set and the server falls through to the browser-extension bridge for captured auth.
**The env_token and magic_l
[Read the thread](https://github.com/chrischall/onehome-mcp/issues/38) · 2026-05-27 · closed · 0 comments
### onehome_search_properties with group_id only silently returns 0 for consumer-share accounts
## Problem
`onehome_search_properties({ group_id })` without `saved_search_id` silently returns `{ count: 0, listings: [] }` for consumer-share accounts. The caller can't tell whether the group is genuinely empty or whether they hit the access-restricted path.
## Fix (two options)
**A. Auto-fall-back to the saved-search path** when the session context has a `savedSearchId` and the raw `listings(groupId, ...)` returns 0. Probably what the caller wanted.
**B. Surface a clear error** explaining
[Read the thread](https://github.com/chrischall/onehome-mcp/issues/27) · 2026-05-27 · closed · 0 comments
### Add regression test for capture_request_header capability declaration
## Status
Fix landed in main as PR #9 (`fix(transport): declare capture_request_header capability on bridge`). Verified at `src/transport-fetchproxy.ts:97`:
```ts
capabilities: ['capture_request_header'],
What's left
Add a regression test that exercises the fetchproxy bridge setup end-to-end:
- Construct a
FetchproxyTransportand verifycapabilities: ['capture_request_header']is what gets handed toFetchproxyServer(spy on the constructor). - Verify the runtime `onehome_set_
Read the thread · 2026-05-27 · closed · 0 comments
P2: surface address_alternates[] when upstream MLS data has them
Motivation
Today's session has an ongoing "109 vs 169 Overlook Point Ln" discrepancy between Compass and Canopy MLS. Better data plumbing might have flagged it sooner.
Fix
If the upstream MLS payload has alternate address strings (different MLS feeds, prior addresses, parcel variants), surface them as address_alternates: string[] on the formatted record. Omit the field when absent or empty.
Acceptance
A listing with two MLS address strings shows both in address_alternates (excl
Read the thread · 2026-05-27 · closed · 0 comments
P2: default include_listing_ids=true on onehome_get_saved_search
Motivation
The saved search is essentially useless without its listingIds — that's the whole point. The current default-off setting forces every caller to pass the flag or follow up with another call.
Change
Flip the default to true. Callers who explicitly don't want them pass false.
Behavior change — ship with the version bump for P0/P1.
Read the thread · 2026-05-27 · closed · 0 comments
P2: support multiple concurrent registered sessions in onehome_set_auth (route by MLS suffix)
Motivation
Today's session had three magic-link tokens (HCAOR + 2× CANOPY) and re-auth'd mid-batch to switch between them — fragile if a single bulk fetch needs to span MLSes.
Change
onehome_set_authregisters an ADDITIONAL session rather than replacing the active one. Returns asession_id.- Per-listing routing: extract the MLS suffix from
listing_id(~CANOPY,~HCAOR, etc.) and pick the right session automatically. - New
onehome_set_active_session(session_id)lets the cal
Read the thread · 2026-05-27 · closed · 0 comments
P1: add onehome_get_saved_search_with_listings combo tool
Motivation
The magic-link → "show me my saved homes" flow ALWAYS goes:
onehome_get_saved_searchto get the saved search + listingIdsonehome_search_properties(saved_search_id=...)to inflate the listings
Two round trips for one conceptual action.
Fix
Add onehome_get_saved_search_with_listings that combines both:
{
saved_search: { id, name, ... },
listings: [ { listing_id, ... }, ... ],
count: N
}
Acceptance
New-session-from-magic-link flow drops from 2
Read the thread · 2026-05-27 · closed · 0 comments
The remaining reports are on the project's issue tracker.