Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Redfin for-sale, for-rent and sold listings plus full property pages, as structured JSON.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
HASDATA_API_KEY, x-api-key「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"redfin": {
"command": "npx",
"args": [
"-y",
"@hasdata/redfin-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http redfin 'https://mcp.hasdata.com/mcp?apis=redfin' --header 'x-api-key: your-value'claude mcp add redfin --env HASDATA_API_KEY=your-value -- npx -y @hasdata/redfin-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"redfin": {
"url": "https://mcp.hasdata.com/mcp?apis=redfin",
"headers": {
"x-api-key": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"redfin": {
"command": "npx",
"args": [
"-y",
"@hasdata/redfin-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"redfin": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=redfin",
"headers": {
"x-api-key": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"redfin": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/redfin-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
x-api-key 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン hasdata.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:HASDATA_API_KEY, x-api-key
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.2)がレジストリに届いたのは43 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, LickityClick
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A hosted Redfin MCP server that gives Claude, Cursor, Windsurf and any other MCP client two read-only Redfin tools. Search for-sale, for-rent and sold listings with the filter set Redfin shows a visitor, and read one property page in full, both as structured JSON, with no MLS licence and nothing to host.
It reads public Redfin pages that a signed-out visitor can see.
1,000 free credits every month, no card required, which is 100 Redfin calls at the 10-credit rate.
https://mcp.hasdata.com/mcp?apis=redfin
An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/redfin-mcp on npm and hasdata-redfin-mcp on PyPI, shown below.
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
| Field | Value |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=redfin |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
claude mcp add --transport http redfin "https://mcp.hasdata.com/mcp?apis=redfin" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=redfin and sign in.
For the config-file route, Claude Desktop loads only local (stdio) servers, so it reaches a remote server through a stdio launcher. The @hasdata/redfin-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
{
"mcpServers": { "redfin": { "command": "npx", "args": ["-y", "@hasdata/redfin-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": { "redfin": { "command": "uvx", "args": ["hasdata-redfin-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Cursor
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": { "redfin": { "url": "https://mcp.hasdata.com/mcp?apis=redfin", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
{
"mcpServers": { "redfin": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=redfin", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
VS Code
.vscode/mcp.json in the workspace:
{
"servers": { "redfin": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=redfin", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Each of these lands on one tool, or on two in sequence when the second needs the URL the first returns.
A prompt that names a market goes to the search tool. A prompt that hands you a Redfin URL goes straight to the property tool. Searching for a full street address is a third case, covered below, because it answers with one property rather than a list.
| Tool | What it returns |
|---|---|
hasdata_redfin_listing_getRealEstateListings | Each listing with address, Redfin URL, list price, beds/baths, square footage, lot size, year built, days on market, status, coordinates, photos, MLS number, and HOA; an…. 10 credits a call |
hasdata_redfin_property_getPropertyDetails | Address, list/sold price, price history, Redfin Estimate, beds/baths, square footage, lot size, year built, property type, HOA, days on market, school ratings, tax…. 10 credits a call |
Two tools, 10 credits per successful call.
hasdata_redfin_listing_getRealEstateListings
A page of listings for a location, or one property when the location is a single address.
Two parameters are required, and the rest of the schema mirrors Redfin's own filter panel.
| Parameter | Type | Required | Notes |
|---|---|---|---|
keyword | string | yes | A zipcode, city, neighborhood, school, school district, apartment building name, or a full street address |
type | string | yes | forSale, forRent or sold |
sort | string | recommended, newest, oldest, priceLowToHigh, priceHighToLow, bedrooms, bathrooms, lotSize, squareFeetPrice and more | |
page | number | Result page, starting at 1 |
The filters are named after the nested structure Redfin uses internally, flattened with underscores, so they have to be passed exactly as the schema spells them. price_min_ and price_max_ are the price band, beds_min_ and beds_max_ the bedroom count, monthlyPayment_interestRate_ a mortgage assumption. A doubled underscore marks an array.
The ones worth knowing:
| Parameter | Type | Notes |
|---|---|---|
price_min_ / price_max_ | number | Price band |
beds_min_ / beds_max_ | number | Bedroom count |
baths | string | Minimum baths, one through four, plus oneAndHalf and twoAndHalf |
homeTypes__ | array | house, townhouse, townhome, condo, land, multiFamily, mobile, coOp, apartment, other. Which values apply depends on type |
statusOptions__ | array | active, comingSoon, contingentPending |
listingType_category___ | array | byAgent, byOwnerFsbo, newConstruction, foreclosures |
timeOnRedfin | string | newListing through moreThan45Days |
soldWithinOption | string | Sold window, from lastOneWeek to lastFiveYear. See the warning below |
yearBuilt_min_ / yearBuilt_max_ | string | A year from a fixed ladder, 1940 through 2026 |
forSaleSquareFeet_min_ / _max_ | string | Floor area from a fixed ladder, 750 through 10000 |
lotSize_min_ / lotSize_max_ | string | 2000 sqft through 100 acres, as written |
cost_hoa_ | number | Maximum monthly HOA fee |
cost_priceReduced_ | string | inTheLastDay through moreThan120Days |
homeFeatures_options___ | array | waterfront, hasAView, fireplace, fixerUpper, guestHouse, elevator, greenHome, accessibleHome and more |
homeFeatures_poolType_ | string | privatePool, communityPool, privateOrCommunityPool, noPrivatePool |
homeFeatures_keywordSearch_ | string | Free text against the listing description |
schools_greatSchoolRating_ | number | Minimum GreatSchools rating, 1 to 10 |
transportScores_walkScore_ | number | Minimum walk score, 1 to 100 |
rentalAmenities__ | array | inUnitWasherDryer, parkingAllowed, utilitiesIncluded, furnished, pool and more |
pets__ | array | dogsAllowed, catsAllowed |
moveInDate | string | MM/DD/YYYY |
A market search returns searchInformation with totalResults, a properties array of 40, and pagination with currentPage, nextPage and an otherPages map. A for-sale or sold property carries id, mlsId, url, homeType, status, price, beds, baths, area, yearBuilt, daysOnSite, addressRaw, a parsed address, latitude, longitude, description, atAGlanceFacts and photos.
atAGlanceFacts has two shapes. On a search row it is a list of selling-point strings, and on the property response it is a list of factLabel and factValue pairs, so code that reads one shape breaks on the other.
{
"id": 31625298, "mlsId": "2190201772333567097", "url": "https://www.redfin.com/TX/Austin/1721-Deerfield-Dr-78741/home/31625298", "homeType": "House", "status": "FOR_SALE", "price": 675000, "beds": 3, "baths": 2, "area": 1667, "yearBuilt": 1963, "daysOnSite": 0, "addressRaw": "1721 Deerfield Dr, Austin, TX 78741", "address": { "street": "1721 Deerfield Dr", "city": "Austin", "state": "TX", "zipcode": "78741" }, "latitude": 30.231372, "longitude": -97.734893, "atAGlanceFacts": ["Hill country views", "2020 roof", "Stainless appliances"] }
A rental is a building rather than a home, so type: forRent returns a different shape. price, beds, baths and area each become a { min, max } object across the available units, and the entry adds propertyName, availableUnits, agentEmail and agentPhone while dropping mlsId, homeType, yearBuilt and daysOnSite.
{
"id": "31510362", "propertyName": "The Sonata", "status": "FOR_RENT", "availableUnits": 12, "price": { "min": 745, "max": 1300 }, "beds": { "min": 1, "max": 2 }, "baths": { "min": 1, "max": 2 }, "area": { "min": 474, "max": 976 }, "addressRaw": "1070 Mearns Meadow Blvd, Austin, TX 78758" }
hasdata_redfin_property_getPropertyDetails
One property page
冒頭だけを表示しています。続きはリポジトリで読めます