{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T18:53:19.492Z","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout.md","server":{"slug":"io-usefulapi-ezrentout","name":"EZRentOut MCP by usefulapi","registryName":"io.usefulapi/ezrentout","description":"MCP server for EZRentOut — rental orders, assets, customers, inventory and work orders.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ezrentout","type":"remote","identifier":"https://ezrentout.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout","version":"1.6.4","transport":null,"scoredAt":"2026-11-06T13:04:02.701Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-06","total":18},{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":66}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"ezrentout","type":"remote","identifier":"https://ezrentout.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout.md"}],"facts":[{"label":"Endpoint","value":"https://ezrentout.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.4"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"ezrentout_list_orders","title":"List orders","description":"List all rental orders (25 per page) with status, customer and dates. Paged: add 1 to page for the next one. GET /baskets.api.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"ezrentout_get_order","title":"Get an order","description":"One order by its order number: customer, status, dates, line items (order_line_items), sub-rent items, totals and payments. GET /baskets/<ORDER#>.api.","inputs":[{"name":"order_number","type":null,"required":true,"description":"The order number (Order#), from ezrentout_list_orders."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":69},{"name":"ezrentout_get_order_history","title":"Get an order's in/out history","description":"The check-out / check-in history of one order. GET /baskets/<ORDER#>/history.api.","inputs":[{"name":"order_number","type":null,"required":true,"description":"The order number (Order#)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"ezrentout_list_payment_options","title":"List payment options","description":"The payment options (cash, check, ...) that ezrentout_record_order_payment accepts. GET /payment_options.api.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":36},{"name":"ezrentout_list_coupons","title":"List coupons","description":"All pricing coupons of the company. GET /pricing_coupons.api.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":28},{"name":"ezrentout_list_customers","title":"List or filter customers","description":"List customers (25 per page). Optional filter: email, category, taxed, non_taxed, inactive_customers, subscribed_emails, not_subscribed_emails, checked_out_orders, completed_orders, account_name. email, category, account_name and completed_orders (for example \"> 50\") need filter_val. GET /customers.api.","inputs":[{"name":"filter","type":"string","required":false,"description":"Filter name."},{"name":"filter_val","type":"string","required":false,"description":"The value for the filters that need one (an email address, a category, an account name, or a comparison such as > 50)."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":161},{"name":"ezrentout_get_customer","title":"Get a customer","description":"One customer by id: name, email, phone, addresses, status, custom fields. GET /customers/<CUSTOMER_ID>.api.","inputs":[{"name":"customer_id","type":null,"required":true,"description":"The customer id, from ezrentout_list_customers."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"ezrentout_search_member_by_email","title":"Find a customer or contact by email","description":"Look up the customer, business contact or business that has an email address. GET /api/members/search_by_email.api.","inputs":[{"name":"email","type":"string","required":true,"description":"The email address."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"ezrentout_list_businesses","title":"List or filter businesses","description":"List business customers (20 per page). Optional filter: all, active_businesses, inactive_businesses, checked_out_orders, active_customers, completed_orders (completed_orders needs filter_val, for example \"> 50\"). GET /businesses.api.","inputs":[{"name":"filter","type":"string","required":false,"description":"Filter name (default all)."},{"name":"filter_val","type":"string","required":false,"description":"The comparison for completed_orders, for example > 50."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":128},{"name":"ezrentout_get_business","title":"Get a business","description":"One business customer by id. GET /businesses/<BUSINESS#>.api.","inputs":[{"name":"business_id","type":null,"required":true,"description":"The business id, from ezrentout_list_businesses."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"ezrentout_list_business_contacts","title":"List business contacts","description":"List the contact persons of business customers (25 per page). GET /contacts.api.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"ezrentout_get_business_contact","title":"Get a business contact","description":"One business contact by id. GET /contacts/<CONTACT_ID>.api.","inputs":[{"name":"contact_id","type":null,"required":true,"description":"The contact id, from ezrentout_list_business_contacts."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"ezrentout_list_customer_addresses","title":"List a customer's addresses","description":"The shipping/billing addresses of one customer. GET /customers/<CUSTOMER_ID>/shipping_addresses.api.","inputs":[{"name":"customer_id","type":null,"required":true,"description":"The customer id."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77},{"name":"ezrentout_list_business_addresses","title":"List a business's addresses","description":"The shipping/billing addresses of one business. GET /businesses/<BUSINESS#>/shipping_addresses.api.","inputs":[{"name":"business_id","type":null,"required":true,"description":"The business id."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"ezrentout_list_assets","title":"List assets","description":"List fixed assets (the individually tracked rental items, 25 per page) with group, location and status. GET /assets.api.","inputs":[{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"show_image_urls","type":"boolean","required":false,"description":"Also return document and image links of the items (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":113},{"name":"ezrentout_filter_assets","title":"Filter assets by status","description":"Assets by a status filter. status: available, assets_being_serviced, availability_range, checked_out (= currently rented out), group, location, overdue, possessions_of, possessions_of_email, reserved, product_model_number, items_in_order, reservation_starting_today, retired, update_time. Most filters need filter_param_val (a group or location id, a user id, an email, a model number, an order number; for availability_range two dates joined by ~). Not needed for available, checked_out, overdue, reserved, retired. GET /assets/filter.api.","inputs":[{"name":"filter_param_val","type":"string","required":false,"description":"The value the filter needs, if any."},{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"status","type":"string","required":true,"description":"The filter."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":207},{"name":"ezrentout_search_assets","title":"Search assets","description":"Search by asset name (3+ characters), or # followed by the item number, or @ followed by the identification number. GET /search.api (facet FixedAsset).","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"search","type":"string","required":true,"description":"Name, #<item number> or @<identification number>."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"ezrentout_get_asset","title":"Get an asset","description":"One fixed asset by its asset number: details, group, location, status, rental prices, optionally service details and custom fields. GET /assets/<ASSET#>.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The asset number (Asset#), from ezrentout_list_assets."},{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."},{"name":"show_services_details","type":"boolean","required":false,"description":"Also return service (maintenance) data."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101},{"name":"ezrentout_get_asset_history","title":"Get an asset's history","description":"The check-in/check-out and change history of one asset (5 entries per page). GET /assets/<ASSET#>/history_paginate.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The asset number."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"ezrentout_get_asset_booked_dates","title":"Get an item's booked dates","description":"The dates on which an asset, inventory item or asset stock is booked or reserved. GET /assets/<ASSET#>/booked_dates.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The item number (Asset#)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"ezrentout_list_asset_comments","title":"List an asset's comments","description":"The comments on one item (25 per page), optionally by one user. GET /assets/<ASSET#>/comments.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The item number (Asset#)."},{"name":"created_by_id","type":null,"required":false,"description":"Only comments by this user id."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"ezrentout_list_assets_in_service","title":"List assets in service","description":"Assets currently in maintenance (25 per page), optionally only one service type or state. GET /assets/filter.api?for_service=true&status=assets_being_serviced.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"service_state","type":"string","required":false,"description":"Only this service state."},{"name":"service_type","type":"string","required":false,"description":"Only this service type name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"ezrentout_list_inventory","title":"List inventory items","description":"List inventory (consumable items tracked by quantity, 25 per page). GET /inventory.api.","inputs":[{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"ezrentout_get_inventory_item","title":"Get an inventory item","description":"One inventory item by item number, with its stock. GET /inventory/<ASSET#>.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The inventory item number (Asset#)."},{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":65},{"name":"ezrentout_search_inventory","title":"Search inventory","description":"Search inventory items by name, #<item number> or @<identification number>. GET /search.api (facet VolatileAsset).","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"search","type":"string","required":true,"description":"Name, #<item number> or @<identification number>."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"ezrentout_get_inventory_history","title":"Get an inventory item's stock history","description":"The stock movements (added, sold, transferred) of one inventory item. GET /inventory/<ASSET#>/history.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The inventory item number."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":83},{"name":"ezrentout_get_quantity_by_location","title":"Get an item's quantity at a location","description":"The stock of an inventory or asset-stock item at one location. GET /locations/get_quantity_by_location.api.","inputs":[{"name":"asset_id","type":null,"required":true,"description":"The item number (Asset#)."},{"name":"location_id","type":null,"required":true,"description":"The location id, from ezrentout_list_locations."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":63},{"name":"ezrentout_list_asset_stock","title":"List asset stock items","description":"List asset stock (bulk items tracked by quantity per location, 25 per page). GET /stock_assets.api.","inputs":[{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"ezrentout_get_asset_stock","title":"Get an asset stock item","description":"One asset stock item by number. GET /stock_assets/<AssetStock#>.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The asset stock number."},{"name":"include_custom_fields","type":"boolean","required":false,"description":"Also return the items' custom fields (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"ezrentout_list_users","title":"List users","description":"The company's users (staff/admins, 25 per page). Filter by email, employee_identification_number or status (filter_val: active, inactive, login, non_login, all). GET /members.api.","inputs":[{"name":"filter","type":"string","required":false,"description":"Filter name."},{"name":"filter_val","type":"string","required":false,"description":"The value for the filter."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"ezrentout_get_user","title":"Get a user","description":"One user by id. GET /members/<USER_ID>.api.","inputs":[{"name":"user_id","type":null,"required":true,"description":"The user id, from ezrentout_list_users."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41},{"name":"ezrentout_get_user_checked_out_items","title":"Get the items checked out to a user","description":"The assets currently checked out to one user (a read; the vendor API uses PUT for this lookup). PUT /members/<USER_ID>/checked_out_items.api?page=N with item_type in the form body.","inputs":[{"name":"item_type","type":"string","required":false,"description":"Only this item type, if the account uses one."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"user_id","type":null,"required":true,"description":"The user id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"ezrentout_list_locations","title":"List locations","description":"The company's locations (25 per page); status all, active or inactive. GET /locations/get_line_item_locations.api.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"status","type":"string","required":false,"description":"Default all."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":79},{"name":"ezrentout_get_location","title":"Get a location","description":"One location by id. GET /locations/<LOCATION#>.api.","inputs":[{"name":"location_id","type":null,"required":true,"description":"The location id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"ezrentout_get_location_quantities","title":"Get the stock at a location","description":"The quantity of every asset, asset-stock and inventory item at one location. GET /locations/<LOCATION#>/quantities_by_asset_ids.api.","inputs":[{"name":"location_id","type":null,"required":true,"description":"The location id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"ezrentout_list_groups","title":"List groups","description":"The asset groups (categories, 25 per page) with their items. GET /assets/classification_view.api.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":69},{"name":"ezrentout_list_subgroups","title":"List subgroups","description":"All subgroups, or those of one group. GET /groups/get_sub_groups.api.","inputs":[{"name":"group_id","type":null,"required":false,"description":"Only the subgroups of this group."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"ezrentout_list_bundles","title":"List bundles","description":"Bundles (items rented together, 25 per page). GET /bundles.api.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":66},{"name":"ezrentout_get_bundle","title":"Get a bundle","description":"One bundle by id, with its items. GET /bundles/<BUNDLE#>.api.","inputs":[{"name":"bundle_id","type":null,"required":true,"description":"The bundle id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":40},{"name":"ezrentout_list_vendors","title":"List vendors","description":"The company's vendors/suppliers (25 per page). GET /assets/vendors.api.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"ezrentout_list_custom_fields","title":"List custom fields","description":"The custom fields defined for items (names and ids). GET /assets/custom_attributes.api.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":30},{"name":"ezrentout_list_purchase_orders","title":"List purchase orders","description":"All purchase orders. GET /purchase_orders.api.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":22},{"name":"ezrentout_get_purchase_order","title":"Get a purchase order","description":"One purchase order with its items. GET /purchase_orders/<PO#>.api.","inputs":[{"name":"purchase_order_number","type":null,"required":true,"description":"The purchase order number (PO#)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"ezrentout_list_work_orders","title":"List work orders","description":"Maintenance work orders (25 per page), optionally by status filter (open, in_progess [sic, as the vendor spells it], review_pending, complete) or by work order type. GET /tasks.api.","inputs":[{"name":"filter","type":"string","required":false,"description":"A status filter: open, in_progess, review_pending or complete."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Replies include the total number of pages; ask for the next page by adding 1."},{"name":"task_type","type":"string","required":false,"description":"A work order type name, from ezrentout_list_work_order_types."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":133},{"name":"ezrentout_get_work_order","title":"Get a work order","description":"One work order by number. GET /tasks/<Work_Order#>.api.","inputs":[{"name":"work_order_number","type":null,"required":true,"description":"The work order number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"ezrentout_list_work_order_types","title":"List work order types","description":"The work order types of the company. GET /task_types.api.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":27},{"name":"ezrentout_list_custom_reports","title":"List saved reports","description":"The saved custom reports (id, name, description). GET /reports/list_custom_reports.api.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":31},{"name":"ezrentout_create_customer","title":"Create a customer","description":"Create a customer (a person who rents). First and last name are required. Does not create an order. POST /customers.api.","inputs":[{"name":"address","type":"string","required":false,"description":"Address line 1."},{"name":"city","type":"string","required":false,"description":"City."},{"name":"country","type":"string","required":false,"description":"Two-letter country code, e.g. US."},{"name":"description","type":"string","required":false,"description":"Notes about the customer."},{"name":"email","type":"string","required":false,"description":"Email address."},{"name":"first_name","type":"string","required":true,"description":"First name."},{"name":"last_name","type":"string","required":true,"description":"Last name."},{"name":"phone_number","type":"string","required":false,"description":"Phone number."},{"name":"state","type":"string","required":false,"description":"State or province."},{"name":"zip_code","type":"string","required":false,"description":"Zip or postal code."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":145},{"name":"ezrentout_create_order","title":"Create an order","description":"Create a new rental order (a draft until it is booked or rented out) for a customer, optionally with assets and dates. If the customer belongs to several businesses, pass business_id. Does not rent anything out and does not charge. POST /baskets.api.","inputs":[{"name":"asset_numbers","type":"array","required":false,"description":"Assets to add (asset numbers; a bundle as <id>-b)."},{"name":"business_id","type":null,"required":false,"description":"The business, when the contact is part of several."},{"name":"customer_id","type":null,"required":true,"description":"The customer or business-contact id, from ezrentout_list_customers."},{"name":"description","type":"string","required":false,"description":"Order description."},{"name":"due_date","type":"string","required":false,"description":"Due (return) date (mm/dd/yyyy)."},{"name":"expected_checkout_date","type":"string","required":false,"description":"Expected check-out date (mm/dd/yyyy)."},{"name":"expected_checkout_time","type":"string","required":false,"description":"Expected check-out time (hh:mm, 24 hours)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":186},{"name":"ezrentout_add_assets_to_order","title":"Add assets to an order","description":"Add assets (or bundles as <id>-b) to an existing order. PATCH /baskets/<ORDER#>/update_basket_from_show.api.","inputs":[{"name":"asset_numbers","type":"array","required":true,"description":"Asset numbers; a bundle as <bundle id>-b, e.g. 12, 25-b."},{"name":"order_number","type":null,"required":true,"description":"The order number (Order#)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":85},{"name":"ezrentout_book_order","title":"Book an order","description":"Reserve an order's assets for a period (books the order). EZRentOut may notify the customer according to the account's settings. PATCH /baskets/<ORDER#>/reservation.api.","inputs":[{"name":"from","type":"string","required":true,"description":"Reservation start (mm/dd/yyyy)."},{"name":"from_time","type":"string","required":false,"description":"Start time (hh:mm, 24 hours)."},{"name":"order_number","type":null,"required":true,"description":"The order number."},{"name":"to","type":"string","required":true,"description":"Reservation end (mm/dd/yyyy)."},{"name":"to_time","type":"string","required":false,"description":"End time (hh:mm, 24 hours)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"ezrentout_add_order_custom_entry","title":"Add a custom charge to an order","description":"Add a custom line (a named amount, for example a delivery fee) to an order; it raises the order total. Not possible on sold, void, completed or cancelled orders. POST /baskets/<ORDER#>/custom_entries.api.","inputs":[{"name":"amount","type":"number","required":true,"description":"The amount, in the account's currency."},{"name":"comments","type":"string","required":false,"description":"Comments."},{"name":"name","type":"string","required":true,"description":"Name of the charge."},{"name":"order_number","type":null,"required":true,"description":"The order number."},{"name":"tax_free","type":"boolean","required":false,"description":"true = no tax on this charge."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":120},{"name":"ezrentout_record_order_payment","title":"Record a payment on an order","description":"Record a payment received for an order (a prepayment). It records the amount in EZRentOut; it does not charge a card (credit card payments are not supported by the API). Use a payment_method_name from ezrentout_list_payment_options. PATCH /baskets/<ORDER#>/charge_pre_payment.api.","inputs":[{"name":"amount","type":"number","required":true,"description":"The amount received."},{"name":"order_number","type":null,"required":true,"description":"The order number."},{"name":"payment_method_name","type":"string","required":true,"description":"A payment option name, for example Cash."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"ezrentout_rent_out_order","title":"Rent out an order (check out)","description":"Check an order out: its assets go to the customer and the rental clock and billing start. EZRentOut may email the customer according to the account's settings. Give rentout_date and return_date, or use_current_datetime. PATCH /baskets/<ORDER#>/checkout.api.","inputs":[{"name":"order_number","type":null,"required":true,"description":"The order number."},{"name":"rentout_date","type":"string","required":false,"description":"Rent-out date (mm/dd/yyyy)."},{"name":"rentout_time","type":"string","required":false,"description":"Rent-out time (hh:mm, 24 hours)."},{"name":"return_date","type":"string","required":false,"description":"Expected return date (mm/dd/yyyy)."},{"name":"return_time","type":"string","required":false,"description":"Expected return time (hh:mm, 24 hours)."},{"name":"use_current_datetime","type":"boolean","required":false,"description":"true = rent out now."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":161},{"name":"ezrentout_return_order","title":"Return an order (check in)","description":"Check an order in: the customer returned the assets, rental billing ends and the assets become available again. Give return_date (and return_time), or use_current_datetime to return now. Returns the whole order (no partial returns, late fees or payment here; use ezrentout_record_order_payment). EZRentOut may email the customer according to the account's settings. PATCH /baskets/<ORDER#>/checkin.api.","inputs":[{"name":"order_number","type":null,"required":true,"description":"The order number."},{"name":"return_date","type":"string","required":false,"description":"Return date (mm/dd/yyyy)."},{"name":"return_time","type":"string","required":false,"description":"Return time (hh:mm, 24 hours)."},{"name":"use_current_datetime","type":"boolean","required":false,"description":"true = return now."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":150},{"name":"ezrentout_add_asset_comment","title":"Add a comment to an item","description":"Add a comment to an asset, asset stock or inventory item. POST /assets/<ASSET#>/comments.api.","inputs":[{"name":"asset_number","type":null,"required":true,"description":"The item number (Asset#)."},{"name":"content","type":"string","required":true,"description":"The comment text."},{"name":"created_by_id","type":null,"required":false,"description":"The user the comment is attributed to."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72},{"name":"ezrentout_create_work_order","title":"Create a maintenance work order","description":"Create a work order with a title, type and due date, optionally for assets. By default the linked assets are marked unavailable (mark_items_unavailable). POST /tasks.api.","inputs":[{"name":"asset_numbers","type":"array","required":false,"description":"Assets the work order is for."},{"name":"description","type":"string","required":false,"description":"Description."},{"name":"due_date","type":"string","required":true,"description":"Due date (mm/dd/yyyy)."},{"name":"mark_items_unavailable","type":"boolean","required":false,"description":"Default true in EZRentOut: the assets cannot be rented while the work order is open."},{"name":"priority","type":"string","required":false,"description":"Priority."},{"name":"task_type","type":"string","required":true,"description":"The work order type name, from ezrentout_list_work_order_types."},{"name":"title","type":"string","required":true,"description":"The summary."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":151},{"name":"ezrentout_start_work_order","title":"Start a work order","description":"Mark a work order in progress. PATCH /tasks/<Work_Order#>/mark_in_progress.api.","inputs":[{"name":"work_order_number","type":null,"required":true,"description":"The work order number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"ezrentout_complete_work_order","title":"Complete a work order","description":"Mark a work order complete; its assets may become available again. PATCH /tasks/<Work_Order#>/mark_complete.api.","inputs":[{"name":"work_order_number","type":null,"required":true,"description":"The work order number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T13:04:02.000Z","track":"remote","endpoint":"https://ezrentout.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"ezrentout.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a1ae72-f5ab-72de-bd44-3d7964704db3","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a1ae72-f5ab-72de-bd44-3d7964704db3"},{"id":"chg_01a199ce-521c-71b0-bb27-18450e1d43e2","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-521c-71b0-bb27-18450e1d43e2"},{"id":"chg_01a199ce-521d-745a-9b7a-2d850de146ba","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-521d-745a-9b7a-2d850de146ba"},{"id":"chg_01a199ce-521d-7c29-9647-a553ad7a197e","kind":"check.unverifiable","summary":"Stability (0.03 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-521d-7c29-9647-a553ad7a197e"},{"id":"chg_01a199ce-521e-72a5-9d5a-ea373f77dde2","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-521e-72a5-9d5a-ea373f77dde2"},{"id":"chg_01a199ce-521e-7809-b2a8-6f6a473255be","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-521e-7809-b2a8-6f6a473255be"},{"id":"chg_01a199ce-5220-7d18-b070-923fe896cf6c","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-5220-7d18-b070-923fe896cf6c"},{"id":"chg_01a199ce-5221-7200-8e02-bf1743a438a0","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-5221-7200-8e02-bf1743a438a0"},{"id":"chg_01a199ce-5225-76a5-a861-c365d92aec26","kind":"score.total_changed","summary":"Trust score (66 → 18)","materiality":"functional","direction":"regression","scoreDelta":-48,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a199ce-5225-76a5-a861-c365d92aec26"},{"id":"chg_01a194a7-e0d7-7c1a-84d1-90111ca5baf8","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a194a7-e0d7-7c1a-84d1-90111ca5baf8"},{"id":"chg_01a193fb-909c-752e-9ddf-3f8e84ab60c6","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a193fb-909c-752e-9ddf-3f8e84ab60c6"},{"id":"chg_01a19028-424d-71ac-8653-759c9806e5e5","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout#chg-chg_01a19028-424d-71ac-8653-759c9806e5e5"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout","markdown":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-ezrentout/ezrentout.xml","external":[{"label":"Remote endpoint","href":"https://ezrentout.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/ezrentout/"}]}}