{"data":{"name":"com.tektolo/rental-property","title":"Tektolo Rental Property","description":"Rental property tools for agents: turnover cost estimates and security deposit rules by US state.","version":"0.1.0","websiteUrl":"https://tektolo.com/","repositoryUrl":"https://github.com/tektolo/skills","remotes":[{"url":"https://tektolo.com/mcp/rental-property","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-12T14:27:15.078Z","updatedAt":"2026-10-12T14:27:15.078Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Tektolo Rental Property","source":"official-registry","sourceId":"com.tektolo/rental-property","updatedAt":"2026-10-12T14:27:15.078Z","confidence":100,"websiteUrl":"https://tektolo.com/","description":"Rental property tools for agents: turnover cost estimates and security deposit rules by US state.","verification":"official","repositoryUrl":"https://github.com/tektolo/skills"}],"toolIndex":{"tools":[{"serverName":"com.tektolo/rental-property","endpointFingerprint":"67ed9c6edfd3286d811481e8d875a3308bacfc5c48f4e05c8d53b45f1d787bfa","name":"deposit_settlement_rules","title":"Security deposit rules for a state (and city)","description":"Looks up the security deposit rules (deposits only) for one US state, with a covered city's deposit ordinance (Chicago, San Francisco, Berkeley, Los Angeles, Seattle, Portland, Minneapolis, Saint Paul). Inputs: state (two-letter code); optional city. Returns the deposit return deadline and what starts it, itemization and documentation duties, allowed deductions and depreciation, deposit interest, penalties, the deposit cap and recent changes, with citations. Not for: settling a specific move-out (deposit_settlement_settle does that), evictions, unpaid-rent collection, rent increases or rent control, lease renewal or notice periods, legal advice.\nDeterministic and source-cited: the same input gives the same result.","inputSchema":{"type":"object","properties":{"state":{"description":"US state, 2-letter code or name (e.g. 'TX').","type":"string"},"city":{"maxLength":80,"type":"string","description":"Optional city for its overlay (e.g. 'Chicago')."},"as_of":{"format":"date","type":"string","description":"Optional date (YYYY-MM-DD): show the law in force on that day, for a past move-out the day the tenancy ended. Omitted: the current law."},"audit":{"default":false,"description":"Also return the run record and input/result hashes (an audit trail). Default false.","type":"boolean"},"expect_ruleset":{"type":"string","description":"Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules."},"serve_pinned":{"default":false,"description":"Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.","type":"boolean"}},"required":["state"],"examples":[{"state":"IL","city":"Chicago"}]},"annotations":{"title":"Security deposit rules for a state (and city)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"03b1068a369e1f1c686c249432b3507d674ecf4fc5d588b8a0eefb45ab6e6cf9","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T15:46:00.203Z","metadataTrust":"untrusted"},{"serverName":"com.tektolo/rental-property","endpointFingerprint":"67ed9c6edfd3286d811481e8d875a3308bacfc5c48f4e05c8d53b45f1d787bfa","name":"deposit_settlement_settle","title":"Settle a security deposit after move-out","description":"Settles a US residential security deposit after move-out under the state's statute (50 states and DC) and a covered city's ordinance. Inputs: state, deposit_usd, vacated_on; optional city, monthly_rent_usd, move_in_on, deductions (category, amount, item age, whether the tenant caused it), the dates that start a state's clock, and as_of. Returns the return deadline and its status, each deduction allowed or not (with depreciation), interest owed, refund due, penalty exposure, a draft itemized statement and a citation for every rule. Not for: legal advice, tenant demand letters, repair cost estimates, pet deposits, rentals outside the US.\nDeterministic and source-cited: the same input gives the same result.","inputSchema":null,"annotations":{"title":"Settle a security deposit after move-out","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"92d43a488b7fc0c520bf32647840c99872ff4dcf5edd63db190f919646b40cb5","schemaStatus":"too-large","origin":"official-registry","observedAt":"2026-10-30T15:46:00.203Z","metadataTrust":"untrusted"},{"serverName":"com.tektolo/rental-property","endpointFingerprint":"67ed9c6edfd3286d811481e8d875a3308bacfc5c48f4e05c8d53b45f1d787bfa","name":"property_turnover_issue_codes","title":"Look up turnover issue codes","description":"The issue-code catalog for rental-unit turnover findings (group.issue codes such as carpet.pet_urine). Inputs, all optional: q (search words or a code), group (e.g. flooring), limit, include_aliases; query and area are older names for q and group. With no arguments it returns every code in short form (code, name, group, default extent, refer-out). With q it returns the best matches with description, aliases, not_when, rooms and examples. Returns the codes, the match count, every group, and general.manual_quote, the code for a condition no other code fits. Not for: cost estimates, legal or security-deposit questions, work other than rental turnover.\nDeterministic and source-cited: the same input gives the same result.","inputSchema":{"type":"object","properties":{"client_refs":{"additionalProperties":{"type":"string"},"type":"object","description":"Your own reference ids (e.g. unit_id, job_id). Echoed back, never used."},"q":{"maxLength":200,"type":"string","description":"Words to search for in the codes, names, aliases, descriptions and examples, e.g. 'pet stain carpet'. Hits come back with full detail. Leave out to list every code in short form."},"group":{"maxLength":40,"type":"string","description":"Only codes in this group, e.g. 'flooring' or 'walls' (a part of the unit, not a room). `groups` in the answer lists them all."},"limit":{"maximum":500,"minimum":1,"type":"integer","description":"Most codes to return. Default: 8 with q, every code without."},"include_aliases":{"default":false,"description":"Also return aliases in the short list (search hits always carry them).","type":"boolean"},"query":{"maxLength":200,"type":"string","description":"Older name for q; use q."},"area":{"maxLength":40,"type":"string","description":"Older name for group; use group."},"audit":{"default":false,"description":"Also return the run record and input/result hashes (an audit trail). Default false.","type":"boolean"},"expect_ruleset":{"type":"string","description":"Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules."},"serve_pinned":{"default":false,"description":"Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.","type":"boolean"}}},"annotations":{"title":"Look up turnover issue codes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"ad0747575d57f7fdbeebd5d94c086228ae6b2660cb5b12cf59e0c4972b4d07cf","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T15:46:00.203Z","metadataTrust":"untrusted"},{"serverName":"com.tektolo/rental-property","endpointFingerprint":"67ed9c6edfd3286d811481e8d875a3308bacfc5c48f4e05c8d53b45f1d787bfa","name":"property_turnover_quick_estimate","title":"Quick turnover estimate (start here)","description":"Estimates what it costs to turn over a US rental unit after move-out; the first tool for a turnover estimate. Inputs: a 5-digit ZIP, bedrooms, bathrooms and the issues in plain English (e.g. \"stained carpet in both bedrooms\"), which may come from the user's photos; optional unit type, size, year built. Returns a priced make-ready estimate: repair tasks by trade with low/expected/high costs for the ZIP, priorities, refer-outs to licensed professionals, assumptions and links. An AI model reads the issues; the answer is a draft listing what it read (reading), and words it cannot place bill nothing. Not for: diagnosing hazards, legal advice on deposits, remodel bids, properties outside the US.\nThe same findings under the same ruleset give the same result; AI never sets a number.","inputSchema":{"type":"object","properties":{"client_refs":{"additionalProperties":{"type":"string"},"type":"object","description":"Your own reference ids (e.g. unit_id, job_id). Echoed back, never used."},"zip":{"description":"The user's 5-digit US ZIP code. If it is missing or not exactly 5 digits, ask the user; never guess, pad or correct it.","type":"string"},"bedrooms":{"description":"0 for a studio.","type":"integer"},"bathrooms":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","type":"string"}],"description":"Half baths count as 0.5."},"issues":{"description":"What was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed. All the issues together may hold up to 12,000 characters; send longer notes in more than one request.","items":{"type":"string"},"maxItems":100,"type":"array"},"unit_type":{"$ref":"#/$defs/UnitType","default":"apartment","description":"Single-family homes and townhomes get house-sized defaults (floor area, locks).","type":"string"},"sq_ft":{"maximum":20000,"minimum":150,"type":"integer","description":"Interior sq ft."},"year_built":{"maximum":2100,"minimum":1700,"type":"integer","description":"Drives lead-paint (pre-1978) handling."},"carpet":{"type":"boolean","description":"Is there wall-to-wall carpet?"},"pets":{"type":"boolean","description":"Did pets live in the unit? true adds an optional flea treatment."},"walk_date":{"format":"date","type":"string","description":"The walk-through date; dated or aged items are judged against it. Omit if unknown."},"profile":{"$ref":"#/$defs/Profile","default":"standard","description":"minimum (rent-ready basics) | standard | premium (higher finish).","type":"string"},"price_tier":{"$ref":"#/$defs/PriceTier","default":"pm_vendor","description":"bulk_contract (portfolio contract prices) | pm_vendor (default: a property manager buying turns from local vendors) | retail_one_off (an owner hiring one contractor).","type":"string"},"detail":{"default":"summary","description":"summary (default, small) or full (every line).","enum":["summary","full"],"type":"string"},"retain":{"default":true,"description":"Optional (contract 0.5.1). false: keep none of this request's text, so the AI reader's answer for the issues is not stored either. By default the text is kept with contact details and access codes removed, to improve matching; the estimate is the same either way.","type":"boolean"},"audit":{"default":false,"description":"Also return the run record and input/result hashes (an audit trail). Default false.","type":"boolean"},"expect_ruleset":{"type":"string","description":"Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules."},"serve_pinned":{"default":false,"description":"Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.","type":"boolean"}},"required":["zip","bedrooms","bathrooms"],"$defs":{"PriceTier":{"description":"Purchasing channel. Library prices are pm_vendor (a PM buying turns from a local vendor).","enum":["bulk_contract","pm_vendor","retail_one_off"],"type":"string"},"Profile":{"enum":["minimum","standard","premium"],"type":"string"},"UnitType":{"enum":["apartment","single_family","townhome","condo","duplex","manufactured"],"type":"string"}},"examples":[{"zip":"43215","bedrooms":2,"bathrooms":1,"issues":["stained carpet in both bedrooms","nail holes everywhere","oven is filthy"]}]},"annotations":{"title":"Quick turnover estimate (start here)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"0a9415a6acf45e410be5ed0902a9f0d3bc0b1fb84a9a7456f8cad8efc69a0e99","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T15:46:00.203Z","metadataTrust":"untrusted"},{"serverName":"com.tektolo/rental-property","endpointFingerprint":"67ed9c6edfd3286d811481e8d875a3308bacfc5c48f4e05c8d53b45f1d787bfa","name":"property_turnover_scope","title":"Scope a property turnover","description":"Turns move-out inspection findings for a US rental unit into a priced make-ready scope. For a first estimate use property_turnover_quick_estimate (plain words). Inputs: property (ZIP, bedrooms, bathrooms, optional details) and findings, each an issue code from property_turnover_issue_codes with rooms, status, quantity and the original words (source_text); optional rate_card, decisions, detail. Returns tasks by trade, low/expected/high costs, priorities, vendor scopes, refer-outs, assumptions, unknowns and download links. Not for: diagnosing hazards, legal advice on deposits, remodel bids, properties outside the US.\nDeterministic and source-cited: the same input gives the same result.","inputSchema":null,"annotations":{"title":"Scope a property turnover","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"ad56a67f5749b5936bd9de6224509ac18bb1258c397134f5c384325fe8482395","schemaStatus":"too-large","origin":"official-registry","observedAt":"2026-10-30T15:46:00.203Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"67ed9c6edfd3286d811481e8d875a3308bacfc5c48f4e05c8d53b45f1d787bfa","protocol":"streamable-http","status":"indexed","toolCount":5,"observedAt":"2026-10-30T15:46:00.203Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"com.tektolo/rental-property":{"url":"https://tektolo.com/mcp/rental-property"}}},"Cursor":{"mcpServers":{"com.tektolo/rental-property":{"url":"https://tektolo.com/mcp/rental-property"}}},"VS Code":{"servers":{"com.tektolo/rental-property":{"type":"http","url":"https://tektolo.com/mcp/rental-property"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://tektolo.com/mcp/rental-property"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:com.tektolo%2Frental-property","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/com.tektolo%2Frental-property","name":"com.tektolo/rental-property","description":"Rental property tools for agents: turnover cost estimates and security deposit rules by US state.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://tektolo.com/mcp/rental-property"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://tektolo.com/","repositoryUrl":"https://github.com/tektolo/skills","version":"0.1.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"com.tektolo/rental-property","status":"online","lastCheckedAt":"2026-11-03T21:18:04.610Z","lastSuccessfulCheck":"2026-11-03T21:18:04.610Z","latencyMs":31,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T21:18:04.610Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T21:18:04.610Z"},"security":null,"timestamps":{"createdAt":"2026-10-12T14:27:15.078Z","updatedAt":"2026-10-12T14:27:15.078Z","observedAt":"2026-11-03T21:18:04.610Z"},"compatibility":{"serverVersion":"0.1.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}