Skip to main content
Glama

Reposition Aircraft

msfs_set_aircraft_position
DestructiveIdempotent

Reposition an aircraft in Microsoft Flight Simulator for test scenarios. Sets latitude, longitude, altitude, heading, pitch, bank, airspeed, and on-ground state, then verifies the position read back from the sim.

Instructions

Reposition the aircraft (test scenario setup).

Uses SimConnect's SIMCONNECT_DATA_INITPOSITION, which repositions the aircraft atomically. Writing PLANE_LATITUDE/LONGITUDE individually, as this used to, is unreliable and cannot set the on-ground state.

The response reports the position read back from the sim after the move, in latitude/longitude/etc -- never the request, which is echoed separately under requested for comparison. A field the read-back could not confirm is null (and listed in unverified), not silently replaced by what was asked for. status still reports "ok" since the reposition command itself may well have succeeded even if the confirming read did not; check unverified/warning for that.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bankNoBank in degrees
pitchNoPitch in degrees
headingNoTarget heading in degrees true. Omit to keep the current heading.
airspeedNoTarget airspeed in knots (0 for a stationary placement)
altitudeNoTarget altitude in feet. Omit to keep the current altitude.
latitudeYesTarget latitude, degrees
longitudeYesTarget longitude, degrees
on_groundNoPlace the aircraft on the ground at the position

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv1.0.1

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say the operation is not read-only, open-world, idempotent, and destructive. The description goes far beyond this: it discloses atomicity, that the reported position is a read-back rather than the request, that unconfirmed fields are null and listed in `unverified`, and that `status` may still say 'ok' even when the read-back did not confirm the move. This is exactly the kind of behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured: purpose first, then implementation rationale, then response-reading caveats. It is slightly verbose but every sentence conveys a distinct and useful fact; the depth is justified by the non-obvious 'ok' read-back behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 8-parameter schema with 100% coverage and a true output schema, the description does not need to repeat parameter docs. It supplies the remaining essential context: when it is meant for (test setup), the atomic method, the old pitfall, and how to interpret the response. An agent has everything needed to invoke it and trust the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents each parameter. The description adds no per-parameter semantics beyond mentioning that the on-ground state can be set; it mostly explains output behavior, which belongs to response semantics rather than parameter semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence uses a specific verb and resource: 'Reposition the aircraft (test scenario setup).' It also clarifies the implementation (SIMCONNECT_DATA_INITPOSITION, atomic) and contrasts with the unreliable individual variable-writing approach, distinguishing it from sibling msfs_set_simvar-style tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: test scenario setup for aircraft repositioning, and warns that the previous method of writing PLANE_LATITUDE/LONGITUDE individually is unreliable and cannot set on-ground state. It does not enumerate all alternatives or give explicit when-not-to-use conditions, so I deduct slightly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/robin24/simconnect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server