RemoteLock MCP by usefulapi

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

我该使用它吗

质量与安全性

A
描述质量
98%
模式完整度
94%
命名质量
77%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(3)

  • LOWTool 'remotelock_deactivate_access_person' name length outside 3-30 range在 remotelock_deactivate_access_person 中
  • LOWTool 'remotelock_list_person_accesses' name length outside 3-30 range在 remotelock_list_person_accesses 中
  • LOWTool 'remotelock_list_device_accesses' name length outside 3-30 range在 remotelock_list_device_accesses 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,687token 数(工具定义)
~1.6 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.66%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

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

远程端点

https://remotelock.usefulapi.io/mcpstreamable-http

它能做什么

工具清单

工具(20)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢remotelock_get_account

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

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_locations(sort, page, per_page)

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

输入模式

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Sort order (default name ascending); a leading - is descending.",
      "type": "string",
      "enum": [
        "name",
        "-name",
        "created_at",
        "-created_at"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_get_location(location_id)

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

输入模式

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock location id (UUID)."
    }
  },
  "required": [
    "location_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_devices(type, location_id, ids, sort, page, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Only these device types, e.g. [\"lock\"].",
      "maxItems": 13,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "lock",
          "zwave_lock",
          "connector_lock",
          "schlage_home_lock",
          "igloo_lock",
          "acs_door",
          "acs_elevator",
          "acs_elevator_floor",
          "resort_lock",
          "thermostat",
          "connector_thermostat",
          "connector_sensor",
          "power_plug"
        ]
      }
    },
    "location_id": {
      "description": "Only devices of this location id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "ids": {
      "description": "Only these device ids.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "sort": {
      "description": "Sort order (default created_at ascending); a leading - is descending.",
      "type": "string",
      "enum": [
        "created_at",
        "-created_at",
        "name",
        "-name"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_get_device(device_id)

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

输入模式

{
  "type": "object",
  "properties": {
    "device_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock device id (UUID)."
    }
  },
  "required": [
    "device_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴remotelock_lock_device(device_id)

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

输入模式

{
  "type": "object",
  "properties": {
    "device_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock device id (UUID) of the lock."
    }
  },
  "required": [
    "device_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴remotelock_unlock_device(device_id, confirm)

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.

输入模式

{
  "type": "object",
  "properties": {
    "device_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock device id (UUID) of the lock."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user explicitly asked to unlock this door."
    }
  },
  "required": [
    "device_id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_access_persons(type, status, sort, page, per_page)

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.

输入模式

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Only permanent users or only guests.",
      "type": "string",
      "enum": [
        "access_user",
        "access_guest"
      ]
    },
    "status": {
      "description": "Statuses to include (default current and upcoming).",
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "current",
          "upcoming",
          "expired",
          "deactivated"
        ]
      }
    },
    "sort": {
      "description": "Sort order (default created_at ascending); a leading - is descending.",
      "type": "string",
      "enum": [
        "created_at",
        "-created_at",
        "updated_at",
        "-updated_at",
        "name",
        "-name",
        "department",
        "-department",
        "starts_at",
        "-starts_at",
        "ends_at",
        "-ends_at"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_get_access_person(access_person_id)

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

输入模式

{
  "type": "object",
  "properties": {
    "access_person_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock access person id (UUID)."
    }
  },
  "required": [
    "access_person_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡remotelock_create_access_user(name, email, phone, pin, generate_pin, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Full name."
    },
    "email": {
      "description": "Email address (RemoteLock can email the access instructions).",
      "type": "string",
      "maxLength": 320,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "Phone in E.164 format, e.g. +14155551234.",
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "pin": {
      "description": "A PIN of 4-10 digits. Omit and set generate_pin to let RemoteLock pick one.",
      "type": "string",
      "pattern": "^\\d{4,10}$"
    },
    "generate_pin": {
      "description": "true: RemoteLock generates a random PIN (returned in the reply).",
      "type": "boolean"
    },
    "card_number": {
      "description": "Prox card number, if the person uses a card.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "pattern": "^[0-9A-Za-z]+$"
    },
    "department": {
      "description": "Department or group label.",
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡remotelock_create_access_guest(name, email, phone, pin, generate_pin, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Full name."
    },
    "email": {
      "description": "Email address (RemoteLock can email the access instructions).",
      "type": "string",
      "maxLength": 320,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "Phone in E.164 format, e.g. +14155551234.",
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "pin": {
      "description": "A PIN of 4-10 digits. Omit and set generate_pin to let RemoteLock pick one.",
      "type": "string",
      "pattern": "^\\d{4,10}$"
    },
    "generate_pin": {
      "description": "true: RemoteLock generates a random PIN (returned in the reply).",
      "type": "boolean"
    },
    "card_number": {
      "description": "Prox card number, if the person uses a card.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "pattern": "^[0-9A-Za-z]+$"
    },
    "starts_at": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?$",
      "description": "Local date-time without a timezone, e.g. 2026-12-24T16:00 (read in the lock's time zone)."
    },
    "ends_at": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?$",
      "description": "Local date-time without a timezone, e.g. 2026-12-24T16:00 (read in the lock's time zone)."
    }
  },
  "required": [
    "name",
    "starts_at",
    "ends_at"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴remotelock_deactivate_access_person(access_person_id)

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.

输入模式

{
  "type": "object",
  "properties": {
    "access_person_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock access person id (UUID)."
    }
  },
  "required": [
    "access_person_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_person_accesses(access_person_id, page, per_page)

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

输入模式

{
  "type": "object",
  "properties": {
    "access_person_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock access person id (UUID)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "required": [
    "access_person_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_device_accesses(device_id, person_type, page, per_page)

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.

输入模式

{
  "type": "object",
  "properties": {
    "device_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock device id (UUID) of the lock."
    },
    "person_type": {
      "description": "Only permanent users or only guests.",
      "type": "string",
      "enum": [
        "access_user",
        "access_guest"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "required": [
    "device_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡remotelock_grant_access(access_person_id, accessible_id, accessible_type, access_schedule_id, guest_start_time, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "access_person_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock access person id (UUID)."
    },
    "accessible_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Id (UUID) of the lock, door group or location to grant."
    },
    "accessible_type": {
      "type": "string",
      "enum": [
        "lock",
        "door_group",
        "location",
        "acs_door",
        "acs_elevator_floor",
        "connector_lock",
        "zwave_lock",
        "schlage_home_lock",
        "igloo_lock"
      ],
      "description": "What accessible_id is: lock, door_group, location, ..."
    },
    "access_schedule_id": {
      "description": "Access schedule id, to limit the hours of a permanent user.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "guest_start_time": {
      "description": "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.",
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
    },
    "guest_end_time": {
      "description": "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.",
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
    }
  },
  "required": [
    "access_person_id",
    "accessible_id",
    "accessible_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴remotelock_revoke_access(access_person_id, access_id)

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}.

输入模式

{
  "type": "object",
  "properties": {
    "access_person_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock access person id (UUID)."
    },
    "access_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The grant id (the id of an item from remotelock_list_person_accesses)."
    }
  },
  "required": [
    "access_person_id",
    "access_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_door_groups(sort, page, per_page)

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

输入模式

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Sort order (default created_at ascending).",
      "type": "string",
      "enum": [
        "name",
        "-name",
        "created_at",
        "-created_at"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_group_items(group_id, page, per_page)

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

输入模式

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock door group id (UUID)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "required": [
    "group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_list_notifications(page, per_page)

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.

输入模式

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢remotelock_get_event(event_id)

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}.

输入模式

{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "RemoteLock event id (UUID)."
    }
  },
  "required": [
    "event_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本20 个工具