Parameters
Parameter hooks let you pre-populate tool inputs so agents don't need to specify them on every call — and optionally lock values so they can't be overridden.
Pre-fill a parameter
Use Hook_Parameter to set a default value for any tool input.
Example — always query a specific Notion database:
Action: update
Category: Hook_Parameter
MCP Server: notion-API
Tool: query_database
Key: database_id
Value: "abc123-your-db-id"
"Set the default Notion database to my CRM database"
Example — lock Google Calendar queries to a specific calendar:
Action: update
Category: Hook_Parameter
MCP Server: google-calendar
Tool: list_events
Key: calendar_id
Value: "primary"
Template syntax
For parameters that need dynamic values, use the ${placeholder} template syntax with optional escaping.
SQL injection prevention — safely interpolate user input into queries:
{
"template": "SELECT * FROM orders WHERE customer_email = '${email}'",
"escape": "sql"
}
The escape field sanitizes the interpolated value before insertion. Supported escape modes: sql, json, url.
Lock vs default
A plain parameter value is a default — the AI can still override it if instructed. To make a value locked (non-overridable), set locked: true:
{ "value": "production-db", "locked": true }
Use locked parameters for security-critical inputs like database names, account IDs, or organization scopes.
Common use cases
| Server | Parameter | Why |
|---|---|---|
google-calendar | calendar_id | Prevent cross-calendar access |
postgres / mysql | database | Lock to specific schema |
notion-API | database_id | Prevent writes to wrong workspace |
github-remote | owner / repo | Scope to your org's repositories |
salesforce | object_type | Restrict to allowed record types |
google-sheets | spreadsheet_id | Lock to a specific sheet |
How to configure
Ask the Configurator Agent:
"Set the default GitHub owner to
my-organd lock it"
"Pre-fill the PostgreSQL database parameter with
analytics_db"
Or use manage-profile-data directly with action: update, category: Hook_Parameter.