io.github.chrischall/onehome-mcp
NPM · ONEHOME-MCP · SCANNED SEP 21
OneHome (CoreLogic) real-estate access for Claude — search, property details, photos, saved homes
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 8 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to chrischall/onehome-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability60
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 4402 tokens (~209/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage77
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 32% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the io.github.chrischall/onehome-mcp server?
io.github.chrischall/onehome-mcp runs locally as an npm package, launched with npx -y onehome-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · onehome-mcp
claude mcp add chrischall-onehome-mcp -- npx -y onehome-mcp
{
"mcpServers": {
"chrischall-onehome-mcp": {
"command": "npx",
"args": [
"-y",
"onehome-mcp"
]
}
}
} {
"servers": {
"chrischall-onehome-mcp": {
"command": "npx",
"args": [
"-y",
"onehome-mcp"
]
}
}
} codex mcp add chrischall-onehome-mcp -- npx -y onehome-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrischall-onehome-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"onehome-mcp"
],
"enabled": true
}
}
} openclaw mcp add chrischall-onehome-mcp --command npx --arg -y --arg onehome-mcp
mcp_servers:
chrischall-onehome-mcp:
command: "npx"
args: ["-y", "onehome-mcp"] {
"McpServers": {
"chrischall-onehome-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"onehome-mcp"
]
}
}
} assistant mcp add chrischall-onehome-mcp -t stdio -c npx -a -y onehome-mcp
{
"mcpServers": {
"chrischall-onehome-mcp": {
"command": "npx",
"args": [
"-y",
"onehome-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 −2
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- Stability: pass → 0.80 functional
- Package version: 1.0.0 → 1.1.0 functional
- 19 Sept 26 +1
- Stability: 0.97 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Stability: 0.97 → pass security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: 0.86 → 1.00 ▲ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Package version: 0.15.7 → 1.0.0 functional
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 15 Sept 26 +1
- Malware scan: unverified → pass ▲ security
- Package version: 0.15.5 → 0.15.7 functional
- Package version: 0.15.5 → 0.15.6 functional
- 14 Sept 26 −15
- Stability: 0.80 → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Package version: 0.15.4 → 0.15.5 functional
- 13 Sept 26 +12
- Malware scan: unverified → pass ▲ security
- Stability: pass → 0.80 functional
- 12 Sept 26 +1
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed npm/onehome-mcp@1.1.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | chrischall/onehome-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/chrischall/onehome-mcp/.github/workflows/release-please.yml@refs/heads/main |
| Rekor log index | 2893921899 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:5a39cd81c54fcbb48515d89eb3ddec05e0533edd888d1a96f9aadfc4498656872577584ec13b958cc19336419e4a5d6723973902afb04cfb008f037ce |
Background: How many MCP packages publish verified provenance →
Dependencies 8 packages
| Packages resolved | 8 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
onehome_bulk_get Bulk-fetch OneHome listings by id ~240
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, property }` on success or `{ listing_id, error }` on failure — 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 bridge timeouts are retried once per row before being captured as an error. `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.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| include_description | boolean | – | Include the raw `description` (PublicRemarks) on each row. Defaults to `false`. |
| listing_ids | array | yes | Listing OSK ids to fetch. 1..200. For higher counts, batch into multiple calls. |
| saved_search_id | string | – | – |
No output schema declared.
No examples provided.
onehome_calculate_affordability Calculate maximum home price you can afford ~207
Solve for the maximum home price you can afford under the standard 28/36 DTI rule. Inputs: monthly income, recurring monthly debts (car/student loans), down payment, interest rate, optional property-tax rate / insurance / HOA / loan term. Output: max home price, binding constraint (front-end vs back-end), and the PITI breakdown at that price. Same math as zillow-mcp / redfin-mcp / compass-mcp / homes-mcp. No network — pure local math.
| Name | Type | Req | Description |
|---|---|---|---|
| back_end_dti | number | – | – |
| down_payment | number | yes | – |
| front_end_dti | number | – | – |
| hoa_monthly | number | – | – |
| insurance_annual | number | – | – |
| interest_rate | number | yes | – |
| loan_term_years | integer | – | – |
| monthly_debts | number | – | – |
| monthly_income | number | yes | – |
| property_tax_rate | number | – | – |
No output schema declared.
No examples provided.
onehome_calculate_mortgage Calculate mortgage PITI ~227
Local-only mortgage payment calculator. Returns a full PITI breakdown (principal + interest, property tax, insurance, HOA, PMI) and total interest over the life of the loan. No network call. Provide either `down_payment` OR `down_payment_percent`; defaults to 20%. Property tax can be given as `property_tax_annual` or `property_tax_rate` (% of home price). PMI applies automatically when LTV > 80% and `pmi_rate` is provided.
| Name | Type | Req | Description |
|---|---|---|---|
| down_payment | number | – | – |
| down_payment_percent | number | – | – |
| hoa_monthly | number | – | – |
| home_price | number | yes | – |
| insurance_annual | number | – | – |
| interest_rate | number | yes | Annual %, e.g. 6.5 |
| loan_term_years | integer | – | Default 30 |
| pmi_rate | number | – | Annual %, applied when LTV > 80% |
| property_tax_annual | number | – | – |
| property_tax_rate | number | – | Annual % of home price |
No output schema declared.
No examples provided.
onehome_compare_properties Compare OneHome listings side-by-side ~327
Fetch 2 or more OneHome listings and align their facts side-by-side. Each target may supply `listing_id` (preferred) or `url` (a portal URL). Returns the full per-property record (with `extracted_features` populated) per row. Per-target errors are captured per-row — one bad target will not fail the whole call. Calls are concurrent. The raw `description` is omitted from each row by default (`include_description: true` to keep it). The redundant `summary` table is also opt-in via `include_summary: true` — by default only `rows[]` is returned, which already carries every fact.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| include_description | boolean | – | Include the raw `description` (PublicRemarks) on each row. Defaults to `false`. |
| include_summary | boolean | – | Include the pivoted `summary` table (one row per compared field, one column per listing). Defaults to `false` because `rows[].property.*` already carries everything — the summary is roughly 30% of th… |
| targets | array | yes | – |
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full"… |
No output schema declared.
No examples provided.
onehome_get_by_address Resolve a OneHome listing by street address ~358
Resolve a free-text street address (with optional city/state/zip) to a OneHome listing's canonical portal URL and id in one call. Walks a 2-rung ladder: (1) `ListingSuggestionsSearch` against the magic-link saved-search scope; (2) when that misses, search-fallback — page-walks the broader saved-search (or raw `listings(groupId)`) pool bounded by the same `groupId` and fuzzy-matches input address tokens. Returns `{ url, listing_id, address, resolved, matched_via }` where `matched_via: "suggestions" | "search_fallback"` reports which rung produced the hit. When no listing matches, returns `{ resolved: false, error: "no listing found" }` rather than throwing. Read-only; safe to call repeatedly.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Street address line, e.g. "126 Sleeping Bear Ln". |
| city | string | – | e.g. "Lake Lure" |
| group_id | string | – | Optional OneHome group id to scope the suggestion search. Defaults to the magic-link session context when present. |
| state | string | – | Two-letter state abbreviation, e.g. "NC" |
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full"… |
| zip | string | – | ZIP code, e.g. "28746" |
No output schema declared.
No examples provided.
onehome_get_groups List my OneHome agent groups ~66
List the OneHome groups your agent has shared with you. For full agent / registered users, returns the GraphQL `user.groups` list. For magic-link consumer-share sessions (a single shared group), synthesizes a one-entry list from the `checkToken` session context.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
onehome_get_property Fetch full details for a OneHome listing ~280
Fetch full details for a single OneHome listing by id or portal URL. Returns address, list / close / previous price, $/sqft, beds/baths/sqft, lot size (raw `lot_size` {area, units} plus the derived `lot_size_acres` — null, never 0, for condos / lotless listings), year built, lat/lng, status, HOA fee, annual tax, virtual-tour URL, the primary photo, and an `extracted_features` block (lake_front, hot_tub, basement, furnished, dock, community) keyword-parsed from the description. The raw `description` (PublicRemarks) is omitted by default — pass `include_description: true` to keep it; in most cases the extracted features cover what callers need. OneHome scopes every listing to a group/market — `group_id` defaults to the magic-link session context; pass it explicitly only if you need to query a different group.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| include_description | boolean | – | Include the raw `description` (PublicRemarks) in the response. Defaults to `false` — `extracted_features` is always populated and usually sufficient. |
| listing_id | string | – | – |
| saved_search_id | string | – | – |
| url | string | – | – |
No output schema declared.
No examples provided.
onehome_get_property_photos Full photo gallery for a OneHome listing ~85
Fetch the full media gallery for a OneHome listing. Returns one entry per image with Thumbnail / Medium / Large CDN URLs, dimensions, the listing-room description (LongDescription), and display order. Pass either `listing_id` or a portal URL.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| listing_id | string | – | – |
| url | string | – | – |
No output schema declared.
No examples provided.
onehome_get_saved_search Fetch a OneHome saved search by id ~131
Fetch the agent-curated saved search by its id (UUID). Returns the search's name, filter criteria (`filters[]`), polygon, listing count, and the full list of OSK listing ids that compose the consumer share (`listing_ids`). Pass `include_listing_ids: false` to suppress the listing-id array if you only need the metadata. This is the canonical consumer-readable endpoint; the by-groupId variant is agent-only. `saved_search_id` defaults to the MCP's session context when omitted.
| Name | Type | Req | Description |
|---|---|---|---|
| include_listing_ids | boolean | – | – |
| saved_search_id | string | – | – |
No output schema declared.
No examples provided.
onehome_get_saved_search_with_listings Fetch a saved search and inflate its listings in one call ~306
Combo tool: the "show me my saved homes" flow in a single round trip. Internally runs `GetSavedSearchBySearchId` to fetch the saved search (name, filters, polygon, listingIds) and then `GetSavedListings` to inflate those listingIds into full property records — the same two-call sequence as calling `onehome_get_saved_search` followed by `onehome_search_properties(saved_search_id=...)`, but exposed as one tool so the magic-link-to-listings consumer flow is a single MCP call. Returns `{ saved_search, listings, count, page_info }`. Both `saved_search_id` and `group_id` default to the magic-link session context. Sort defaults to `property.MajorChangeTimestamp DESC` (Newest). Listings are returned via the GraphQL listing-card projection (`buildGetSavedListings`), which does NOT include `PublicRemarks` — so there is no raw `description` to opt back into here. Use `onehome_get_property(listing_id)` per row when you need the full description for a specific listing.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| include_dislikes | boolean | – | – |
| page_num | integer | – | – |
| page_size | integer | – | – |
| saved_search_id | string | – | – |
| sort_field | string | – | GraphQL dotted-path, e.g. property.MajorChangeTimestamp or property.ListPrice |
| sort_order | string | – | – |
No output schema declared.
No examples provided.
onehome_get_schools Local-Logic primary + high schools near a lat/lng ~122
Fetch the Local-Logic school data for a coordinate — separate primary and high-school lists, each entry with name, attributes (types/grades/programs/levels), and proximity (walking distance + straight-line distance). Returns an `error` field with HTTP details if the consumer session does not have access (the schools endpoint is sometimes agent-only). lat/lng usually come from `onehome_get_property` (`latitude` / `longitude`).
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | – |
| lat | number | yes | – |
| lng | number | yes | – |
No output schema declared.
No examples provided.
onehome_get_session_context Inspect every registered OneHome session ~146
Returns one entry per registered session — its `session_id`, auth_mode, token expiry, and session scope (group_id / saved_search_id / agent_id / contact_id / mls_id) the MCP bootstrapped from each checkToken exchange. `active_session_id` flags which session answers by default; per-listing routing prefers the session whose `mls_id` matches the listing's `~MLS` suffix. Tools default unspecified `group_id` / `saved_search_id` arguments from the active session's context, so this is the easiest way to see what they'll default to. Single-session use (the common case) returns a one-entry `sessions[]`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
onehome_get_user Get the signed-in OneHome user profile ~172
Returns the OneHome user profile + the consumer-share groups attached. For full agent / registered users, queries the GraphQL `user` endpoint. For magic-link consumer-share sessions (where `user { }` is access-denied), falls back to the data captured during the `checkToken` exchange — email, contact id, group/savedSearch ids, and the agent who shared with you.
| Name | Type | Req | Description |
|---|---|---|---|
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full"… |
No output schema declared.
No examples provided.
onehome_get_walk_score Local-Logic location scores near a lat/lng ~105
Local-Logic location scores for a coordinate — pedestrian / car / cycling / transit friendliness, plus proximity summaries for groceries, restaurants, parks, primary + high schools. Each score is a `{ value, text }` pair (value 0-5, text a one-line description). Returns an `error` field with HTTP details if the upstream rejected the request.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | – |
| lat | number | yes | – |
| lng | number | yes | – |
No output schema declared.
No examples provided.
onehome_graphql Send a raw GraphQL document to services.onehome.com ~340
Power-user escape hatch — send a raw GraphQL document with variables. Returns the whole `{ data, errors, status, url }` envelope, unprojected, so you can read upstream schema errors directly. Note the default: `view` is `compact`, which strips image/avatar URLs out of `data` (every envelope key and every non-media field is kept). Pass `view: 'full'` when you need the envelope byte for byte — worth doing if you are here because a payload is not what you expected, so a missing field is never this server's doing. Operation names live in the portal bundle; common ones include `GetOneHomeUser`, `GetListings`, `GetPins`, `ListingById`, `MediaListingById`, `GetSavedSearches`, `ListingSuggestionsSearch`. (LocalLogic schools/walk-score are REST endpoints, not GraphQL operations — use `onehome_get_schools` / `onehome_get_walk_score`.) Pass `query` (the full document body), an `operation_name` matching the document, and any `variables` as JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| operation_name | string | yes | – |
| query | string | yes | – |
| variables | object | – | – |
| view | string | – | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full"… |
No output schema declared.
No examples provided.
onehome_healthcheck Verify OneHome auth + GraphQL reachability ~105
Round-trip a minimal authenticated query through the configured transport. Picks `GetSavedSearchBySearchId` for magic-link consumer-shares (works for them) or `GetOneHomeUser` for agent/registered sessions. Returns the auth mode, token expiry, fetchproxy bridge role (when applicable), elapsed time, and any error detail. Run this first when a tool fails — it isolates "is auth wired up?" from "is the API itself misbehaving?".
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
onehome_resolve_addresses Bulk-resolve street addresses to OneHome URLs + listing_ids ~279
Resolve up to 100 structured addresses to OneHome canonical portal URLs + listing OSK ids in one call. Each input is a `{address, city?, state?, zip?}` object. Output preserves input order; one row per input, either `{resolved: true, url, listing_id, address}` or `{resolved: false, error, query}`. Walks the exact same 2-rung ladder as `onehome_get_by_address` via the shared helper (rung 1: `ListingSuggestionsSearch` against the magic-link saved-search scope; rung 2: search-fallback page-walking the broader saved-search / raw-listings pool bounded by `groupId`) — bulk and single cannot diverge. Each row surfaces `matched_via: "suggestions" | "search_fallback"` so callers see which rung produced the hit. Concurrent fan-out capped at 6 in flight to avoid swamping the upstream. Per-row errors captured — one bad address never fails the whole batch. `group_id` defaults to the magic-link session context. Read-only; safe to call repeatedly.
| Name | Type | Req | Description |
|---|---|---|---|
| addresses | array | yes | Up to 100 address inputs. For higher counts, batch into multiple calls. |
| group_id | string | – | OneHome group id to scope every row. Defaults to magic-link session context. |
No output schema declared.
No examples provided.
onehome_search_properties Search listings inside a OneHome group / saved share ~385
Fetch listings inside a OneHome consumer-share. Two modes: - With `saved_search_id`: fetch the agent-curated collection (the standard 'Homes at <name>' view). The MCP first resolves the saved search's listingIds and then inflates them via listingsBySavedSearchId — this is the only mode that works for non-agent consumer accounts. - With just `group_id` and no `saved_search_id`: try the raw `listings(groupId, browseParameter)` endpoint. If that returns 0 (the access-restricted shape consumer-shares hit) AND the session context has a `savedSearchId`, the tool transparently falls back to the saved-search path. If there's no fallback target it raises a clear error rather than silently returning empty. Both args default from the MCP's bootstrapped session context (the magic-link checkToken response) when neither is passed explicitly. Sort is `MajorChangeTimestamp DESC` ('Newest') unless overridden. `include_dislikes: false` by default — flip it on to include listings you've thumbs-downed in OneHome. Listings here are returned via the GraphQL listing-card projection, which does NOT include `PublicRemarks` — so there is no `description` field on search results and no `include_description` flag to opt into one. Each listing carries the structured `extracted_features` object instead. Use `onehome_get_property(listing_id)` per row when you need the full description for a specific listing.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| include_dislikes | boolean | – | – |
| page_num | integer | – | – |
| page_size | integer | – | – |
| saved_search_id | string | – | – |
| sort_field | string | – | GraphQL dotted-path, e.g. property.MajorChangeTimestamp or property.ListPrice |
| sort_order | string | – | – |
No output schema declared.
No examples provided.
onehome_search_suggestions Free-text suggestion search across MLS feeds ~111
Cross-feed suggestion search by address, MLS number, or partial query. Bypasses the group/saved-search structure and hits the global suggestion endpoint — useful for "find an address" or "look up by MLS number". Returns id, address parts, beds/baths, list price, thumbnail per match. Inflate any result with `onehome_get_property`. Optional `group_id` scopes suggestions to one OneHome market.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | – | – |
| query | string | yes | – |
No output schema declared.
No examples provided.
onehome_set_active_session Switch which registered OneHome session is active ~136
Force a specific registered session to be the active one. Useful when MLS-suffix routing picks the wrong session (e.g. a free-text search across multiple MLSes, or a listing without a `~MLS` suffix). Pass a `session_id` previously returned by `onehome_set_auth` or surfaced in `onehome_get_session_context`. The active session answers any request that doesn't carry a `~MLS`-suffixed listing id.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | Session id from a previous `onehome_set_auth` response, or one of the ids listed by `onehome_get_session_context`. |
No output schema declared.
No examples provided.
onehome_set_auth Register an additional OneHome session at runtime ~274
Provide a magic-link URL, a raw JWT bearer, or an email-token to ADD another authenticated session to the MCP — useful when a buyer holds shares across multiple agents/MLSes (one magic link per share). The MCP detects the input shape (URL → extract `?token=`; 3-segment JWT → use directly; otherwise → treat as email-token and exchange via `/api/authentication/checkToken`), registers a new direct-bearer transport, and marks it active. Previously-registered sessions stay registered — switch back with `onehome_set_active_session(session_id)`, or let MLS-suffix routing (`~CANOPY`, `~HCAOR`, …) pick automatically per listing. The response includes the assigned `session_id`, the new `active_session_id`, the auth_mode/status, the session_context the checkToken response yielded, and a `bearer_fingerprint` of the resolved JWT (first 8 + `…` + last 4 chars) — never the full bearer. SECURITY: the input itself sits in your chat history; treat magic links as short-lived credentials.
| Name | Type | Req | Description |
|---|---|---|---|
| input | string | yes | Magic-link URL (https://portal.onehome.com/...?token=eyJ...), JWT bearer (3 dot-separated segments), or raw email-token (single base64 segment). |
No output schema declared.
No examples provided.
What is the io.github.chrischall/onehome-mcp server?
io.github.chrischall/onehome-mcp is listed in the public MCP registry as io.github.chrischall/onehome-mcp. OneHome (CoreLogic) real-estate access for Claude, search, property details, photos, saved homes. This page covers its npm package (onehome-mcp).
Is the io.github.chrischall/onehome-mcp server safe to use?
io.github.chrischall/onehome-mcp scores 88 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.chrischall/onehome-mcp server expose?
io.github.chrischall/onehome-mcp exposes 21 tools: onehome_get_user, onehome_get_groups, onehome_get_session_context, onehome_get_saved_search, onehome_get_saved_search_with_listings, and 16 more. Their descriptions and schemas cost roughly 4,402 tokens of context every time the server is loaded.
Is the io.github.chrischall/onehome-mcp server still maintained?
io.github.chrischall/onehome-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.chrischall/onehome-mcp server under?
io.github.chrischall/onehome-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.