- Newest
- Most votes
- Most comments
I think the UNKNOWN decision in LOG_ONLY mode points to a schema mapping mismatch rather than a logic flaw in your Cedar policy.
Cedar authorization requires all actions to be explicitly defined in its strictly typed .cedarschema. Currently, the AgentCore Gateway is heavily optimized for tool-level access control. When your client makes a prompts/get or prompts/list request, the gateway attempts to evaluate an action against Cedar (e.g., AgentCore::Action::"prompts/get") that likely does not exist in the managed gateway's underlying schema.
Because the action is undefined within that specific environment, Cedar cannot evaluate it against your blanket allow (permit(principal, action, resource)). This results in an incomplete evaluation state, logged as UNKNOWN.
Actionable Workaround: Until the gateway natively maps the MCP prompts namespace in its schema, the most reliable path is to refactor your @mcp.prompt() into a standard @mcp.tool(). This changes the JSON-RPC call to tools/call, which is explicitly recognized by the gateway's schema and will be successfully permitted by your current policy.
Relevant content
asked 6 months ago
asked 10 months ago

If my answer was helpful, I would appreciate it if you could mark it as the accepted answer.