mcpField
T
Tektolo

Tektolo

Remote
tektolo.comBusiness & Marketing0Updated today

About Tektolo

Tektolo provides rules-based, source-cited tools for US rental operations, including turnover estimates and state-based deposit settlements. It is for property operators and software integrating these tasks; versioned rules determine the numeric results.

Key features

  1. 01Create turnover scopes from move-out findings
  2. 02Settle deposits under state and covered-city rules
  3. 03Report deductions, refunds, and penalty exposure
  4. 04Cite sources for amounts and findings
  5. 05Use tools through web, MCP, or REST

Use cases

  1. 01Turn inspection findings into vendor-ready work scopes
  2. 02Calculate deposit deadlines, deductions, and interest
  3. 03Draft itemized rental deposit statements

MCP support

Tektolo exposes its property turnover and deposit settlement tools through an account-free MCP server at https://tektolo.com/mcp using Streamable HTTP. The same tools are also available over REST.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://tektolo.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

5
ParameterTypeRequiredDescription
citystringNoCity, for a city overlay where covered (e.g. 'Chicago'). Optional.
as_ofstringNoToday's date (YYYY-MM-DD) for the deadline status. Defaults to today (UTC); send it for repeatable results.
auditbooleanNoAlso return the run record and input/result hashes (an audit trail). Default false.
statestringYesUS state, 2-letter code (e.g. 'CA'); a state name also works.
returnedobjectNoWhat the landlord has returned so far and when. With it, timeliness says whether the refund and the itemized statement were on time and how many days late.
furnishedbooleanNoThe unit is rented furnished (California before AB 12: 3 months; Kansas: 1.5 months; Delaware: no cap).
deductionsarrayNoWhat you intend to deduct (or, for a tenant, what the landlord listed). An explicit empty list means nothing is deducted (it decides the shorter no-deduction periods, e.g. Montana 10 days, Alaska 14); leave it out when that is not known yet.
move_in_onstringNoTenancy start (YYYY-MM-DD). Used for interest and, when an item's age is unknown, for depreciation.
vacated_onstringYesDay the tenant moved out and returned possession (YYYY-MM-DD).
client_refsobjectNoYour own reference ids (e.g. unit_id, job_id). Echoed back, never used.
deposit_usdanyYesSecurity deposit held, dollars.
lease_end_onstringNoDay the lease was scheduled to end (YYYY-MM-DD), when it differs from when the tenancy actually ended (a broken lease). Lost rent and lease-break charges run to it; deadlines do not (they follow tenancy_ended_on, else the move-out, with the scheduled end as a later alternative).
serve_pinnedbooleanNoOptional, 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.
tenancy_typeenumNowritten_lease or at_will (Maine 6033(2): a written agreement's period, at most 30 days, or 21 days for a tenancy at will; Massachusetts 15B(4): at will, 30 days after the move-out, a written lease, 30 days after its end). Left out with a move-out before tenancy_ended_on: the earlier (at-will) date leads and the other is listed.written_lease | at_will
documentationobjectNoWhat documentation you have; leave a field out when unknown.
building_unitsintegerNoUnits in the building. Some interest rules depend on it (NY 6+, IL 25+).
expect_rulesetstringNoOptional. 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.
owner_occupiedbooleanNoThe landlord lives in the building (ME, NH, NJ and Chicago exempt small owner-occupied buildings; with building_units).
small_landlordbooleanNoCalifornia AB 12 small landlord (a natural person or an LLC of natural persons owning at most two properties with at most four units; not for a service member): a two-month cap.
pet_deposit_usdanyNoThe part of deposit_usd that is a pet deposit (outside the cap in Missouri, Alabama, North Dakota and Saint Paul; allowed on top of it up to one month in Hawaii and Alaska, half a month in Kansas, a quarter in Nebraska).
monthly_rent_usdanyNoMonthly rent, for the deposit cap check.
prepaid_rent_usdanyNoRent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month.
tenancy_ended_onstringNoWhen the tenancy actually ended (YYYY-MM-DD): the lease's end, or an earlier termination or accepted surrender. Deadlines that run from the end of the tenancy use it. For a tenant who left before the lease was due to end, send the scheduled end as lease_end_on (older callers sent it here, which still works: the deadline is then counted from it, with the move-out date as an earlier alternative where the facts point to one).
tenant_abandonedbooleanNoThe tenant abandoned the unit or was evicted (Maryland 8-203(h): the clock runs from the tenant's written demand; Washington 59.18.280: from when the landlord learns of it; Louisiana 9:3251(C): the one-month rule does not apply). Left out: inferred from tenant_gave_proper_notice: false; with a move-out before tenancy_ended_on the earlier abandonment clock leads and the other date is listed.
contractor_neededbooleanNoDamage exceeds the deposit and needs a third-party contractor, and you said so in writing in time (Virginia, West Virginia: 15 more days).
lease_return_daysintegerNoReturn period the lease sets, in days, where the statute lets a lease set one (Colorado up to 60, Idaho up to 30, Maine shorter).
lease_term_monthsintegerNoTerm of the lease in months (0 for month-to-month). Delaware's cap applies to leases of a year or more, New Mexico's to shorter ones.
statement_sent_onstringNoDay you sent (or delivered) the itemized statement (YYYY-MM-DD). With it the statement is judged on time or late; documentation.itemized_statement alone cannot tell.
demand_received_onstringNoDay you received the tenant's demand for the deposit (YYYY-MM-DD; written in Oklahoma, by first-class mail in Maryland 8-203(h)). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it.
tenant_age_60_plusbooleanNoA person 60 or older occupies the unit (New Hampshire 540-A:5, I: the owner-occupied exemption does not reach the unit). tenant_age_62_plus true implies it.
tenant_age_62_plusbooleanNoThe tenant is 62 or older (Connecticut: a one-month cap).
new_tenant_rent_usdanyNoMonthly rent the new tenant pays (with new_tenant_moved_in_on): the rent received for overlapping days is credited against rent claimed for them.
third_party_managedbooleanNoA third party manages the unit or collects rent for a fee.
claim_notice_sent_onstringNoDay you sent the written notice of intent to impose a claim on the deposit (YYYY-MM-DD). Florida (due within 30 days of termination) and the District of Columbia (within 45 days): the balance is due 30 days after it; a late notice does not count.
deposit_collected_onstringNoDay the deposit was collected (YYYY-MM-DD); defaults to move_in_on. California (AB 12, from 2024-07-01) and Colorado caps depend on it.
landlord_units_ownedintegerNoRental units the landlord owns in all (Arkansas 5 or fewer, Georgia 10 or fewer, with third_party_managed, may be exempt).
interest_paid_throughstringNoInterest already paid or credited to the tenant up to this day (annual-payment rules: San Francisco, Los Angeles, Berkeley, Connecticut, Massachusetts, ...): interest is counted from it.
interest_rate_percentanyNoAnnual rate the deposit account paid, where the law sets interest at the bank's rate (New Jersey, North Dakota, New Hampshire, New York, Pennsylvania, Portland), or caps it (Massachusetts: 5% or the bank's lesser rate). Without it bank-rate interest is unknown. Illinois 765 ILCS 715 uses IDFPR's published rate instead.
new_tenant_moved_in_onstringNoDay a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier; rent claimed for days from it on is not recoverable (re-rent mitigation).
rent_ordinance_coveredbooleanNoThe unit is covered by the city's rent ordinance (Los Angeles RSO, Berkeley Rent Ordinance). Their deposit interest is owed only then; unknown: the amount is shown beside the refund, not in it.
tenant_gave_proper_noticebooleanNoA termination notice that meets the statute was given (Alaska: 14 days instead of 30 when nothing is deducted for damage).
lease_signed_or_renewed_onstringNoDay the current lease was signed or last renewed (YYYY-MM-DD). Georgia (2024-07-01) and Maryland (2024-10-01) caps apply to leases from then; defaults to move_in_on, with a warning that a later renewal may bring the new cap.
nonstandard_provision_signedbooleanNoWisconsin: the tenant signed a separate NONSTANDARD RENTAL PROVISIONS document covering the charge (ATCP 134.06(3)(b)); false makes such charges 'no'.
forwarding_address_received_onstringNoDay you received the tenant's written forwarding address (YYYY-MM-DD). Several states start or hold the clock on it (Texas, Connecticut, Iowa, Minnesota).
tenant_gave_forwarding_addressbooleanNoFalse when the tenant never gave a forwarding address in writing (not just 'not yet known'). Illinois, Pennsylvania, Ohio, Delaware, South Carolina and New Hampshire then relieve the landlord of the penalty. Implied true by forwarding_address_received_on.

Details

From the project README

Tektolo skills and connector

smithery badge

Agent skills, a Claude Code plugin and the public API contract for Tektolo. Tektolo runs rules-based, source-cited tools for real-world operations work: you send structured inputs, versioned rules are applied, and you get a checked answer with its sources. The same findings always get the same answer. Where a tool reads your notes or a document, an AI model turns them into findings and never sets a number; the answer lists every finding it read so you can check them. Every tool can be used three ways: on the web, from an AI assistant over MCP, or over REST.

This repository holds only instructions and public metadata. The engines and rule tables run on tektolo.com. Every file here is synced from the live site daily by scripts/sync.py.

Tools

ToolWhat it doesMCP toolsLinks
Property turnover estimateTurn move-out inspection findings into a priced, vendor-ready make-ready scope.property_turnover_quick_estimate, property_turnover_scope, property_turnover_issue_codesweb tool · reference · skill
Deposit settlementSettle a US rental security deposit under the state's rule (and a covered city's): the return deadline, each deduction assessed (allowed category, depreciation, documentation), interest owed, the refund, penalty exposure and a draft itemized statement, every number cited.deposit_settlement_settle, deposit_settlement_rulesweb tool · reference · skill

Pricing: Try every tool free. Agents and software get a free tier of 20 calls a day, then $0.02 a call. Some tools will add paid features. Details: https://tektolo.com/pricing

Use it from your AI assistant

The MCP server is https://tektolo.com/mcp. It uses streamable HTTP and needs no account. For your own free allowance behind Claude's or ChatGPT's shared servers, get a personal connector URL at tektolo.com/connect-your-ai.

Claude Code: install the plugin, which bundles the skills and the MCP server:

claude plugin marketplace add tektolo/skills
claude plugin install tektolo@tektolo

Or connect only the server:

claude mcp add --transport http tektolo https://tektolo.com/mcp

Skills for any agent that reads SKILL.md (Claude Code, Codex, Cursor, Gemini CLI, Copilot and others):

npx skills add tektolo/skills

Claude, ChatGPT, Cursor, VS Code: add a custom connector with the URL above. Step-by-step instructions are at tektolo.com/connect-your-ai.

OpenClaw: both skills are also on ClawHub under @tektolo.

Use it over REST

Every MCP tool is also a plain JSON endpoint. contract/openapi.json describes them, and contract/catalog.json lists every operation with its schemas, pricing, privacy notes and ruleset hash. Request bodies that work are in examples/:

curl -sS https://tektolo.com/v1/deposit-settlement/settle \
  -H 'content-type: application/json' \
  -d @examples/deposit-settlement/settle/california_carpet.json

What's here

PathWhat it is
skills/<tool>/SKILL.mdagent skills (the open SKILL.md format)
plugins/tektolo/Claude Code plugin: the same skills plus .mcp.json
.claude-plugin/marketplace.jsonmakes this repo a Claude Code plugin marketplace
contract/catalog.json, openapi.json, the MCP server card and llms.txt, as served
examples/request bodies taken from the catalog

Feedback and contact

Report a wrong result or suggest a tool at tektolo.com/contact, or email [email protected]. Issues on this repository are welcome too.

License

The skills, examples and docs in this repository are MIT-0 (see LICENSE). Using the Tektolo service is covered by its Terms of Use and Privacy Policy. Results are estimates under cited rules, not legal advice (disclaimer).

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.