Named service intents are shortcuts for parameter constraints. An intent describes a common provider operation and expands into the constraints that enforce it. The Passport carries the expanded constraints.
Use a named service intent when the catalog covers the operation. Use raw constraints for a provider-specific rule that the catalog does not cover.
An intent reference contains a name and its parameters.
{
"name": "slack.post_to_channel",
"params": { "channel": ["C0123", "C0456"] }
}At grant and Passport issue time, STACK resolves the intent and validates its parameters. It then emits the matching constraint array. The example above expands to:
[
{ "path": "url.pathname", "op": "eq", "value": "/api/chat.postMessage" },
{ "path": "body.channel", "op": "in", "value": ["C0123", "C0456"] }
]A grant or Passport can contain named intents and raw constraints. STACK evaluates the resulting constraints together.
The catalog covers common operations across communications, development, infrastructure, commerce, finance, storage, analytics, and other connected services. Use stack_list_intents to retrieve the current catalog through your connected MCP client. You can filter the result by provider.
Runtime Intent approvals are a separate control. A runtime Intent describes a specific proposed action. STACK can require approval for that action before the proxy executes it.