Skip to main content
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

ServerParameterWhy
google-calendarcalendar_idPrevent cross-calendar access
postgres / mysqldatabaseLock to specific schema
notion-APIdatabase_idPrevent writes to wrong workspace
github-remoteowner / repoScope to your org’s repositories
salesforceobject_typeRestrict to allowed record types
google-sheetsspreadsheet_idLock to a specific sheet

How to configure

Ask the Configurator Agent:
“Set the default GitHub owner to my-org and lock it”
“Pre-fill the PostgreSQL database parameter with analytics_db
Or use manage-profile-data directly with action: update, category: Hook_Parameter.