AI agent connector (MCP)
Connect an AI assistant to RentifyNow
MCP preview · updated 19 October 2026. Public deployment and named assistant acceptance are still being verified. A listed recipe describes the connection route; it does not certify that a client has completed a live RentifyNow journey.
Use an assistant to review your properties and repair requests, then make a small repair change when you ask. Your normal RentifyNow role, active country workspace, property ownership and plan permissions apply to every tool call.
Endpoint: https://rentifynow.com/mcp · Streamable HTTP. This connector does not expose shell commands, SQL, arbitrary HTTP requests, private documents, payments, leases, legal actions, contractor assignment or deletion. Agency delegation is unavailable in this MVP.
Manage or revoke AI connections · Account settings
Permission and connection flow
- Add the endpoint to a client that supports remote MCP and OAuth authorization code with S256 PKCE.
- Sign in on the RentifyNow origin. If your browser session predates the MCP rollout, sign out and sign in again so the provider can bind the connection to a persisted session. Never paste your password, session cookie, API key or access token into a chat.
- Check the client name, your account and country workspace on the consent screen. Grant
rentifynow:readfor reads. Addrentifynow:writeonly when you want repair creation or safe edits. Optionaloffline_accesspermits a refresh token. - Ask the assistant to call
identityand verify the account and workspace before requesting private records. - To disconnect, open AI connections from account settings and revoke the client. Access and refresh tokens stop working; existing HTTP connections do not bypass revocation. Also remove the server from the client if desired.
Changing country requires reconnection and new consent. An ID in a prompt does not grant access. Tenant users can create requests for an active rental; landlord users can edit requests for their own properties. Landlord creation and tenant editing are unavailable through the existing commands.
OAuth discovery is public at /.well-known/oauth-protected-resource/mcp and /.well-known/oauth-authorization-server/auth/api/auth. The issuer is https://rentifynow.com/auth/api/auth; the exact resource/audience is https://rentifynow.com/mcp. Tokens are opaque, stored hashed and checked through the maintained Better Auth OAuth provider on every invocation. Internal services receive a separate short-lived, signed, one-use assertion bound to the Rentals audience, method, URL and body; the MCP token is never passed through to another service.
Client registration uses constrained dynamic registration at /auth/api/auth/oauth2/register. Only public clients using token_endpoint_auth_method: "none", exact deployment-approved redirect URIs, authorization-code/refresh grants and the connector scopes are allowed. Redirect URLs are never wildcard matched. Registration can be unavailable until the rollout owner approves the client's exact callback. Ask support to register that callback; do not disable PKCE or broaden the redirect allowlist. CIMD is not implemented in this release.
Available tools
All inputs reject extra fields. Read pages are limited to 25 records, pages 1–100. Structured outputs omit contact details, object-storage keys and private documents. Property and repair results contain links you can open in RentifyNow.
identity— Input:{}. Account, country, role, granted scopes and connection-settings URL.list_my_properties— Input:page,pageSize, optionalsearch. Landlord-owned properties only.get_my_property— Input:propertyId. One landlord-owned property, including explicit ownership verification.list_maintenance— Input:page,pageSize. Tenant's own requests or requests for landlord-owned properties.get_maintenance— Input:requestId. Landlord request detail; tenants use the list tool.create_repair_request— Input:rentalId, optionalpropertyId,title,description,category,priority,operationKey. Tenant-only creation through the existing maintenance command.update_repair_request— Input:requestId, one or more safe fields,operationKey. Landlord-only title, description, category or priority updates; status is excluded.
Categories: General, Plumbing, Electrical, Appliances, Heating, Other. Priorities: Low, Medium, High, Urgent. Title: 1–200 characters; description: 1–2,000. IDs are UUIDs. The two write tools require both read and write scopes. Read tools advertise read-only, non-destructive hints; write tools advertise non-destructive, idempotent behavior backed by durable operation keys. Tool hints do not replace permission checks or your client's confirmations.
Example read arguments:
{ "page": 1, "pageSize": 20 }
Example tenant request arguments, using your actual authorized rental ID:
{
"rentalId": "11111111-1111-4111-8111-111111111111",
"title": "Leaking kitchen tap",
"description": "The kitchen tap drips continuously even when closed.",
"category": "Plumbing",
"priority": "Medium",
"operationKey": "kitchen-tap-repair-20261019"
}
Reuse an operation key only for the exact same requested change, within 24 hours. Concurrent retries return the recorded result or a pending-review error. After an uncertain response, read the current requests before asking for another creation; never automatically choose a fresh key to bypass a pending operation.
Two useful flows
Landlord review, then an explicit safe edit:
Check my connected account. Summarize open maintenance requests for properties I own. Group them by property and priority. Include links and do not make changes.
Then, only when you choose a particular request:
Update the title of request [request ID] to “Kitchen tap needs a new washer.” Leave status, priority and all other fields unchanged.
Tenant report, then verify persistence:
Show my own maintenance requests. Do not create anything yet.
Then:
Create a Medium-priority Plumbing repair request for rental [rental ID], titled “Leaking kitchen tap,” with description “The kitchen tap drips continuously even when closed.” Use operation key kitchen-tap-repair-20261019. Then reconnect and show my requests so I can verify it was saved.
Property descriptions and repair text are untrusted data. They cannot authorize an assistant to follow embedded instructions, access another account or perform additional writes.
Client recipes and dated verification matrix
Current observations: Codex CLI 0.163.0 and Claude Code 2.1.303 are installed on the implementation host. Their help exposes remote HTTP and OAuth connection routes. Installing a connector in a real person's account and accepting consent on their behalf are outside test acceptance. Use a disposable client profile and synthetic identity.
- Official TypeScript MCP client: Protocol-tested (2026-10-19). SDK
1.32.1; initialization revisions2025-03-26and2025-06-18, discovery, authenticated calls and security negatives passed against isolated fixtures. Original maintenance commands also passed PostgreSQL persistence and reconnect. Deployed acceptance remains pending. - ChatGPT: Documented-only (2026-10-19). Add a custom remote MCP app/connector where enabled; complete RentifyNow OAuth with a synthetic account; verify a read and requested repair write.
- Codex CLI
0.163.0: Tested-live local OAuth; full tool journey pending (2026-10-19). Disposable profile completed exact-callback DCR, PKCE login, browser consent and connection revocation against a synthetic local fixture. The full deployed Codex tool journey remains unverified. - Claude Code
2.1.303: Documented-only; installed help checked (2026-10-19). HTTP server, fixed callback and/mcpauthentication; run a synthetic journey. - Claude Cowork / Claude web / Desktop: Documented-only (2026-10-19). Anthropic documents custom remote connectors across these surfaces; account/organization controls and a synthetic OAuth journey remain to be verified.
- Hermes Agent: Documented-only (2026-10-19). Use its remote HTTP OAuth server configuration; exact installed version, callback registration and synthetic journey are unverified.
- Grokbot / Grok: Blocked (2026-10-19). The requested “Grokbot” identity/client version is unspecified. xAI API remote MCP documentation does not establish that particular bot's OAuth support. Identify the client and validate its OAuth route before connecting.
ChatGPT
Follow OpenAI's MCP authentication guidance and custom server setup. Add the HTTPS endpoint using the custom connector capability available to your account. Select OAuth, authenticate to RentifyNow and inspect the requested permissions. A successful HTTP response or Inspector run does not establish ChatGPT compatibility. Organization policy or client registration can be an external gate.
Codex
The installed CLI supports remote HTTP OAuth. Set an unused fixed callback port in your client configuration and have its exact URI approved before registration:
mcp_oauth_callback_port = 29874
codex mcp add rentifynow --url https://rentifynow.com/mcp
codex mcp login rentifynow --scopes rentifynow:read --oauth-client-registration dcr
To request writes, reconnect with the additional write scope and approve consent. Register the exact callback selected by your client; fixed callback configuration may be necessary. Follow the current OpenAI MCP guide. Do not use a browser session token in --bearer-token-env-var.
Claude Code and Cowork
For Claude Code, choose an unused fixed callback port and have its exact URI approved:
claude mcp add --transport http --callback-port 29874 rentifynow https://rentifynow.com/mcp
Use /mcp to authenticate and inspect permissions. See Claude Code's remote MCP guide. Cowork, Claude web and Desktop use the custom remote connector flow; they are separate acceptance routes. Local desktop stdio configuration does not prove Cowork support.
Hermes and Grokbot
Use the Hermes remote MCP and OAuth guide with this product's endpoint and scopes. Verify the installed version supports the chosen OAuth registration mode. Do not copy tokens between products. xAI's remote MCP API guidance describes an API route; it is not evidence that every Grok-based bot supports interactive OAuth. No paid API fallback is needed or authorized for this verification.
Limits, errors and recovery
Defaults: 60 reads and 6 writes per principal per minute; country-workspace budgets are ten times those values. The public source-IP budget is 30 requests per minute, with a separate 300/minute bearer-request ceiling and 600/minute internal authorization-callback ceiling; registration is further restricted to 5 per source per minute and 30 total. The process accepts at most 8 concurrent requests, a 16 KiB request body, a 64 KiB result and a 10-second request deadline. Operators may configure finite lower or documented higher limits. Shared PostgreSQL counters, concurrency leases, revocation and idempotency records survive replicas; counter state never relies on an in-memory limiter. Only configured ingress proxies may supply forwarding information.
401 includes protected-resource discovery: reconnect or sign in again. 403 means a missing scope, role, membership, disallowed origin or object boundary; extra scopes cannot override ownership. 429 includes Retry-After; stop and retry after that delay. Tool errors contain a sanitized code and correlation ID. operation_pending_review means inspect saved requests before retrying a write; idempotency_key_reused requires correcting the request/key pairing. Unknown tools and malformed schemas are rejected. A timeout does not prove a write failed. For result_too_large, reduce pageSize. For role_denied, use the account role named in the tool; extra scopes cannot change that role. For access_denied, verify the rental/property/request in RentifyNow without trying another account’s IDs. For invalid_domain_input, correct the safe fields using the product form. For domain_unavailable, request_timeout or an uncertain write, inspect current requests first and retain the same operation key. Report the correlation ID if a sanitized request_denied error persists.
Privacy, protocol and extension
The connector checks the current user, enabled country membership, grant, scope, role and object permissions. Revoke the connection when finished. Your chosen AI provider processes the records you ask it to retrieve under that provider's policies. Audit events contain tool name, account/country IDs, scopes, outcome and correlation ID; tokens, cookies and private arguments are excluded. Consent and operation records remain private in the product's Auth datastore and backups.
The pinned official SDK owns Streamable HTTP negotiation. Compatibility testing targets revisions 2025-03-26 and 2025-06-18; the exact passing revisions are recorded in the acceptance ledger. This stateless release uses POST JSON responses. The SDK accepts GET as a short-lived event stream and DELETE as a transport close; it does not retain server-side subscriptions or resumable sessions. Reconnect by initializing again. This is separate from revoking OAuth permission.
To add a tool: define a strict input and output schema in the connector registry, select the least-privilege scope and role, add a fixed domain route/method to the delegation boundary, reuse the service-owned command and ownership checks, set truthful hints, choose a finite cost/budget, and project minimal results. Add protocol, persistence, cross-account, scope, revocation, malformed-input and rate-limit tests. Writes also need a durable operation key and uncertainty recovery. Update this public guide and the client matrix before advertising the tool.
Security references: MCP authorization, MCP security practices, and Better Auth OAuth provider.
Disconnect also blocks pending authorizations from restoring access. Reconnect from your client to approve a fresh connection; older grants remain blocked.