Back to Browse

Onehome MCP Server

Developer ToolsModerate6.6Local
Free

OneHome (CoreLogic) real-estate access for Claude — search, property details, photos, saved homes

About

OneHome (CoreLogic) real-estate access for Claude — search, property details, photos, saved homes

Security Report

6.6
Moderate6.6Moderate Risk

This is a well-engineered MCP server for OneHome real estate data access with appropriate authentication and reasonable permission scope. The codebase demonstrates good practices: credentials are sourced from environment variables, network requests are properly scoped to the OneHome GraphQL API, and there are no hardcoded secrets or dangerous patterns. Minor code quality observations (broad error handling, some input validation patterns) are normal for a developer tool and do not materially impact security. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 1 high severity). Package verification found 1 issue.

4 files analyzed · 6 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

process_spawn

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Bearer token for services.onehome.com. Paste the raw JWT (Authorization header value, minus the 'Bearer ' prefix) from your signed-in portal.onehome.com session.Optional

Environment variable: ONEHOME_TOKEN

Magic-link URL with ?token=... from your real-estate agent. The MCP extracts the token query param and uses it directly as the bearer.Optional

Environment variable: ONEHOME_MAGIC_LINK

Override the fetchproxy WebSocket port (default 37149). Only used when ONEHOME_TOKEN / ONEHOME_MAGIC_LINK are unset and the MCP boots in capture-from-tab mode.Optional

Environment variable: ONEHOME_WS_PORT

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-chrischall-onehome-mcp": {
      "env": {
        "ONEHOME_TOKEN": "your-onehome-token-here",
        "ONEHOME_WS_PORT": "your-onehome-ws-port-here",
        "ONEHOME_MAGIC_LINK": "your-onehome-magic-link-here"
      },
      "args": [
        "-y",
        "onehome-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

onehome-mcp

CI npm license

MCP server for OneHome (CoreLogic) — search the listings your real-estate agent curated for you, fetch property details + photos, compare houses side-by-side, and run mortgage / affordability math from within Claude.

Sister project to zillow-mcp, redfin-mcp, compass-mcp, and homes-mcp. Same tool ergonomics — different upstream auth model.

This project was developed and is maintained by AI (Claude). Use at your own discretion.

What's different about OneHome

OneHome isn't a public listings site. Buyers usually reach it through a magic link an agent emails them — https://portal.onehome.com/...?token=eyJ.... That token query param IS the per-user bearer that the portal SPA hands to every GraphQL request.

So instead of routing every fetch through your signed-in browser tab (like the other realty MCPs), onehome-mcp talks directly to services.onehome.com/graphql from Node, with Authorization: Bearer <jwt> attached. We support three ways to source that bearer:

ModeHow to enableNotes
env_tokenONEHOME_TOKEN=<jwt>Paste the raw bearer from devtools Network panel. Most direct.
magic_linkONEHOME_MAGIC_LINK=https://portal.onehome.com/...?token=...Paste the full URL your agent sent — we extract the token param.
fetchproxy_capture(no env) + fetchproxy extension installed + signed-in portal.onehome.com tabWe wait for your tab to fire any GraphQL request, snapshot the Authorization header, and reuse it.

Tools

ToolWhat it does
onehome_get_userSmallest auth probe — returns your OneHome profile (name, email) and the groups your agent shared.
onehome_get_groupsList the OneHome "groups" your agent has shared with you (each one a market / curated listing bucket).
onehome_get_saved_searchFetch an agent-curated saved search by id — name, filter criteria, polygon, and the OSK listing ids that compose the share.
onehome_get_saved_search_with_listingsThe "show me my saved homes" flow in one round trip — saved search plus its inflated listings.
onehome_search_propertiesListings within a group; optionally scoped to a saved search.
onehome_search_suggestionsFree-text suggestion search (address, MLS #) across all feeds.
onehome_get_by_addressResolve a single free-text street address to a listing's portal URL + id.
onehome_resolve_addressesBulk-resolve up to 100 structured addresses to portal URLs + listing ids; concurrent, per-row error capture.
onehome_get_propertyFull property record by listing id or portal URL.
onehome_bulk_getFetch up to N listings in one call — one structured row per id, per-row error capture.
onehome_get_property_photosFull media gallery — Thumbnail / Medium / Large variants + room descriptions.
onehome_compare_properties2-8 listings side-by-side. Per-row error capture; calls are concurrent.
onehome_get_schoolsLocal-Logic primary + high schools near a lat/lng.
onehome_get_walk_scoreLocal-Logic walk / transit / bike / car friendliness scores.
onehome_graphqlPower-user escape hatch — send a raw GraphQL document with variables.
onehome_calculate_mortgageLocal PITI calculator. Same math as the other realty MCPs.
onehome_calculate_affordabilityLocal 28/36 DTI solver — max home price you can afford.
onehome_set_authAdd another authenticated session at runtime (magic link / JWT / email-token) for buyers holding shares across multiple agents.
onehome_set_active_sessionForce a specific registered session to be the active one (overrides MLS-suffix routing).
onehome_get_session_contextList every registered session — auth mode, token expiry, and the group / saved-search / agent scope each bootstrapped.
onehome_healthcheckEnd-to-end auth + GraphQL smoke check with token-expiry diagnostics.

Install

The simplest path is the published Claude plugin (.mcpb install). For local dev:

git clone https://github.com/chrischall/onehome-mcp
cd onehome-mcp
npm install
npm run build

Then point your MCP host at node /abs/path/to/onehome-mcp/dist/bundle.js with one of:

// claude_desktop_config.json
{
  "mcpServers": {
    "onehome-mcp": {
      "command": "node",
      "args": ["/abs/path/to/onehome-mcp/dist/bundle.js"],
      "env": {
        "ONEHOME_MAGIC_LINK": "https://portal.onehome.com/en-US/properties/map?token=eyJ..."
      }
    }
  }
}

Development

npm test               # vitest, mocked transport, no network
npm run test:watch
npm run test:coverage
npx tsc --noEmit
npm run build          # tsc --noEmit + esbuild → dist/bundle.js

Tests use a FakeTransport (in tests/helpers.ts) that registers per-operationName handlers — there's no live network in the test suite. The tests/index.test.ts smoke check loads the same tool registrations src/index.ts uses against an in-memory MCP client/server pair, so "I wrote the tool file but forgot to wire it up" mistakes fail loudly.

License

MIT.

Reviews

No reviews yet

Be the first to review this server!