pangolin_resources
Manage self-hosted Pangolin resources: create, update, delete, and list resources, site resources, users, roles, whitelists, targets, rules, tokens, mTLS certificates, and AI provider attachments.
Instructions
pangolin_resources covers the resources toolset (123 operations). Auth header Authorization Bearer. Self-hosted Pangolin CE only. Writes need confirm:true and PANGOLIN_ALLOW_WRITES=true. Omit confirm for a dry-run preview. Actions: add_client_site_resources: POST /client/{clientId}/site-resources. Add a machine client to multiple site resources at once. add_private_resource_clients: POST /private-resource/{resourceId}/clients/add. Add a single client to a site resource. Clients with a userId cannot be added. add_private_resource_roles: POST /private-resource/{resourceId}/roles/add. Add a single role to a site resource. add_private_resource_users: POST /private-resource/{resourceId}/users/add. Add a single user to a site resource. add_public_resource_roles: POST /public-resource/{resourceId}/roles/add. Add a single role to a resource. When the resource has an inline policy defined (no shared resource policy assigned), the role is added to the inline policy instead of directly to the resource. add_public_resource_users: POST /public-resource/{resourceId}/users/add. Add a single user to a resource. When the resource has an inline policy defined (no shared resource policy assigned), the user is added to the inline policy instead of directly to the resource. add_public_resource_whitelist: POST /public-resource/{resourceId}/whitelist/add. Add a single email to the resource whitelist. add_resource_ai_models: POST /resource/{resourceId}/ai-models/add. Add a single model to an inference resource allow/block selection. Requires at least one attached AI provider in select mode. The model must belong to a select-mode provider and its listType must match the provider catalog entry. listType defaults to allow. add_resource_ai_providers: POST /resource/{resourceId}/ai-providers/add. Add or replace a single AI provider attachment on an inference resource. The provider is attached in inherit mode, using its own allow/block lists. add_resource_roles: POST /resource/{resourceId}/roles/add. Add a single role to a resource. When the resource has an inline policy defined (no shared resource policy assigned), the role is added to the inline policy instead of directly to the resource. add_resource_users: POST /resource/{resourceId}/users/add. Add a single user to a resource. When the resource has an inline policy defined (no shared resource policy assigned), the user is added to the inline policy instead of directly to the resource. add_resource_whitelist: POST /resource/{resourceId}/whitelist/add. Add a single email to the resource whitelist. add_site_resource_ai_models: POST /site-resource/{siteResourceId}/ai-models/add. Add a single model to an inference site resource allow/block selection. Requires at least one attached AI provider in select mode. The model must belong to a select-mode provider and its listType must match the provider catalog entry. listType defaults to allow. add_site_resource_ai_providers: POST /site-resource/{siteResourceId}/ai-providers/add. Add or replace a single AI provider attachment on an inference site resource. The provider is attached in inherit mode, using its own allow/block lists. add_site_resource_clients: POST /site-resource/{siteResourceId}/clients/add. Add a single client to a site resource. Clients with a userId cannot be added. add_site_resource_roles: POST /site-resource/{siteResourceId}/roles/add. Add a single role to a site resource. add_site_resource_users: POST /site-resource/{siteResourceId}/users/add. Add a single user to a site resource. create_org_private_resource: PUT /org/{orgId}/private-resource. Create a new site resource. create_org_public_resource: PUT /org/{orgId}/public-resource. Create a resource. create_org_resource: PUT /org/{orgId}/resource. Create a resource. create_org_site_resource: PUT /org/{orgId}/site-resource. Create a new site resource. create_public_resource_access_token: POST /public-resource/{resourceId}/access-token. Generate a new access token for a resource. create_public_resource_mtls_certificate: PUT /public-resource/{resourceId}/mtls/certificate. Add a trusted CA certificate that clients must present a certificate signed by when mTLS is enabled on a resource. Accepts a PEM bundle; each certificate in the bundle is stored separately. When no shared resource policy is assigned, this updates the resource's inline policy. create_public_resource_rule: PUT /public-resource/{resourceId}/rule. Create a resource rule. create_public_resource_target: PUT /public-resource/{resourceId}/target. Create a target for a resource. create_resource_access_token: POST /resource/{resourceId}/access-token. Generate a new access token for a resource. create_resource_mtls_certificate: PUT /resource/{resourceId}/mtls/certificate. Add a trusted CA certificate that clients must present a certificate signed by when mTLS is enabled on a resource. Accepts a PEM bundle; each certificate in the bundle is stored separately. When no shared resource policy is assigned, this updates the resource's inline policy. create_resource_rule: PUT /resource/{resourceId}/rule. Create a resource rule. create_resource_target: PUT /resource/{resourceId}/target. Create a target for a resource. delete_private_resource: DELETE /private-resource/{siteResourceId}. Delete a site resource. delete_public_resource: DELETE /public-resource/{resourceId}. Delete a resource. delete_public_resource_mtls_certificate: DELETE /public-resource/{resourceId}/mtls/certificate/{mtlsCertificateId}. Remove a trusted CA certificate from a resource. If it is the last one, mTLS is disabled on the resource since it can no longer verify any client. When no shared resource policy is assigned, this updates the resource's inline policy. delete_public_resource_rule: DELETE /public-resource/{resourceId}/rule/{ruleId}. Delete a resource rule. delete_resource: DELETE /resource/{resourceId}. Delete a resource. delete_resource_mtls_certificate: DELETE /resource/{resourceId}/mtls/certificate/{mtlsCertificateId}. Remove a trusted CA certificate from a resource. If it is the last one, mTLS is disabled on the resource since it can no longer verify any client. When no shared resource policy is assigned, this updates the resource's inline policy. delete_resource_rule: DELETE /resource/{resourceId}/rule/{ruleId}. Delete a resource rule. delete_site_resource: DELETE /site-resource/{siteResourceId}. Delete a site resource. get_org_resource: GET /org/{orgId}/resource/{niceId}. Get a resource by orgId and niceId. NiceId is a readable ID for the resource and unique on a per org basis. get_org_site_resource_nice: GET /org/{orgId}/site/{siteId}/resource/nice/{niceId}. Get a specific site resource by niceId. get_private_resource: GET /private-resource/{siteResourceId}. Get a specific site resource by siteResourceId. get_public_resource: GET /public-resource/{resourceId}. Get a resource by resourceId. get_public_resource_policies: GET /public-resource/{resourceId}/policies. Get the inline and shared policies associated with a resource. get_public_resource_whitelist: GET /public-resource/{resourceId}/whitelist. Get the whitelist of emails for a specific resource. get_resource: GET /resource/{resourceId}. Get a resource by resourceId. get_resource_blueprint: GET /resource/{resourceId}/blueprint. Generate a blueprint YAML snippet that recreates this resource. get_resource_policies: GET /resource/{resourceId}/policies. Get the inline and shared policies associated with a resource. get_resource_whitelist: GET /resource/{resourceId}/whitelist. Get the whitelist of emails for a specific resource. get_site_resource: GET /site-resource/{siteResourceId}. Get a specific site resource by siteResourceId. get_site_resource_blueprint: GET /site-resource/{siteResourceId}/blueprint. Generate a blueprint YAML snippet that recreates this site resource. list_org_private_resources: GET /org/{orgId}/private-resources. List all site resources for an organization. list_org_public_resource_names: GET /org/{orgId}/public-resource-names. List all resource names for an organization. list_org_public_resources: GET /org/{orgId}/public-resources. List resources for an organization. list_org_resources: GET /org/{orgId}/resources. List resources for an organization. list_org_resources_names: GET /org/{orgId}/resources-names. List all resource names for an organization. list_org_site_private_resources: GET /org/{orgId}/site/{siteId}/private-resources. List site resources for a site. list_org_site_resources: GET /org/{orgId}/site/{siteId}/resources. List site resources for a site. list_org_site_resources_org_id: GET /org/{orgId}/site-resources. List all site resources for an organization. list_private_resource_clients: GET /private-resource/{resourceId}/clients. List all clients for a site resource. list_private_resource_roles: GET /private-resource/{resourceId}/roles. List all roles for a site resource. list_private_resource_users: GET /private-resource/{resourceId}/users. List all users for a site resource. list_public_resource_access_tokens: GET /public-resource/{resourceId}/access-tokens. List all access tokens for a resource. list_public_resource_mtls_certificates: GET /public-resource/{resourceId}/mtls/certificates. List the trusted CA certificates for a resource's mTLS. When no shared resource policy is assigned, these are the resource's inline policy certificates. list_public_resource_roles: GET /public-resource/{resourceId}/roles. List all roles for a resource. list_public_resource_rules: GET /public-resource/{resourceId}/rules. List rules for a resource. list_public_resource_targets: GET /public-resource/{resourceId}/targets. List targets for a resource. list_public_resource_users: GET /public-resource/{resourceId}/users. List all users for a resource. list_resource_access_tokens: GET /resource/{resourceId}/access-tokens. List all access tokens for a resource. list_resource_ai_models: GET /resource/{resourceId}/ai-models. List the models this resource has selected from its select-mode providers' allow/block lists. Providers in inherit mode are not represented here; they use their own lists. list_resource_ai_providers: GET /resource/{resourceId}/ai-providers. List AI providers attached to an inference resource, including each attachment's accessMode. list_resource_mtls_certificates: GET /resource/{resourceId}/mtls/certificates. List the trusted CA certificates for a resource's mTLS. When no shared resource policy is assigned, these are the resource's inline policy certificates. list_resource_roles: GET /resource/{resourceId}/roles. List all roles for a resource. list_resource_rules: GET /resource/{resourceId}/rules. List rules for a resource. list_resource_targets: GET /resource/{resourceId}/targets. List targets for a resource. list_resource_users: GET /resource/{resourceId}/users. List all users for a resource. list_site_resource_ai_models: GET /site-resource/{siteResourceId}/ai-models. List the models this site resource has selected from its select-mode providers' allow/block lists. Providers in inherit mode are not represented here; they use their own lists. list_site_resource_ai_providers: GET /site-resource/{siteResourceId}/ai-providers. List AI providers attached to an inference site resource, including each attachment's accessMode. list_site_resource_clients: GET /site-resource/{siteResourceId}/clients. List all clients for a site resource. list_site_resource_roles: GET /site-resource/{siteResourceId}/roles. List all roles for a site resource. list_site_resource_users: GET /site-resource/{siteResourceId}/users. List all users for a site resource. remove_private_resource_clients: POST /private-resource/{resourceId}/clients/remove. Remove a single client from a site resource. Clients with a userId cannot be removed. remove_private_resource_roles: POST /private-resource/{resourceId}/roles/remove. Remove a single role from a site resource. remove_private_resource_users: POST /private-resource/{resourceId}/users/remove. Remove a single user from a site resource. remove_public_resource_roles: POST /public-resource/{resourceId}/roles/remove. Remove a single role from a resource. remove_public_resource_users: POST /public-resource/{resourceId}/users/remove. Remove a single user from a resource. remove_public_resource_whitelist: POST /public-resource/{resourceId}/whitelist/remove. Remove a single email from the resource whitelist. remove_resource_ai_models: POST /resource/{resourceId}/ai-models/remove. Remove a single model from an inference resource allow/block list. Requires at least one attached AI provider. remove_resource_ai_providers: POST /resource/{resourceId}/ai-providers/remove. Remove an AI provider attachment from an inference resource. At least one provider must remain. remove_resource_roles: POST /resource/{resourceId}/roles/remove. Remove a single role from a resource. remove_resource_users: POST /resource/{resourceId}/users/remove. Remove a single user from a resource. remove_resource_whitelist: POST /resource/{resourceId}/whitelist/remove. Remove a single email from the resource whitelist. remove_site_resource_ai_models: POST /site-resource/{siteResourceId}/ai-models/remove. Remove a single model from an inference site resource allow/block list. Requires at least one attached AI provider. remove_site_resource_ai_providers: POST /site-resource/{siteResourceId}/ai-providers/remove. Remove an AI provider attachment from an inference site resource. At least one provider must remain. remove_site_resource_clients: POST /site-resource/{siteResourceId}/clients/remove. Remove a single client from a site resource. Clients with a userId cannot be removed. remove_site_resource_roles: POST /site-resource/{siteResourceId}/roles/remove. Remove a single role from a site resource. remove_site_resource_users: POST /site-resource/{siteResourceId}/users/remove. Remove a single user from a site resource. set_public_resource_header_auth: POST /public-resource/{resourceId}/header-auth. Set or update the header authentication for a resource. If user and password is not provided, it will remove the header authentication. set_public_resource_password: POST /public-resource/{resourceId}/password. Set the password for a resource. Setting the password to null will remove it. set_public_resource_pincode: POST /public-resource/{resourceId}/pincode. Set the PIN code for a resource. Setting the PIN code to null will remove it. set_resource_header_auth: POST /resource/{resourceId}/header-auth. Set or update the header authentication for a resource. If user and password is not provided, it will remove the header authentication. set_resource_password: POST /resource/{resourceId}/password. Set the password for a resource. Setting the password to null will remove it. set_resource_pincode: POST /resource/{resourceId}/pincode. Set the PIN code for a resource. Setting the PIN code to null will remove it. update_private_resource: POST /private-resource/{siteResourceId}. Update a site resource. update_private_resource_clients: POST /private-resource/{resourceId}/clients. Set clients for a site resource. This will replace all existing clients. Clients with a userId cannot be added. update_private_resource_roles: POST /private-resource/{resourceId}/roles. Set roles for a site resource. This will replace all existing roles. update_private_resource_users: POST /private-resource/{resourceId}/users. Set users for a site resource. This will replace all existing users. update_public_resource: POST /public-resource/{resourceId}. Update a resource. Policy fields (sso, mfa, pincode, password, whitelist) update the inline policy when no shared resource policy is assigned; when a shared policy is assigned those fields override the shared policy for this resource only. update_public_resource_roles: POST /public-resource/{resourceId}/roles. Set roles for a resource. This will replace all existing roles. When the resource has an inline policy defined (no shared resource policy assigned), roles are set on the inline policy instead of directly on the resource. update_public_resource_rule: POST /public-resource/{resourceId}/rule/{ruleId}. Update a resource rule. update_public_resource_users: POST /public-resource/{resourceId}/users. Set users for a resource. This will replace all existing users. When the resource has an inline policy defined (no shared resource policy assigned), users are set on the inline policy instead of directly on the resource. update_public_resource_whitelist: POST /public-resource/{resourceId}/whitelist. Set email whitelist for a resource. This will replace all existing emails. update_resource: POST /resource/{resourceId}. Update a resource. Policy fields (sso, mfa, pincode, password, whitelist) update the inline policy when no shared resource policy is assigned; when a shared policy is assigned those fields override the shared policy for this resource only. update_resource_ai_models: POST /resource/{resourceId}/ai-models. Replace the allow/block model selection for an inference resource. Requires at least one attached AI provider in select mode. Models must belong to a select-mode provider and their listType must match the provider catalog entry. An empty array clears the selection, which denies all models for select-mode providers. update_resource_ai_providers: POST /resource/{resourceId}/ai-providers. Replace the AI providers attached to an inference resource. Each provider uses accessMode inherit (default, uses the provider's own allow/block lists) or select (uses the resource's selected subset of that provider's catalog). An empty list clears all providers. Effective allow model keys must be unique across attached providers. update_resource_roles: POST /resource/{resourceId}/roles. Set roles for a resource. This will replace all existing roles. When the resource has an inline policy defined (no shared resource policy assigned), roles are set on the inline policy instead of directly on the resource. update_resource_rule: POST /resource/{resourceId}/rule/{ruleId}. Update a resource rule. update_resource_users: POST /resource/{resourceId}/users. Set users for a resource. This will replace all existing users. When the resource has an inline policy defined (no shared resource policy assigned), users are set on the inline policy instead of directly on the resource. update_resource_whitelist: POST /resource/{resourceId}/whitelist. Set email whitelist for a resource. This will replace all existing emails. update_site_resource: POST /site-resource/{siteResourceId}. Update a site resource. update_site_resource_ai_models: POST /site-resource/{siteResourceId}/ai-models. Replace the allow/block model selection for an inference site resource. Requires at least one attached AI provider in select mode. Models must belong to a select-mode provider and their listType must match the provider catalog entry. An empty array clears the selection, which denies all models for select-mode providers. update_site_resource_ai_providers: POST /site-resource/{siteResourceId}/ai-providers. Replace the AI providers attached to an inference site resource. Each provider uses accessMode inherit (default, uses the provider's own allow/block lists) or select (uses the site resource's selected subset of that provider's catalog). An empty list clears all providers. Effective allow model keys must be unique across attached providers. update_site_resource_clients: POST /site-resource/{siteResourceId}/clients. Set clients for a site resource. This will replace all existing clients. Clients with a userId cannot be added. update_site_resource_roles: POST /site-resource/{siteResourceId}/roles. Set roles for a site resource. This will replace all existing roles. update_site_resource_users: POST /site-resource/{siteResourceId}/users. Set users for a site resource. This will replace all existing users.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "pangolin_resources"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON body for the Pangolin operation. Secrets are redacted in output. | |
| query | No | OpenAPI query parameters. | |
| action | Yes | Pangolin operation to call. | |
| params | No | OpenAPI path parameters, such as orgId or siteId. | |
| confirm | No | Set to the boolean true to execute the write. Omit this field for a dry-run preview. false and the string true are rejected. |