Kisi MCP by usefulapi
Server Details
Read Kisi places, doors, users, groups, access rights and access logs (no unlocking).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
20 toolskisi_get_current_userGet the current userRead-onlyInspect
The Kisi user the API key belongs to (id, name, email, organization). Good first call. GET /user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
kisi_get_event_setGet an event set pageRead-onlyInspect
Read an event set from kisi_search_events: its status and events. Pass the previous page's cursor for the next page. GET /event_sets/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Events per page (default 50). | |
| cursor | No | The cursor from the previous page. | |
| event_set_id | Yes | The event set id (numeric). |
kisi_get_groupGet an access groupRead-onlyInspect
One access group by id (name, description, place, member/lock counts, restrictions). GET /groups/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | The group id (numeric). |
kisi_get_lockGet a lock (door)Read-onlyInspect
One lock/door by id: online/unlocked/locked-down state, place, floor, settings. GET /locks/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| lock_id | Yes | The lock id (numeric). |
kisi_get_organizationGet the organizationRead-onlyInspect
The current Kisi organization (name, domain, settings summary). GET /organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
kisi_get_placeGet a placeRead-onlyInspect
One place by id, including lockdown state. GET /places/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | Yes | The place id (numeric). |
kisi_get_userGet a userRead-onlyInspect
One user by id. GET /users/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The user id (numeric). |
kisi_list_cardsList access cardsRead-onlyInspect
List access cards with status (activated/deactivated/unassigned), assignee and last use. GET /cards.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated list of ids to fetch. | |
| sort | No | Sort by last use. | |
| limit | No | Max results to return (1-250). | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| status | No | Filter by status. | |
| user_id | No | Only cards of this user. |
kisi_list_controllersList controllersRead-onlyInspect
Kisi controllers (door hardware hubs) with online/offline status. Filter by place, lock or status. GET /controllers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over name, device id and token. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| status | No | Filter by status. | |
| lock_id | No | Only the controller of this lock. | |
| place_id | No | Only controllers in this place. |
kisi_list_event_typesList event typesRead-onlyInspect
All event type names usable as the type filter of kisi_search_events (e.g. lock.unlock). GET /events/types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
kisi_list_group_locksList a group's locksRead-onlyInspect
The locks/doors an access group opens. GET /group_locks?group_id=.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over lock name. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| group_id | Yes | The group id (numeric). |
kisi_list_groupsList access groupsRead-onlyInspect
List access groups (who-can-open-what bundles of doors). Filter by place or by a lock to see which groups open that door. GET /groups.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated list of ids to fetch. | |
| sort | No | Sort order. | |
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over group name. | |
| scope | No | Organization-wide or place-scoped groups. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| lock_id | No | Only groups that include this lock. | |
| place_id | No | Only groups of this place. |
kisi_list_locksList locks (doors)Read-onlyInspect
List locks/doors with their state: online, unlocked, locked_down, configured, place and floor. Filter to find offline or locked-down doors. GET /locks.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated list of ids to fetch. | |
| sort | No | Sort order. | |
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over lock name. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| online | No | Filter by online (true) / offline (false). | |
| floor_id | No | Only locks on this floor. | |
| place_id | No | Only locks in this place. | |
| unlocked | No | Filter by currently unlocked (true) / locked (false). | |
| configured | No | Filter by whether the lock is configured. | |
| locked_down | No | Filter by lockdown state. |
kisi_list_placesList placesRead-onlyInspect
List places (sites/buildings) in the organization with address, time zone and lock/member counts. GET /places.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated list of ids to fetch. | |
| sort | No | Sort order. | |
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over place name. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). |
kisi_list_presencesList presences at a placeRead-onlyInspect
Who was present at a place on a given day (derived from unlocks): actor, first/last unlock, last door. GET /presences.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The day: a date (2026-10-08) or an RFC 3339 date-time with offset (2026-10-08T09:00:00+02:00). Kisi reads it as a day in the place's time zone; a bare date is sent as noon UTC of that day. | |
| limit | No | Max results to return (1-250). | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| place_id | Yes | The place id (numeric). |
kisi_list_readersList readersRead-onlyInspect
Kisi readers (card/phone readers at doors) with model and online/offline status. GET /readers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over name, device id and token. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| status | No | Filter by status. | |
| lock_id | No | Only readers of this lock. | |
| place_id | No | Only readers in this place. |
kisi_list_role_assignmentsList role assignments (access rights)Read-onlyInspect
Who holds which role where: a user/team/guest's role on the organization, a place or a group (group members = door access). Filter by user, group, place or role. GET /role_assignments.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-250). | |
| query | No | Free-text search over user email and name. | |
| scope | No | Filter by scope. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| role_id | No | Filter by role id, e.g. group_basic, group_manager, place_owner, organization_administrator. | |
| user_id | No | Only assignments of this user. | |
| group_id | No | Only assignments on this group. | |
| place_id | No | Only assignments on this place. |
kisi_list_schedulesList schedulesRead-onlyInspect
Time rules: when a group's access is allowed, when doors auto-unlock (unlock timer), first-to-arrive, elevator permit timers. Filter by consequence or by the group/lock it applies to. GET /schedules.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated list of ids to fetch. | |
| limit | No | Max results to return (1-250). | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| consequence | No | Filter by what the schedule does. | |
| scheduleable_id | No | Id of the group/lock/elevator stop (use with scheduleable_type). | |
| scheduleable_type | No | Type of the object (use with scheduleable_id). |
kisi_list_usersList usersRead-onlyInspect
List users (members) of the organization. Filter by group or place (users with access there), email, or free text over name/email/notes. Sort by last unlock. GET /users.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated list of ids to fetch. | |
| sort | No | Sort order; 'unlock' = by last unlock. | |
| No | Exact email filter. | ||
| limit | No | Max results to return (1-100). | |
| query | No | Free-text search over user email, name and notes. | |
| offset | No | Results to skip (offset paging; use pagination.next_offset). | |
| group_id | No | Only members of this group. | |
| place_id | No | Only users with access to this place. |
kisi_search_eventsSearch access eventsInspect
Search the access log (unlocks, denied attempts, lockdowns, admin changes) and return the first page. This CREATES a temporary saved search in Kisi (an event set, cursor-paginated, kept ~24 h); it changes no door, user or access right. Defaults to the past 90 days, the maximum width. If status is still in_progress or cursor is set, call kisi_get_event_set with the returned id. POST /event_sets.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Event type(s), comma-separated, e.g. lock.unlock (see kisi_list_event_types). | |
| success | No | Only successful (true) or failed/denied (false) events. | |
| actor_id | No | Only events by this actor (e.g. a user id). | |
| interval | No | ISO 8601 interval on event time, max 90 days: start/end (2026-10-01T00:00:00Z/2026-10-08T00:00:00Z), start/duration (2026-10-01T00:00:00Z/P7D) or duration/end (P1D/2026-10-08T00:00:00Z). | |
| place_id | No | Only events at this place. | |
| object_id | No | Only events about this object (e.g. a lock id). | |
| actor_type | No | Actor type (use with actor_id). | |
| object_type | No | Object type, e.g. Lock, Place, Group, User (use with object_id). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
20 tool updates
- First observed
kisi_get_current_user - First observed
kisi_get_event_set - First observed
kisi_get_group - First observed
kisi_get_lock - First observed
kisi_get_organization - First observed
kisi_get_place - First observed
kisi_get_user - First observed
kisi_list_cards - First observed
kisi_list_controllers - First observed
kisi_list_event_types - First observed
kisi_list_group_locks - First observed
kisi_list_groups - First observed
kisi_list_locks - First observed
kisi_list_places - First observed
kisi_list_presences - First observed
kisi_list_readers - First observed
kisi_list_role_assignments - First observed
kisi_list_schedules - First observed
kisi_list_users - First observed
kisi_search_events
Related MCP Connectors
Browse OfficeRnD members, bookings, memberships, invoices and tickets, with optional write access.
Read Checkout.com payments, disputes, reports and payouts.
Read Homebase locations, employees, shifts, timecards, labor costs and time clock status.
161Read Spruce Health contacts, conversations, messages, phone lines and team members (read-only).
241
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables read-only access to Crisp customer support, live chat, CRM, and helpdesk data, including conversations, contacts, knowledge base, campaigns, operators, visitors, and site settings, via the official REST API v1.MIT
- AlicenseNot gradedqualityDmaintenanceEnables read-only access to Bity cryptocurrency account balances, market data (ticker, order book, trades), and order history via the official API.MIT
- AlicenseCqualityAmaintenanceEnables Claude to query read-only Brivo access-control data—sites, access points, control panels, users, credentials, schedules, cameras, and more—through MCP tools. It exposes all read-only GET endpoints so users can inspect account information and door status in conversation without write or control actions.75MIT
- AlicenseAqualityBmaintenanceEnables read-only access to Benepass employee-web API, allowing users to view HSA accounts, investments, transactions, documents, and benefits without write operations.137 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.