STACK
MENU
DOCS / CONCEPTS / INTENTS

Intents

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.

Shape

An intent reference contains a name and its parameters.

json
{
  "name": "slack.post_to_channel",
  "params": { "channel": ["C0123", "C0456"] }
}

Expansion

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:

json
[
  { "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.

Catalog

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.

Failure modes

  • An unknown intent name rejects the grant or Passport request.
  • Invalid intent parameters reject the request before expansion.
  • A ServiceScope cannot contain more than 32 expanded constraints.

Runtime Intent approvals

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.

stack | Docs