{"$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-06T17:17:55.185Z","url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop.md","server":{"slug":"io-usefulapi-doorloop","name":"DoorLoop MCP by usefulapi","registryName":"io.usefulapi/doorloop","description":"Read DoorLoop properties, units, leases, tenants and payments; create tasks and task updates.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"doorloop","type":"remote","identifier":"https://doorloop.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop","version":"1.5.4","transport":null,"scoredAt":"2026-11-06T13:04:38.569Z"},"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":65},{"date":"2026-10-31","total":64}]},"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":"doorloop","type":"remote","identifier":"https://doorloop.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop.md"}],"facts":[{"label":"Endpoint","value":"https://doorloop.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.5.4"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"doorloop_get_current_user","title":"Get current user","description":"Get the DoorLoop user that created this API key. Good first call to confirm the connection. DoorLoop API: GET /users/me.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"doorloop_list_properties","title":"List properties","description":"List properties (buildings) with address, class and portfolio. DoorLoop API: GET /properties.","inputs":[{"name":"class","type":"string","required":false,"description":"Filter by property class."},{"name":"group","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"owner","type":"string","required":false,"description":"Filter by owner id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"text","type":"string","required":false,"description":"Filter by property name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":146},{"name":"doorloop_get_property","title":"Get a property","description":"Get one property by id. DoorLoop API: GET /properties/{propertyId}.","inputs":[{"name":"property_id","type":"string","required":true,"description":"The property_id (from the matching list tool)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"doorloop_list_units","title":"List units","description":"List rental units with rent, bedrooms and status. Without filter_active the API returns active units only. DoorLoop API: GET /units.","inputs":[{"name":"active","type":"string","required":false,"description":"Which units to return by status."},{"name":"group","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"owner","type":"string","required":false,"description":"Filter by owner id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"text","type":"string","required":false,"description":"Filter by unit name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":166},{"name":"doorloop_get_unit","title":"Get a unit","description":"Get one unit by id. DoorLoop API: GET /units/{unitId}.","inputs":[{"name":"unit_id","type":"string","required":true,"description":"The unit_id (from the matching list tool)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"doorloop_list_leases","title":"List leases","description":"List leases with dates, rent, status and outstanding balance. Use calculatedStatus or situation to find at-risk or late leases. DoorLoop API: GET /leases.","inputs":[{"name":"calculatedStatus","type":"string","required":false,"description":"Collections stage."},{"name":"end_date_from","type":"string","required":false,"description":"Lease end date from (yyyy-mm-dd)."},{"name":"end_date_to","type":"string","required":false,"description":"Lease end date to (yyyy-mm-dd)."},{"name":"evictionPending","type":"boolean","required":false,"description":"Only leases with a pending eviction."},{"name":"group","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"outstandingBalanceGreaterThan","type":"number","required":false,"description":"Only leases with an outstanding balance above this amount."},{"name":"owner","type":"string","required":false,"description":"Filter by owner id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"propertyClass","type":"string","required":false,"description":"Filter by property class."},{"name":"situation","type":"string","required":false,"description":"Lease situation from balance and lifecycle."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"start_date_from","type":"string","required":false,"description":"Lease start date from (yyyy-mm-dd)."},{"name":"start_date_to","type":"string","required":false,"description":"Lease start date to (yyyy-mm-dd)."},{"name":"status","type":"string","required":false,"description":"Filter by lease status."},{"name":"tenant","type":"string","required":false,"description":"Filter by tenant id."},{"name":"term","type":"string","required":false,"description":"Filter by lease term."},{"name":"text","type":"string","required":false,"description":"Filter by lease name."},{"name":"unit","type":"string","required":false,"description":"Filter by unit id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":339},{"name":"doorloop_get_lease","title":"Get a lease","description":"Get one lease by id. DoorLoop API: GET /leases/{leaseId}.","inputs":[{"name":"lease_id","type":"string","required":true,"description":"The lease_id (from the matching list tool)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"doorloop_list_lease_tenants","title":"List lease tenants","description":"List tenants joined to their leases, with move-in and move-out dates. Best way to map tenants to leases. DoorLoop API: GET /leases/tenants.","inputs":[{"name":"group","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"lease","type":"string","required":false,"description":"Filter by lease id."},{"name":"movedInAt_from","type":"string","required":false,"description":"Move-in date from (yyyy-mm-dd)."},{"name":"movedInAt_to","type":"string","required":false,"description":"Move-in date to (yyyy-mm-dd)."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"status","type":"string","required":false,"description":"Occupancy status."},{"name":"text","type":"string","required":false,"description":"Filter by tenant name or email."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":210},{"name":"doorloop_list_tenants","title":"List tenants","description":"List tenants and prospects with contact details. DoorLoop API: GET /tenants.","inputs":[{"name":"group","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"lease","type":"string","required":false,"description":"Filter by lease id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"text","type":"string","required":false,"description":"Filter by tenant name or email."},{"name":"type","type":"string","required":false,"description":"Filter by tenant type."},{"name":"unit","type":"string","required":false,"description":"Filter by unit id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":167},{"name":"doorloop_get_tenant","title":"Get a tenant","description":"Get one tenant by id. DoorLoop API: GET /tenants/{tenantId}.","inputs":[{"name":"tenant_id","type":"string","required":true,"description":"The tenant_id (from the matching list tool)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"doorloop_list_lease_payments","title":"List lease payments","description":"List rent payments received on leases. DoorLoop API: GET /lease-payments.","inputs":[{"name":"date_from","type":"string","required":false,"description":"Payment date from (yyyy-mm-dd)."},{"name":"date_to","type":"string","required":false,"description":"Payment date to (yyyy-mm-dd)."},{"name":"lease","type":"string","required":false,"description":"Filter by lease id."},{"name":"owner","type":"string","required":false,"description":"Filter by owner id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":164},{"name":"doorloop_list_lease_charges","title":"List lease charges","description":"List charges (rent, fees, late fees) billed on leases. Use totalBalanceGreaterThan to find unpaid charges. DoorLoop API: GET /lease-charges.","inputs":[{"name":"date_from","type":"string","required":false,"description":"Charge date from (yyyy-mm-dd)."},{"name":"date_to","type":"string","required":false,"description":"Charge date to (yyyy-mm-dd)."},{"name":"lateFeeCharges","type":"boolean","required":false,"description":"Only late-fee charges."},{"name":"lease","type":"string","required":false,"description":"Filter by lease id."},{"name":"owner","type":"string","required":false,"description":"Filter by owner id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"totalBalanceGreaterThan","type":"number","required":false,"description":"Only charges with a remaining balance above this amount."},{"name":"unit","type":"string","required":false,"description":"Filter by unit id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":225},{"name":"doorloop_list_tasks","title":"List tasks","description":"List tasks, work orders, tenant requests and owner requests. DoorLoop API: GET /tasks.","inputs":[{"name":"assignedToUser","type":"string","required":false,"description":"Filter by user id or \"unassigned\"."},{"name":"createdAt_from","type":"string","required":false,"description":"Created from (yyyy-mm-dd)."},{"name":"createdAt_to","type":"string","required":false,"description":"Created to (yyyy-mm-dd)."},{"name":"dueDate_from","type":"string","required":false,"description":"Due date from (yyyy-mm-dd)."},{"name":"dueDate_to","type":"string","required":false,"description":"Due date to (yyyy-mm-dd)."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"propertyGroup","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"status","type":"string","required":false,"description":"Filter by task status."},{"name":"text","type":"string","required":false,"description":"Filter by subject, description or reference."},{"name":"type","type":"string","required":false,"description":"Filter by task type."},{"name":"unit","type":"string","required":false,"description":"Filter by unit id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":250},{"name":"doorloop_get_task","title":"Get a task","description":"Get one task by id. DoorLoop API: GET /tasks/{taskId}.","inputs":[{"name":"task_id","type":"string","required":true,"description":"The task_id (from the matching list tool)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"doorloop_list_owners","title":"List owners","description":"List property owners. DoorLoop API: GET /owners.","inputs":[{"name":"active","type":"boolean","required":false,"description":"Filter by active or inactive."},{"name":"group","type":"string","required":false,"description":"Filter by portfolio id."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"text","type":"string","required":false,"description":"Filter by owner name or email."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":141},{"name":"doorloop_list_vendors","title":"List vendors","description":"List maintenance vendors. DoorLoop API: GET /vendors.","inputs":[{"name":"active","type":"boolean","required":false,"description":"Filter by active or inactive."},{"name":"insurance_expires_before","type":"string","required":false,"description":"Insurance expires before (yyyy-mm-dd)."},{"name":"openBalance","type":"boolean","required":false,"description":"Only vendors with an open balance."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"property","type":"string","required":false,"description":"Filter by property id."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":148},{"name":"doorloop_list_portfolios","title":"List portfolios","description":"List portfolios (property groups). DoorLoop API: GET /property-groups.","inputs":[{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"doorloop_list_users","title":"List users","description":"List DoorLoop users of the company. DoorLoop API: GET /users.","inputs":[{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"doorloop_list_accounts","title":"List accounts","description":"List chart-of-accounts entries. DoorLoop API: GET /accounts.","inputs":[{"name":"leaseChargeItem","type":"boolean","required":false,"description":"Only lease charge items."},{"name":"page_number","type":"integer","required":false,"description":"Page number (default 1)."},{"name":"page_size","type":"integer","required":false,"description":"Results per page (default 50, max 1000)."},{"name":"sort_by","type":"string","required":false,"description":"Field name of the resource to sort by, for example createdAt."},{"name":"sort_descending","type":"boolean","required":false,"description":"Sort in descending order (default false)."},{"name":"type","type":"string","required":false,"description":"Account type, for example REVENUE_INCOME or EXPENSE_EXPENSE."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":131},{"name":"doorloop_create_task","title":"Create a task","description":"WRITE: create a task in DoorLoop. INTERNAL_TASK needs requested_by_user, TENANT_REQUEST needs requested_by_tenant, OWNER_REQUEST needs requested_by_owner, WORK_ORDER needs assigned_to_vendor. Notifications are off unless you set them. Each call creates a new task. DoorLoop API: POST /tasks.","inputs":[{"name":"assigned_to_users","type":"array","required":false,"description":"User ids to assign."},{"name":"assigned_to_vendor","type":"string","required":false,"description":"Vendor id. Required for WORK_ORDER."},{"name":"description","type":"string","required":false,"description":null},{"name":"due_date","type":"string","required":false,"description":"Due date (yyyy-mm-dd)."},{"name":"instructions_to_vendor","type":"string","required":false,"description":null},{"name":"notify_assignees","type":"boolean","required":false,"description":"Notify the assigned users. Default: no."},{"name":"notify_tenant","type":"boolean","required":false,"description":"Notify the tenant (TENANT_REQUEST only). Default: no."},{"name":"priority","type":"string","required":false,"description":null},{"name":"property","type":"string","required":false,"description":"Property id."},{"name":"requested_by_owner","type":"string","required":false,"description":"Owner id. Required for OWNER_REQUEST."},{"name":"requested_by_tenant","type":"string","required":false,"description":"Tenant id. Required for TENANT_REQUEST."},{"name":"requested_by_user","type":"string","required":false,"description":"User id. Required for INTERNAL_TASK."},{"name":"status","type":"string","required":true,"description":"Initial status."},{"name":"subject","type":"string","required":true,"description":"Task subject."},{"name":"type","type":"string","required":true,"description":null},{"name":"unit","type":"string","required":false,"description":"Unit id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":270},{"name":"doorloop_post_task_update","title":"Post an update on a task","description":"WRITE: post a message on an existing task and optionally change its status, priority, due date or assignees. Each call adds a new update. Notifications are off unless you set them. DoorLoop API: POST /tasks/update.","inputs":[{"name":"assigned_to_users","type":"array","required":false,"description":"User ids to assign."},{"name":"due_date","type":"string","required":false,"description":"New due date (yyyy-mm-dd)."},{"name":"message","type":"string","required":true,"description":"Update message."},{"name":"notify_assignees","type":"boolean","required":false,"description":"Notify the assigned users. Default: no."},{"name":"notify_tenant","type":"boolean","required":false,"description":"Notify the tenant. Default: no."},{"name":"priority","type":"string","required":false,"description":null},{"name":"status","type":"string","required":false,"description":null},{"name":"task_id","type":"string","required":true,"description":"Task id (from doorloop_list_tasks)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":160}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T13:04:38.000Z","track":"remote","endpoint":"https://doorloop.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":"doorloop.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_01a1af8f-01e3-79e0-8483-1059a7b2f9d1","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-doorloop/doorloop#chg-chg_01a1af8f-01e3-79e0-8483-1059a7b2f9d1"},{"id":"chg_01a19aea-e5c8-7ea3-91a2-0f2f19e342b4","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-doorloop/doorloop#chg-chg_01a19aea-e5c8-7ea3-91a2-0f2f19e342b4"},{"id":"chg_01a19aea-e5c9-7e53-a00b-e12962178748","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop#chg-chg_01a19aea-e5c9-7e53-a00b-e12962178748"},{"id":"chg_01a19aea-e5ca-742d-aa1f-2a1da4886e1f","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-doorloop/doorloop#chg-chg_01a19aea-e5ca-742d-aa1f-2a1da4886e1f"},{"id":"chg_01a19aea-e5ca-78c8-a7ae-bb796245df80","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-doorloop/doorloop#chg-chg_01a19aea-e5ca-78c8-a7ae-bb796245df80"},{"id":"chg_01a19aea-e5ca-7ce8-a9cc-9a3eb2f99a2c","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop#chg-chg_01a19aea-e5ca-7ce8-a9cc-9a3eb2f99a2c"},{"id":"chg_01a19aea-e5cb-7191-b5ff-816adc5d1b9f","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-doorloop/doorloop#chg-chg_01a19aea-e5cb-7191-b5ff-816adc5d1b9f"},{"id":"chg_01a19aea-e5cb-776a-91bc-1865cb1b2859","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-doorloop/doorloop#chg-chg_01a19aea-e5cb-776a-91bc-1865cb1b2859"},{"id":"chg_01a19aea-e5cb-7c67-b6e6-b3ae22bdbe73","kind":"score.total_changed","summary":"Trust score (65 → 18)","materiality":"functional","direction":"regression","scoreDelta":-47,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop#chg-chg_01a19aea-e5cb-7c67-b6e6-b3ae22bdbe73"},{"id":"chg_01a195c6-d3fb-7360-a34d-83253565356a","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-doorloop/doorloop#chg-chg_01a195c6-d3fb-7360-a34d-83253565356a"},{"id":"chg_01a195c6-d3fc-7069-acb7-4e20aa1b9d12","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop#chg-chg_01a195c6-d3fc-7069-acb7-4e20aa1b9d12"},{"id":"chg_01a193fb-efdc-7e94-b6f0-6f6d06c0447a","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-doorloop/doorloop#chg-chg_01a193fb-efdc-7e94-b6f0-6f6d06c0447a"},{"id":"chg_01a19242-ec59-7aca-aa90-0091fc7b1d1d","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-doorloop/doorloop#chg-chg_01a19242-ec59-7aca-aa90-0091fc7b1d1d"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop","markdown":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-doorloop/doorloop.xml","external":[{"label":"Remote endpoint","href":"https://doorloop.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/doorloop/"}]}}