# RemoteLock MCP by usefulapi (remote · remotelock.usefulapi.io)

Read RemoteLock devices and guests; manage door access and physically lock or unlock doors.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `remotelock.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-remotelock/remotelock.md), [page](https://verifymcp.io/servers/io-usefulapi-remotelock/remotelock)

## Channel facts

- Endpoint: `https://remotelock.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.6.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - 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.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the RemoteLock MCP by usefulapi server?

RemoteLock MCP by usefulapi is a hosted endpoint at https://remotelock.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-remotelock 'https://remotelock.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-remotelock": {
      "url": "https://remotelock.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-remotelock": {
      "type": "http",
      "url": "https://remotelock.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-remotelock]
url = "https://remotelock.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-remotelock": {
      "type": "remote",
      "url": "https://remotelock.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-remotelock --url 'https://remotelock.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-remotelock:
    url: "https://remotelock.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-remotelock": {
      "Transport": "http",
      "Url": "https://remotelock.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-remotelock -t streamable-http -u 'https://remotelock.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-remotelock": {
      "type": "http",
      "url": "https://remotelock.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-01 (score 18, −48)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-31 (score 66, +3)

- [security improvement] Authorization: partial → pass
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] MCP protocol: fail → pass
- [functional] New prompt “check_lock_status_and_battery”
- [functional] New prompt “create_time_limited_guest_access”
- [functional] New prompt “deactivate_a_former_guest_or_contractor”
- [functional] New prompt “review_who_can_open_a_door”
- [functional] New prompt “unlock_a_specifically_requested_door”
- [functional] MCP protocol version: 2025-06-18 → 2025-11-25
- [functional] Server version: 1.2.0 → 1.4.0
- [functional] Server version: 1.1.0 → 1.2.0
- [functional] Server version: 1.0.1 → 1.1.0

### 2026-10-30 (score 63)

First indexed and scored.

## MCP tools (20)

### `remotelock_get_account` (~40 tokens)

Get account

The RemoteLock account these credentials belong to: name, plan limits and settings. Use it to confirm which account is connected. GET /account.

### `remotelock_list_locations` (~101 tokens)

List locations

List the account's locations (properties/sites) with address and time zone. Use the ids to filter devices. GET /locations.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).
- `sort` (string): Sort order (default name ascending); a leading - is descending.

### `remotelock_get_location` (~36 tokens)

Get location

One location by id. GET /locations/{id}.

Input parameters:

- `location_id` (string, required): RemoteLock location id (UUID).

### `remotelock_list_devices` (~164 tokens)

List devices (locks)

List devices: locks, access-control doors, thermostats, etc., with name, model, battery/connectivity state, lock state and location. Filter by type (e.g. lock) or location. GET /devices.

Input parameters:

- `ids` (array): Only these device ids.
- `location_id` (string): Only devices of this location id.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).
- `sort` (string): Sort order (default created_at ascending); a leading - is descending.
- `type` (array): Only these device types, e.g. ["lock"].

### `remotelock_get_device` (~60 tokens)

Get device

One device (lock) by id with its full state: connectivity, battery/power, lock state, auto-lock settings, model and location. GET /devices/{id}.

Input parameters:

- `device_id` (string, required): RemoteLock device id (UUID).

### `remotelock_lock_device` (~61 tokens)

Lock a lock

WRITE: sends the lock command to a lock (it locks the door). Locking an already locked door changes nothing. PUT /devices/{id}/lock.

Input parameters:

- `device_id` (string, required): RemoteLock device id (UUID) of the lock.

### `remotelock_unlock_device` (~97 tokens)

Unlock a lock

WRITE, SECURITY-SENSITIVE: sends the unlock command to a lock, which physically unlocks the door. Only call it when the user explicitly asked to unlock this specific door, and set confirm to true. PUT /devices/{id}/unlock.

Input parameters:

- `confirm` (boolean, required): Must be true: the user explicitly asked to unlock this door.
- `device_id` (string, required): RemoteLock device id (UUID) of the lock.

### `remotelock_list_access_persons` (~168 tokens)

List access users and guests

List the people who can open doors: access users (permanent) and access guests (time-limited), with name, email, status, validity window and their PIN / card number. By default only current and upcoming people; pass status to include expired or deactivated. GET /access_persons.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).
- `sort` (string): Sort order (default created_at ascending); a leading - is descending.
- `status` (array): Statuses to include (default current and upcoming).
- `type` (string): Only permanent users or only guests.

### `remotelock_get_access_person` (~55 tokens)

Get access user or guest

One access user or guest by id, with status, validity window and PIN / card number. GET /access_persons/{id}.

Input parameters:

- `access_person_id` (string, required): RemoteLock access person id (UUID).

### `remotelock_create_access_user` (~204 tokens)

Create a permanent access user

WRITE: creates a permanent access user (an employee, resident or owner) with a PIN and/or card. It creates the person only; use remotelock_grant_access to give them doors. The reply includes the PIN. Check remotelock_list_access_persons first to avoid duplicates. POST /access_persons.

Input parameters:

- `card_number` (string): Prox card number, if the person uses a card.
- `department` (string): Department or group label.
- `email` (string): Email address (RemoteLock can email the access instructions).
- `generate_pin` (boolean): true: RemoteLock generates a random PIN (returned in the reply).
- `name` (string, required): Full name.
- `phone` (string): Phone in E.164 format, e.g. +14155551234.
- `pin` (string): A PIN of 4-10 digits. Omit and set generate_pin to let RemoteLock pick one.

### `remotelock_create_access_guest` (~256 tokens)

Create a time-limited access guest

WRITE: creates an access guest whose PIN/card only works between starts_at and ends_at (local time of the lock). It creates the person only; use remotelock_grant_access to give them doors. The reply includes the PIN. POST /access_persons.

Input parameters:

- `card_number` (string): Prox card number, if the person uses a card.
- `email` (string): Email address (RemoteLock can email the access instructions).
- `ends_at` (string, required): Local date-time without a timezone, e.g. 2026-12-24T16:00 (read in the lock's time zone).
- `generate_pin` (boolean): true: RemoteLock generates a random PIN (returned in the reply).
- `name` (string, required): Full name.
- `phone` (string): Phone in E.164 format, e.g. +14155551234.
- `pin` (string): A PIN of 4-10 digits. Omit and set generate_pin to let RemoteLock pick one.
- `starts_at` (string, required): Local date-time without a timezone, e.g. 2026-12-24T16:00 (read in the lock's time zone).

### `remotelock_deactivate_access_person` (~85 tokens)

Deactivate an access user or guest

WRITE: deactivates an access user or guest, so their PIN/card stops working on every door. The person stays in the account (status deactivated) and is not deleted. Only do it when the user asked. PUT /access_persons/{id}/deactivate.

Input parameters:

- `access_person_id` (string, required): RemoteLock access person id (UUID).

### `remotelock_list_person_accesses` (~107 tokens)

List a person's door access

List the doors, door groups and locations one access user or guest can open, with sync state per device. GET /access_persons/{id}/accesses.

Input parameters:

- `access_person_id` (string, required): RemoteLock access person id (UUID).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).

### `remotelock_list_device_accesses` (~123 tokens)

List who can open a lock

List the access users and guests who have access to one lock (and whether the PIN is synced to it). GET /devices/{id}/access_person_accesses.

Input parameters:

- `device_id` (string, required): RemoteLock device id (UUID) of the lock.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).
- `person_type` (string): Only permanent users or only guests.

### `remotelock_grant_access` (~260 tokens)

Grant door access

WRITE: gives an access user or guest access to a lock, a door group or a location, so their PIN/card opens it. RemoteLock then syncs the code to the lock(s). Optionally limit the hours with an access schedule (access_schedule_id, for recurring daily hours) or override a guest's start/end time of day on this door. POST /access_persons/{id}/accesses.

Input parameters:

- `access_person_id` (string, required): RemoteLock access person id (UUID).
- `access_schedule_id` (string): Access schedule id, to limit the hours of a permanent user.
- `accessible_id` (string, required): Id (UUID) of the lock, door group or location to grant.
- `accessible_type` (string, required): What accessible_id is: lock, door_group, location, ...
- `guest_end_time` (string): Guests only: overrides the time of day the guest's access ends on this door, hh:mm. It is not a daily window: use access_schedule_id for recurring hours.
- `guest_start_time` (string): Guests only: overrides the time of day the guest's access starts on this door, hh:mm. It is not a daily window: use access_schedule_id for recurring hours.

### `remotelock_revoke_access` (~114 tokens)

Revoke door access

WRITE: removes one access grant (an id from remotelock_list_person_accesses), so the person's PIN/card no longer opens that door, door group or location. The person itself stays. Only do it when the user asked. DELETE /access_persons/{id}/accesses/{access_id}.

Input parameters:

- `access_id` (string, required): The grant id (the id of an item from remotelock_list_person_accesses).
- `access_person_id` (string, required): RemoteLock access person id (UUID).

### `remotelock_list_door_groups` (~93 tokens)

List door groups

List door groups (named sets of locks you can grant access to in one step). GET /groups.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).
- `sort` (string): Sort order (default created_at ascending).

### `remotelock_list_group_items` (~93 tokens)

List the locks in a door group

List the items (locks) that belong to one door group. GET /groups/{id}/items.

Input parameters:

- `group_id` (string, required): RemoteLock door group id (UUID).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).

### `remotelock_list_notifications` (~115 tokens)

List notifications (activity)

List notifications sent by notification subscriptions: each names the lock (publisher), the event type (unlocked, access_denied, jammed, power_level_low, ...) and an event_id. Only events that match a subscription appear. Get details with remotelock_get_event. GET /notifications.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 25).

### `remotelock_get_event` (~71 tokens)

Get event

One event by id (for example from a notification): type, time, source, status, the lock and the person involved, and the method used. The PIN or card used is not returned. GET /events/{id}.

Input parameters:

- `event_id` (string, required): RemoteLock event id (UUID).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-remotelock/remotelock#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 18
- 2026-10-31: 66
- 2026-10-30: 63

## Common questions

### What is the RemoteLock MCP by usefulapi server?

RemoteLock MCP by usefulapi is listed in the public MCP registry as io.usefulapi/remotelock. Read RemoteLock devices and guests; manage door access and physically lock or unlock doors. This page covers its hosted endpoint (https://remotelock.usefulapi.io/mcp).

### Is the RemoteLock MCP by usefulapi server safe to use?

RemoteLock MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the RemoteLock MCP by usefulapi server expose?

RemoteLock MCP by usefulapi exposes 20 tools: remotelock_get_account, remotelock_list_locations, remotelock_get_location, remotelock_list_devices, remotelock_get_device, and 15 more. Their descriptions and schemas cost roughly 2,303 tokens of context every time the server is loaded.

### Does the RemoteLock MCP by usefulapi server require authentication?

Its publisher declares no required credentials for RemoteLock MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the RemoteLock MCP by usefulapi server still maintained?

RemoteLock MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://remotelock.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/remotelock/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-remotelock/remotelock.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-remotelock/remotelock.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-remotelock/remotelock
