> ## Documentation Index
> Fetch the complete documentation index at: https://docs.civic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Parameters

> Pre-fill tool inputs and lock down what values agents can pass

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:

```json theme={null}
{
  "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`:

```json theme={null}
{ "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-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`.
