Assistant Tool Access Policy
How tool availability and method permissions are inherited and enforced at runtime in meinGPT.
This page explains the effective enforcement model for assistant tools in meinGPT:
- Organization-wide admin settings
- Tool-specific admin overrides
- Assistant-specific method selection
- Runtime enforcement in chat
Important Security Note
meinGPT currently does not support interactive AI permission prompts at runtime (no built-in "Should I execute this now?" step).
This means:
- If a method is enabled, the AI can execute it within prompt constraints without an extra user approval dialog.
- There is currently no built-in per-action permission popup.
Recommendation:
- Use
Read only (READ_ONLY)as the default. - Enable
write/dangerousonly when the risk is explicitly understood and accepted. - Grant critical methods only in a targeted, per-tool manner.
Overview
Final permission for a tool method call is computed as an intersection:
- Is the tool available at organization level?
- Is the method allowed by global policy?
- Is the method allowed by tool-specific admin overrides?
- Is the method explicitly enabled on the assistant?
A method is only executable if all checks pass.
UI Location and Orientation
All relevant controls are in:
Settings > Assistant Integrations- Route:
/:organizationId/settings/assistant-integrations
Notes:
- Method categories (
read,write,dangerous) are shown in grouped sections in each tool detail. - The first screenshot shows the top control area: Tool Availability (
All Tools/Only Approved) and global Method Policy (READ_ONLYtoCUSTOM). - The second screenshot shows the expanded per-method table of a tool; it is only available when policy is set to
CUSTOM.


Layer 1: Tool Availability (Organization)
In Settings > Assistant Integrations, admins decide which tools are generally available.
All ToolsAll current and future tools are available.Only ApprovedOnly explicitly approved tools are available.
Notes:
- Applies to BUILTIN, EXTERNAL_MCP, and CUSTOM_MCP tools.
- If a tool is unavailable here, it is removed server-side before chat runtime.
Layer 2: Global Method Policy (Organization)
With Only Approved, admins can also set a global method policy:
Read only (READ_ONLY):readonlyRead & modify (READ_WRITE):read+writeFull access (FULL):read+write+dangerousPer-tool settings (CUSTOM): granular per-method control
Important:
- This policy is an upper bound.
- Disallowed modes are marked unavailable at admin layer.
- Categories come from each tool definition (backend) and are exposed in UI as
read/write/dangerous.
Important for the combination with tool availability:
CUSTOMis only effective when Tool Availability is set toOnly Approved.- With
All Tools, the allowlist is inactive and new tools are automatically available. - If you switch back to
Only Approved, the stored method policy applies again as upper bound.
Layer 3: Per-tool Method Overrides (CUSTOM only)
With CUSTOM, admins can enable/disable specific methods per tool.
Rules:
read/writeare allowed by default unless explicitly disabled.dangerousis blocked by default unless explicitly enabled.
This allows targeted control over send/delete/high-impact methods.
Layer 4: Assistant-level Method Selection
In the assistant editor, users can select methods per tool.
This selection is stored as enabledMethodIds and acts as an additional restriction:
- If
enabledMethodIdsexists, only listed methods are enabled. - Unselected methods stay disabled even if globally allowed.
Runtime Enforcement in Chat
When chat starts, the backend computes:
- Filter tools by organization availability policy.
- For each BUILTIN tool, derive effective methods from:
- assistant selection (
enabledMethodIds) - global policy
- CUSTOM overrides
- assistant selection (
- Register only the resulting method set in Toolkit.
Result:
- Methods outside that final set cannot be called by the model.
Precedence (highest first)
- Tool unavailable (organization policy) -> full tool blocked
- Method blocked by admin policy/override -> method blocked
- Method not in assistant
enabledMethodIds-> method blocked - Remaining methods are executable
Common Misunderstandings
"I disabled a method but it still executed."
Check:
- Was the assistant saved after changes?
- Is the method actually absent in
enabledMethodIds? - Is chat using the same assistant version?
- Is similar behavior available via another enabled tool?
"Why is a method not selectable in assistant config?"
It is likely admin-locked (isEnabledByAdmin = false).
Scope of Method Policies
- Method-level policies apply to BUILTIN tools with defined methods.
- EXTERNAL_MCP/CUSTOM_MCP are governed at tool availability level.
Practical impact:
- BUILTIN: methods can be controlled granularly.
- EXTERNAL_MCP: currently tool-level enable/disable only, no method-level admin overrides.
- CUSTOM_MCP: currently capability-level toggle (
custom-mcpon/off), no method-level admin overrides.
Concrete Example (End-to-End)
Example target:
- Allow a CRM tool, but only contact read operations.
- Keep update/delete methods blocked.
Flow:
- In
Settings > Assistant Integrations, set Tool Availability toOnly Approved. - Set Method Policy to
CUSTOM. - Enable the CRM tool (e.g., Salesforce/HubSpot).
- Keep
read_contactsenabled. - Disable methods like
update_contactanddelete_contact. - Save assistant and additionally restrict to required methods in
enabledMethodIds.
Result:
- The assistant can read contacts.
- Write/delete methods are not registered in Toolkit and cannot execute at runtime.
Recommended Admin Rollout
- Start with
Only Approved. - Set method policy to
CUSTOM. - Enable only required tools.
- Allow
dangerousonly explicitly per method. - Let assistant owners further narrow methods per assistant.