Tools
Gateway exposes two MCP tools. All provider actions flow through this pair.
search
Discover available actions. Works like --help for your connected providers.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Provider name, action name, or keywords |
Usage Examples
# List everything available for a provider
search("slack")
# Fuzzy match across all providers
search("send message")
# Get full details for a specific action
search("linear.create_issue")
# See parameter spec and examples
search("notion.query_database")Response
Returns matching actions with:
- Action name and description
- Parameter definitions (name, type, required, description)
- Usage examples
- User context (which providers are connected, which aren't)
exec
Execute a provider action. Format: provider.action.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
action | string | yes | provider.action format (e.g. linear.create_issue) |
params | object | yes | Action-specific parameters |
Usage Examples
# Search Linear issues
exec("linear.search", { query: "auth bug" })
# Create a Notion page
exec("notion.create_page", {
parent: { database_id: "abc123" },
properties: { title: "New Spec" }
})
# Send a Slack message
exec("slack.send_message", {
channel: "#engineering",
text: "Deploy complete ✅"
})
# Batch create Linear issues
exec("linear.batch_create_issues", {
issues: [
{ teamId: "...", title: "Fix login" },
{ teamId: "...", title: "Fix signup" }
]
})Error Handling
If the action doesn't exist, exec returns an error suggesting you use search to find the right action. If parameters are missing or invalid, it returns the parameter spec so the AI can fix the call.
Built-in Behavior
The exec tool description includes a live procedure catalog — the names and categories of all available procedures are injected at session start. When a user says "I need to expense something", the AI immediately knows the expense-tracking procedure exists without any tool calls.
The description also includes the execution protocol:
Before handling any company/admin operation (expenses, leave, time off, approvals, onboarding), ALWAYS check for a matching procedure.
This means your AI will discover and invoke tracked procedures rather than improvising.
Procedure Actions
The gateway provider exposes procedure-specific actions through exec:
| Action | Purpose |
|---|---|
gateway.list_procedures | List available procedures (id, name, category, trigger) |
gateway.get_procedure | Get summary: input table, output table, step names — no execution details |
gateway.get_procedure_source | Get full markdown source (authoring/editing only) |
gateway.start_run | Start a tracked run with validated input |
gateway.get_run | Load run state including current step instructions only |
gateway.log_step | Record what was done after completing a step |
gateway.advance_step | Move the run to the next step |
gateway.park_run | Park on a wait condition |
gateway.complete_run | Mark run as done |
gateway.cancel_run | Cancel a run |
gateway.create_procedure | Create a new procedure in Notion |
gateway.update_procedure | Update an existing procedure's markdown |
The key design: get_procedure returns a summary (enough to collect input and start a run), while get_run returns the current step's instructions. The AI never sees the full procedure source during execution.