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 tool access 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?
- If the chat runs through an assistant: is the method explicitly enabled there?
A method is only executable if all applicable checks pass — check 4 only applies when an assistant is involved. For a connector used directly in a chat with no assistant, checks 1–3 alone decide.
UI Location and Orientation
All relevant controls are in:
Settings > Tool Management- Route:
/:organizationId/settings/tool-management
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 > Tool Management, 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.
Behavior for newly shipped tools under Only Approved:
- New core tools from the
Basicscategory (e.g. calculator, charts, document creation) are available automatically as soon as meinGPT ships them. - If you disable such a tool, it stays disabled — including future updates.
- New connectors and databases are NOT enabled automatically; they always require explicit approval.
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.
Caveat: a method restriction only blocks that exact method call - it does not check whether a different, still-enabled method of the same tool can produce an overlapping effect through its own inputs. Example: Google/Outlook Calendar expose calendar_create_event (write, enabled by default) and calendar_invite_attendees (dangerous, blocked by default). Blocking calendar_invite_attendees stops that specific action, but calendar_create_event independently accepts an attendees field and sends the same invitation notifications when creating an event - this is not gated by the calendar_invite_attendees setting. When restricting a method, check what that method's inputs allow, not just its name.
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.
This layer only exists for assistants today. A connector enabled directly in a chat with no assistant has no equivalent method-level restriction — only Layers 1–3 apply there.
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) — only relevant if the chat runs through an assistant - 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
enabledMethodIds(only relevant with an assistant) -> 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 method - either of a different tool, or of the same tool (e.g. an event-creation method that itself accepts an attendees/recipients field)?
"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 > Tool Management, 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.
- If the same connector is used directly in a chat with no assistant instead, the same steps 1–5 (organization policy + CUSTOM overrides) still apply; step 6 (the extra
enabledMethodIdsrestriction) doesn't apply, since there's no assistant-level equivalent.
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.