Available MCP Tools
The MCP server exposes the following tools. All calls go through RBAC — the AI agent can only access what the associated user’s policies allow.
Data Tools
| Tool | Actions | Admin required |
|---|---|---|
items | read, create, update, delete, aggregate | No |
schema | read — collection and field schema | No |
files | read, update, delete, import | No |
folders | create, read, update, delete | No |
assets | Retrieve file content as base64 | No |
users | read, update — user profiles | No |
logs | tail, read, search, stats, clear — server logs | Yes |
When running the production Docker image, the app runs one worker process per CPU core. The logs tool reads an in-memory, per-worker buffer (last 1,000 entries), so each call returns the output of the single worker that handled the request — not a merged view across all workers.
Schema Management (Admin Only)
| Tool | Description |
|---|---|
collections | Create, update, delete database tables |
fields | Create, update, delete table columns |
relations | Manage foreign key relationships |
RBAC Management (Admin Only)
| Tool | Fields |
|---|---|
roles | name, icon, description |
policies | name, icon, description, admin_access, app_access, enforce_tfa, delegate_access, module_access (record of module-key → boolean, e.g. { "system:logs": true }) |
permissions | policy, collection, action, fields, permissions (filter), validation, presets |
access | policy, role (optional), user (optional), resource_uri (optional) |
module_access_keys | display_name, parent_id, description, key, sort — manage the tree of module-level access keys (e.g. system:logs) that can be granted to policies via module_access |
RBAC tools (roles, policies, permissions, access) are always available to admins — they are exempt from the MCP_ALLOW_DELETES restriction since RBAC management inherently requires delete operations. module_access_keys is not exempt: its delete action still requires MCP_ALLOW_DELETES=true.
Multi-Tenancy (Admin Only)
| Tool | Actions |
|---|---|
scope | read_types, create_type, update_type, delete_type, read_items, create_item, update_item, delete_item, read_configs, create_config, update_config, assign_user_role, remove_user_role, read_user_roles |
Automation & Extensions (Admin Only)
| Tool | Actions |
|---|---|
cron | list, read, create, update, delete, activate, deactivate, clone, run_now, history, recent_history, stats — manage scheduled cron jobs |
extensions | list, read, create, update, delete, activate, deactivate, clone — manage runtime extensions |
services | list, read, create, update, delete, run_tests, run_test, activate, deactivate — manage custom services |
Runtime Settings (Admin Only)
| Tool | Actions |
|---|---|
cors-settings | get, update — runtime CORS configuration |
smtp-settings | get, update, test, send — SMTP configuration and test email |
Cron and extension changes made via MCP take effect cluster-wide: the change is published over the internal message bus, so extension reloads are applied on every worker process, and cron changes are applied by the leader worker that runs the scheduler — regardless of which worker served the request.
System
| Tool | Description |
|---|---|
system-prompt | Returns the custom MCP system prompt (configured in AI Settings) |
Delete Behavior
Delete operations for data tools are disabled by default. Enable them in MCP settings:
# Environment variable
MCP_ALLOW_DELETES=true
# Or via API
PUT /api/settings/mcp
{ "mcp_allow_deletes": true }Tool Call Example
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "items",
"arguments": {
"action": "read",
"collection": "articles",
"query": {
"filter": { "status": { "_eq": "published" } },
"limit": 10,
"sort": ["-date_created"]
}
}
}
}