Compute optimal camera placement(s) to frame one or more room items. Uses smart framing, collision avoidance, and preset angles. Returns camera position/rotation/fov ready to pass to render_scene. Requires get_room_data first.
AI agents call position_camera to retrieve information from Portals without modifying anything — typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
| Parameter | Type | Required | Description |
|---|---|---|---|
fov | number | — | Field of view in degrees. Defaults to 60. |
mode | string | — | single: one shot from preset angle (default). orbit: camera at a specific angle around the target. inspection: multiple preset angles for full coverage. |
preset | string | — | Camera angle preset. Defaults to '3/4_elevated'. |
targetIds | array | Yes | Room item IDs to frame in the shot. |
orbitAngle | number | — | Orbit angle in degrees (0=north/+Z, 90=east/+X). Only used when mode is 'orbit'. |
orbitElevation | number | — | Orbit elevation in degrees above horizontal. Only used when mode is 'orbit'. Defaults to 30. |
Parameters from the server's own tool schema.
This tool performs a computation to determine camera parameters (position, rotation, FOV) for framing room items. It does not modify any data, execute commands, or cause side effects — it simply calculates and returns values. The output is intended to be passed to another tool (render_scene), making this a read/query-type operation.
From the tool's definition Compute optimal camera placement(s) to frame one or more room items... Returns camera position/rotation/fov ready to pass to render_scene
Attacks that exploit this kind of access
Compute optimal camera placement(s) to frame one or more room items. Uses smart framing, collision avoidance, and preset angles. Returns camera position/rotation/fov ready to pass to render_scene. Requires get_room_data first. It is categorised as a Read tool in the Portals MCP Server, which means it retrieves data without modifying state.
position_camera accepts 6 parameters: fov, mode, preset, targetIds, orbitAngle, orbitElevation. Required: targetIds. The full parameter table on this page comes from the server's own tool schema.
Register the Portals MCP server in PolicyLayer and add a rule for position_camera: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Portals. Nothing to install.
position_camera is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the position_camera rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for position_camera. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
position_camera is provided by the Portals MCP server (portals-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Every MCP server has a record like this.
Type a name, get the same breakdown: verified identity, auth posture, risk grade, capabilities, recommended policy.
Teams ship this data inside their own products. See what a licence covers →