FlightPlan
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FLIGHTPLAN_API_KEY | No | Credential from `getflightplan login` |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| post_intentA | Register what you are about to work on so other developers' agents can avoid collisions. Call this before starting any non-trivial coding task (anything touching more than a trivial fix). Infer |
| list_intentsA | Query in-flight and recent work across the team. Three distinct uses — pick exactly one: (1) pre-planning semantic check — pass |
| get_intentA | Fetch one intent's full record — the whole summary and outcome — by id or by a unique 8-char prefix. Overlap, context and list entries carry excerpts only, so call this when the excerpt is not enough: an overlap you have to describe to your user, or a context outcome you want to read in full before starting. Read-only; it records nothing. |
| update_intentA | Update an in-progress intent. Call when the work changes shape (revise summary or touches — collision checks run against these fields, so stale globs silently miss real collisions) or when work runs long (a call with just the id renews the TTL heartbeat; active intents expire after ~48h without one). Calling with just the id ALSO returns fresh |
| complete_intentA | Close out an intent when work finishes or is abandoned. The outcome summary is required for |
| mark_intent_landedA | Record that work an already-COMPLETED intent declared uncommitted is now in git. Call this the moment you learn it: you committed and pushed that work yourself, or you can see in the tree that the work another session left uncommitted has since landed. Until someone says so, the registry keeps warning every agent who touches those paths and keeps re-telling the same story about work that is no longer at risk — a tree it cannot see is the one thing it cannot check for itself. Pass the commit SHAs if you know them; landing without them is fine and complete, the timestamp is the correction. Idempotent, and it never rewrites the completion record — the outcome, the reported files and the original |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool maps to a distinct lifecycle action (post, update, complete, mark_landed, get, list), so the boundaries are largely clear. However, list_intents bundles three distinct modes into one tool and its pre-planning collision check overlaps conceptually with the overlap-checking that post_intent and update_intent perform, which invites misselection.
All six tools use a consistent snake_case verb_noun pattern built around the 'intent' resource (list_intents, get_intent, complete_intent, post_intent, update_intent, mark_intent_landed). The style is predictable throughout with only a trivial two-noun extension on mark_intent_landed.
Six tools map neatly onto a coordination registry's minimal surface: register, update/heartbeat, complete, mark-landed, read one, and query many. No tool feels redundant and nothing is bloated.
The intent lifecycle is well covered: create (post), read (get/list), modify (update), and close (complete), plus the git-landing correction (mark_intent_landed). The only minor gap is an explicit retract/delete for an intent posted in error, though complete_intent's abandoned path partially covers this.