indykite-agent-gateway

Installation
SKILL.md

IndyKite Agent Gateway

The IndyKite Agent Gateway (IAG) is a self-hosted proxy placed in front of exactly one downstream - an A2A agent or an MCP server. Run one IAG per protected downstream. IAG is not a generic reverse proxy: with protocol: a2a (default) it speaks the A2A JSON-RPC protocol and serves the protected agent's agent card; with protocol: mcp it serves one MCP endpoint (the path of service.base_url), forwards MCP Streamable HTTP traffic to the server's endpoint URL on the revisions 2025-06-18, 2025-11-25, and 2026-07-28, and publishes OAuth protected resource metadata. Either way the same decision runs in front.

For each request IAG decides in this order:

  1. Caller - the bearer token is introspected at the IdP; with a Token Service a workflow starts only at the agent the token was issued for, and a later hop arrives with X-IK-Token.
  2. Delegation token - the caller's token (or the incoming chain) and the protected agent's own client-credentials token are exchanged (RFC 8693) for a token whose act claim nests the chain.
  3. Subject - ContX IQ GET /contx-iq/v1/whoami resolves the caller: type = the ikg_node_type of the Token Introspect configuration that validates the token, id = the token's subject claim.
  4. Admission - one AuthZEN POST /access/v1/evaluation: subject from whoami, action authzen.action, resource = the protected agent (its type from the token's act.type, protected_agent.node_type, or Agent). The delegation token travels in X-IK-Token on that call in both modes, so the admission policy reads the chain as $ik_token.act_chain and compares it with the INVOKES path of a workflow the subject may CAN_TRIGGER. The gateway compares nothing itself: decision: false is 403.
  5. Intent (a2a, ibac.enabled) - the message text is sent to the Intent Agent before forwarding.
  6. Forward and audit - one record per request, written before forwarding.

The gateway runs no Knowledge Query any more: contx_iq.query_id is ignored and a non-empty contx_iq.allowed_workflow_id stops it at startup (see the upgrade note in references/configuration.md).

When to use

Activate this skill when the user:

Installs
67
Repository
indykite/skills
GitHub Stars
4
First Seen
May 19, 2026