Skip to content

fourcolors/property-bot

v0.1.0MIT

Find room and roommate matches, save your housing preferences, and manage your own Property Bot profile.

Property Bot for Grok Bot

This public repository is the agent/plugin surface for property.bot: Cursor/Grok plugin layout, Agent Plugins discovery (plugin.json, mcp.json, skills/), and AGENTS.md for AI agents that consume the product. The Property Bot application source is private; this repo is not that codebase.

Initial plugin package for personal housing and roommate searches. It contains an OAuth MCP connection and the /property-bot skill. No API key, local server, package install, or service credential is required by the package.

Status and format

This is a development package, not a published marketplace listing. It uses the Cursor plugin manifest because Grok Bot's documented connector system uses the Cursor marketplace and account infrastructure. Root plugin.json follows the Agent Plugins specification so portable clients can discover the same skills and MCP entry. Grok Bot installation and a full signed-in conversation still need validation in the target app. This is not a Grok Build CLI plugin or an xAI Responses API integration.

This repository contains only the plugin package, including its hidden .cursor-plugin directory. The only configured server is https://mcp.property.bot/mcp (OAuth-gated product MCP). OAuth tokens belong in the host's credential store. No custom headers or user-supplied phone binding belong in mcp.json.

Develop locally

Cursor documents local plugin loading as a development harness. Run these commands from the plugin root (the public repository root, or plugins/grok-bot in the private application checkout):

mkdir -p ~/.cursor/plugins/local
ln -s "$PWD" ~/.cursor/plugins/local/property-bot

If that destination already exists, inspect it rather than replacing it. Reload Cursor and inspect Customize for the Property Bot skill and MCP server. Local imports must be allowed by the account's policy. This verifies Cursor loading; it does not prove that Grok Bot loads local Cursor directories.

For Grok Bot, distribute through the supported marketplace/team plugin flow, then open Settings → Plugins, add Property Bot, and complete browser sign-in. Attach the connector with @ and invoke the skill with /property-bot when it is available to the Bot. There is no public Property Bot listing yet.

The plugin files are distributed under the MIT license. This license does not cover the hosted Property Bot service or its private implementation. Marketplace review and signed-in Grok Bot acceptance testing are still pending.

Try it

  • “Use Property Bot to find matches for my current housing search.”
  • “Save my search for a room in Austin, up to $1,200 a month, starting October 1, 2026.”
  • “Change my maximum budget to $1,500.”
  • “I found a place. Close my search.”

The six user tools are lookup_person, remember_person, find_matches, send_text, start_phone_verification, and confirm_phone_verification. The server's live schemas are authoritative. A phone link is required for profile and match operations. New linking sends a real verification code and requires secure code entry supported by the host; validate that flow before offering this to new users. An already linked account can skip linking.

send_text saves a local record; it does not deliver SMS. Matches are redacted suggestions. The connector cannot send introductions, book rooms, or erase a profile. Closing a search is available; erasure uses the human contact path.

Acceptance checks

Use a dedicated test account and authorized test data for signed-in checks.

ScenarioExpected result
Load packageOne Property Bot MCP server and one property-bot skill discovered
Signed outBrowser OAuth requested; no profile read/write succeeds anonymously
Signed in, unlinkedProfile tools return phone_verification_required; deliberate secure linking succeeds before retry
Existing profileRead saved preferences without writing; return only real redacted matches
New searchSave stated facts with a side and valid date; verify returned need before claiming success
Restated maximum budgetSend clear_budget: true; stale minimum does not survive
False lifestyle preferencePreserve false without replacing it with an unknown/default value
Another person's phone requestedDo not bind or look up that person
No matchesSay there are none; do not invent people or broaden saved criteria silently
Text/introduction requestExplain unavailable delivery; no claim that send_text sends SMS
Close versus eraseClose only on request; explain erasure needs the human channel
Expired token / failed writeReauthenticate or report failure; no success claim or blind write retry

Evidence and references

On 2026-09-04, the public MCP metadata returned HTTP 200 and advertised a WorkOS authorization server. That server's discovery document provided authorization, token, registration, and S256 PKCE support. An unauthenticated MCP request returned HTTP 401 with a protected-resource metadata challenge. These checks do not prove OAuth completion, phone linking, plugin loading, or match execution.