Skip to main content
In Civic, hooks are profile data configurations that customize how tools behave. They let you pre-fill parameters, filter visible tools, rename tools, clone them with different defaults, and override descriptions — all without touching the underlying MCP servers. Configure hooks via the manage-profile-data tool or by asking the Configurator Agent directly.

Hook Types

There are 5 hook categories:

Hook_Parameter — Auto-fill Tool Parameters

Pre-populate tool inputs so you don’t have to specify them every time. Example — always use a specific Notion page ID:
Action: update
Category: Hook_Parameter
MCP Server: notion
Tool: create_page
Key: page_id
Value: "abc123-workspace"
You can also use interpolated templates with ${placeholder} syntax:
{ "template": "SELECT * FROM users WHERE email = '${email}'", "escape": "sql" }

Hook_Filter — Show/Hide Tools

Control which tools from a server are visible to the AI. Example — only allow specific GitHub tools:
Action: update
Category: Hook_Filter
MCP Server: github
Value: { "enabled": ["create_issue", "search_repositories"] }
Or to block specific tools:
{ "disabled": ["send_gmail_message", "delete_event"] }

Hook_Alias — Rename Tools

Give tools a friendlier or more context-specific name.
Action: update
Category: Hook_Alias
MCP Server: postgresql
Tool: execute_sql
Value: "run-query"

Hook_Clone — Duplicate Tools with Different Names

Create multiple versions of the same tool, each pre-configured differently. Example — two versions of list_events:
["my-events", "team-events"]
Then use Hook_Parameter on each clone to set different calendar_id values.

Hook_CustomDescription — Override Tool Descriptions

Change what the AI sees as the tool’s description — useful for schema hints or environment-specific guidance.
Action: update
Category: Hook_CustomDescription
MCP Server: postgresql
Tool: execute_sql
Value: "Runs a SQL query against the production DB. Schema: users(id, email, created_at)..."

How to Configure

Ask the Configurator Agent in natural language:
  • “Set the default GitHub repository to my-org/my-repo
  • “Filter the Gmail tools to hide the send tool”
  • “Clone the PostgreSQL query tool into get-pipeline-summary and get-stalled-deals
Or use the manage-profile-data tool directly with action: describe and a category to see live examples for any hook type.

Learn More

Guardrails

Higher-level security configuration built on the hook architecture

Prompt Injection

How hooks and guardrails defend against prompt injection attacks