Users, organizations, roles, permissions, applications and feature flags.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add existing users to an organization, optionally with roles and permissions. Reversible by removing them. Kinde: POST /api/v1/organizations/{org_code}/users.
The users to add.
The organization's code.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Add existing users to an organization, optionally with roles and permissions. Reversible by removing them. Kinde: POST /api/v1/organizations/{org_code}/users.
| Argument | Type | Description |
|---|---|---|
| users* | array | The users to add. |
| org_code* | string | The organization's code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code",
"users"
],
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The user's id."
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "Role keys to grant on join."
},
"permissions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Permission keys to grant on join."
}
}
},
"description": "The users to add."
},
"org_code": {
"type": "string",
"description": "The organization's code."
}
}
}Create a new organization (tenant) in the business. Kinde: POST /api/v1/organization.
| Argument | Type | Description |
|---|---|---|
| name* | string | The organization's display name. |
| external_id | string | Your own id for this organization. |
| feature_flags | object | Feature-flag overrides to set on creation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The organization's display name."
},
"external_id": {
"type": "string",
"description": "Your own id for this organization."
},
"feature_flags": {
"type": "object",
"description": "Feature-flag overrides to set on creation.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
}
}Create a permission that roles and users can hold. Kinde: POST /api/v1/permissions.
| Argument | Type | Description |
|---|---|---|
| key* | string | The permission's key, used in tokens. |
| name* | string | The permission's display name. |
| description | string | What the permission allows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"key"
],
"properties": {
"key": {
"type": "string",
"description": "The permission's key, used in tokens."
},
"name": {
"type": "string",
"description": "The permission's display name."
},
"description": {
"type": "string",
"description": "What the permission allows."
}
}
}Create a role that can then be granted to users. Kinde: POST /api/v1/roles.
| Argument | Type | Description |
|---|---|---|
| key* | string | The role's key, used in tokens. |
| name* | string | The role's display name. |
| description | string | What the role is for. |
| is_default_role | boolean | Grant this role to new users automatically. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"key"
],
"properties": {
"key": {
"type": "string",
"description": "The role's key, used in tokens."
},
"name": {
"type": "string",
"description": "The role's display name."
},
"description": {
"type": "string",
"description": "What the role is for."
},
"is_default_role": {
"type": "boolean",
"description": "Grant this role to new users automatically."
}
}
}Fetch a single application by id, including its client id and login URLs. Kinde: GET /api/v1/applications/{application_id}.
| Argument | Type | Description |
|---|---|---|
| application_id* | string | The application's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"application_id"
],
"properties": {
"application_id": {
"type": "string",
"description": "The application's id."
}
}
}Fetch the Kinde business this token belongs to — its name, industry and timezone. A cheap way to confirm the credentials and audience are right. Kinde: GET /api/v1/business.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Fetch a single organization by its org code. Kinde: GET /api/v1/organization.
| Argument | Type | Description |
|---|---|---|
| org_code* | string | The organization's code, e.g. org_1234abcd. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code"
],
"properties": {
"org_code": {
"type": "string",
"description": "The organization's code, e.g. org_1234abcd."
}
}
}Fetch a single user by id, optionally expanded with their organizations and identities. Kinde: GET /api/v1/user.
| Argument | Type | Description |
|---|---|---|
| expand | string | Comma-separated extras, e.g. organizations,identities. |
| user_id* | string | The user's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_id"
],
"properties": {
"expand": {
"type": "string",
"description": "Comma-separated extras, e.g. organizations,identities."
},
"user_id": {
"type": "string",
"description": "The user's id."
}
}
}List the permissions one user holds in one organization. Kinde: GET /api/v1/organizations/{org_code}/users/{user_id}/permissions.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | The user's id. |
| org_code* | string | The organization's code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code",
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "The user's id."
},
"org_code": {
"type": "string",
"description": "The organization's code."
}
}
}List the roles one user holds in one organization — the direct answer to 'what can this person do here?'. Kinde: GET /api/v1/organizations/{org_code}/users/{user_id}/roles.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | The user's id. |
| org_code* | string | The organization's code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code",
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "The user's id."
},
"org_code": {
"type": "string",
"description": "The organization's code."
}
}
}Give one user a permission within one organization. Reversible. Kinde: POST /api/v1/organizations/{org_code}/users/{user_id}/permissions.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | The user's id. |
| org_code* | string | The organization's code. |
| permission_id* | string | The permission's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code",
"user_id",
"permission_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "The user's id."
},
"org_code": {
"type": "string",
"description": "The organization's code."
},
"permission_id": {
"type": "string",
"description": "The permission's id."
}
}
}Give one user a role within one organization. Reversible with kinde_revoke_user_role_in_organization. Kinde: POST /api/v1/organizations/{org_code}/users/{user_id}/roles.
| Argument | Type | Description |
|---|---|---|
| role_id* | string | The role's id. |
| user_id* | string | The user's id. |
| org_code* | string | The organization's code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code",
"user_id",
"role_id"
],
"properties": {
"role_id": {
"type": "string",
"description": "The role's id."
},
"user_id": {
"type": "string",
"description": "The user's id."
},
"org_code": {
"type": "string",
"description": "The organization's code."
}
}
}List the APIs registered as token audiences. Kinde: GET /api/v1/apis.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the applications registered in the business, with their types. Kinde: GET /api/v1/applications.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order, e.g. name_asc or name_desc. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"type": "string",
"description": "Sort order, e.g. name_asc or name_desc."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}List the feature flags set at the environment level, with their values. Kinde: GET /api/v1/environment/feature_flags.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the feature-flag overrides set for one organization. Kinde: GET /api/v1/organizations/{org_code}/feature_flags.
| Argument | Type | Description |
|---|---|---|
| org_code* | string | The organization's code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code"
],
"properties": {
"org_code": {
"type": "string",
"description": "The organization's code."
}
}
}List the users belonging to one organization, optionally filtered by the permissions or roles they hold. Kinde: GET /api/v1/organizations/{org_code}/users.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order, e.g. name_asc or name_desc. |
| roles | string | Only users holding these roles. |
| org_code* | string | The organization's code. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
| permissions | string | Only users holding these permissions. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"org_code"
],
"properties": {
"sort": {
"type": "string",
"description": "Sort order, e.g. name_asc or name_desc."
},
"roles": {
"type": "string",
"description": "Only users holding these roles."
},
"org_code": {
"type": "string",
"description": "The organization's code."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
},
"permissions": {
"type": "string",
"description": "Only users holding these permissions."
}
}
}List the organizations (tenants) in the business. Kinde: GET /api/v1/organizations.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order, e.g. name_asc or name_desc. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"type": "string",
"description": "Sort order, e.g. name_asc or name_desc."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}List the permissions defined in the business. Kinde: GET /api/v1/permissions.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order, e.g. name_asc or name_desc. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"type": "string",
"description": "Sort order, e.g. name_asc or name_desc."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}List the permissions attached to one role. Kinde: GET /api/v1/roles/{role_id}/permissions.
| Argument | Type | Description |
|---|---|---|
| role_id* | string | The role's id. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"role_id"
],
"properties": {
"role_id": {
"type": "string",
"description": "The role's id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}List the roles defined in the business. Kinde: GET /api/v1/roles.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order, e.g. name_asc or name_desc. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"type": "string",
"description": "Sort order, e.g. name_asc or name_desc."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}List marketing subscribers. Kinde: GET /api/v1/subscribers.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order, e.g. name_asc or name_desc. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"type": "string",
"description": "Sort order, e.g. name_asc or name_desc."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}List users in the business, optionally narrowed by email or user id. Kinde: GET /api/v1/users.
| Argument | Type | Description |
|---|---|---|
| string | Only the user with this email address. | |
| expand | string | Comma-separated extras to include, e.g. organizations,identities. |
| user_id | string | Only this user id. |
| page_size | integer | Page size, 1-100. |
| next_token | string | Cursor from the previous page's next_token. Omit for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"description": "Only the user with this email address."
},
"expand": {
"type": "string",
"description": "Comma-separated extras to include, e.g. organizations,identities."
},
"user_id": {
"type": "string",
"description": "Only this user id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"next_token": {
"type": "string",
"description": "Cursor from the previous page's next_token. Omit for the first page."
}
}
}