Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AIRSTRINGS_API_KEYNoAirStrings API key (project key `as_proj_…` covering every environment of one project, or a legacy 64-hex environment key). Used when AIRSTRINGS_ORG_API_KEY is not set; takes precedence over the workspace key and stored login. In CI, prefer a project key here.
AIRSTRINGS_ORG_API_KEYNoAirStrings organization key (`as_org_…`) covering every project of the org. Highest precedence: AIRSTRINGS_ORG_API_KEY > AIRSTRINGS_API_KEY > workspace key > stored login. For CI across several projects use a gated (non-full-power) org key.

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
airstrings_initA

Bind a directory to an AirStrings project; call this first in a repo with no .airstrings workspace, before any other airstrings_* tool. Writes .airstrings/config.json and stores the key in the workspace. Credentials: api_key, else AIRSTRINGS_ORG_API_KEY, AIRSTRINGS_API_KEY, else the stored login. With none it returns status "pending" and verification_uri_complete: show the user that URL, and once they approve call init again with the same arguments. With an org key it creates a project named after the folder (or name) unless project names an existing one. Returns the project, whether it was created, the active environment, all environments and sections. Use airstrings_login instead only to store an org login without binding a directory.

airstrings_loginA

Log in to an AirStrings organization and store an org key on this machine, without binding a directory. The first call returns status "pending" and verification_uri_complete: an organization owner approves that URL in the browser, then call login again to finish; if it is denied or expires, start over. Returns the organization once stored. Use it before airstrings_init when several directories will share one login; to set up a single repo, call airstrings_init directly (it logs in when needed).

airstrings_strings_setA

Add or update one string key in the local workspace CSV (.airstrings//.csv, or .airstrings/strings.csv without a section). Overwrites the given locales of that key and keeps its other locales. Local only unless push=true, which also upserts the key in the active environment; on a protected environment that push is refused and the local change is rolled back. Returns the key, section and whether it was pushed. Use this for a few keys; after editing many keys, run airstrings_push once instead. Apps see the change only after airstrings_publish.

airstrings_strings_rmA

Remove a string key, or one locale of it, from the local workspace CSV. Local only unless push=true, which also deletes it in the active environment (refused on a protected environment). Deletion cannot be undone except by setting the string again. Returns what was removed and whether it was pushed. Apps keep the old value until the next airstrings_publish.

airstrings_strings_lsA

List the strings in the local workspace CSVs: key, section, format and the value per locale. Reads files only, never the API, so it shows unpushed edits; run airstrings_pull first to see what the server currently holds.

airstrings_pushA

Upload the local workspace CSVs to the active environment: upserts every key and locale value, overwriting the server's values for those keys, and creates missing sections. Keys that exist only on the server are left alone (nothing is deleted). Refused on a protected environment: push to staging, then a human promotes. Returns upserted and error counts, the sections and any failed keys. Use after many airstrings_strings_set edits; for one key, strings_set with push=true is enough. Apps see the change only after airstrings_publish.

airstrings_pullA

Download the active environment's strings into the local workspace, overwriting the local CSVs with the server state; unpushed local edits in those files are lost, so run airstrings_push first if you want to keep them. Read-only on the server. Returns the string, section and file counts. Use it to start from the server's state; to inspect local files without touching them, use airstrings_strings_ls.

airstrings_publishA

Make the active environment's current server strings live: builds one bundle per locale, signs it (Ed25519) and uploads it to the CDN, where the SDKs pick it up on their next fetch. Publishes what is on the server, so run airstrings_push first for local edits. Each call creates a new bundle revision that replaces the live one; to undo, set the old values and publish again. Refused on a protected environment (production): publish to staging, then use airstrings_promote_preview and hand the apply_url to a human. Returns per-locale status and the published_at time.

airstrings_sdk_configA

Public, non-secret SDK setup values for one environment — safe to show the user, commit and embed in app code; no API key or secret is returned. Returns organization, project and environment IDs, Ed25519 public key(s) (verification keys, not credentials), protection (protected/open) and ready-to-paste initializers for web, react_native, ios, android and go. Use it when wiring the AirStrings SDK into an app. Works with any API key of the project — a staging key returns production's config, so no production key is needed for SDK setup.

airstrings_statusA

Workspace status, same as airstrings status: project, active environment, key scope (read/write), protection of every environment (protected/open), the keys stored in this workspace (masked; airstrings apikey revoke removes them) and the one next step for this state. Call it first when unsure what to do next or why a write was refused. For just the environment list, use airstrings_env_list.

airstrings_env_listA

List every environment of the project, same as airstrings env: name, ID, whether it is the default, protection (protected/open), whether this workspace holds a key for it, and which one is active. Use it to pick environment names for airstrings_promote_preview or airstrings_sdk_config; for the overall workspace state and next step, use airstrings_status.

airstrings_promote_previewA

Read-only diff of what promoting strings from one environment to another would change (added, updated, and extra keys per locale). Applies nothing — a human reviews the diff and applies the promotion at apply_url in the dashboard. Use it after publishing to staging to hand a production release to a human; agents cannot promote to a protected environment themselves.

airstrings_variant_setA

Create or replace the A/B experiment for one text-format string key that already exists on the server in the active environment. Replaces the whole experiment as a new draft, so pass every variant each time; the key's base string is the implicit 'control' variant. Refused while the experiment is running (stop it first) and on a protected environment. Does not start it: call airstrings_variant_start, then airstrings_publish. Returns the stored experiment. To read the current one first, use airstrings_variant_status.

airstrings_variant_statusA

Read the A/B experiment for one string key in the active environment: status (draft, running or stopped), allocation and each variant's values. Returns an error if the key has no experiment. Use it before airstrings_variant_set to keep existing variants, or to check state before start, stop or promote.

airstrings_variant_startA

Start a draft A/B experiment for one string key so its variants are served, split by allocation; takes effect in apps after the next airstrings_publish. Only a draft can start, and every variant must have a value for every locale of the base string. Refused on a protected environment (production): start it in a writable environment instead. Returns the updated experiment. Create the draft first with airstrings_variant_set.

airstrings_variant_stopA

Stop a running A/B experiment for one string key: every user gets the base string again after the next airstrings_publish. A stopped experiment cannot restart; airstrings_variant_set creates a new draft, and a stopped experiment can still be promoted. Refused on a protected environment. Returns the updated experiment. To keep a winning variant instead, use airstrings_variant_promote.

airstrings_variant_promoteA

End a running or stopped A/B experiment for one string key by making a variant's values the key's base string, overwriting the old base values, then republish that environment's bundles automatically. Cannot be undone except by setting the old values again. Refused on a protected environment (production): promote in a writable environment instead. Returns the experiment and per-locale publish results. Use it once a winner is clear; to end the test without changing the base string, use airstrings_variant_stop.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 17 tools

Disambiguation5/5

Each tool has a distinct resource+action, and descriptions explicitly disambiguate near-neighbors ('for just the environment list, use airstrings_env_list'; 'to end the test without changing the base string, use airstrings_variant_stop'). The variant family (set/status/start/stop/promote) and the strings family (set/rm/ls vs push/pull/publish) are clearly separated despite similar names.

Naming Consistency4/5

All tools share the airstrings_ prefix with snake_case and a consistent resource-namespace scheme (variant_*, strings_*, env_list). Minor deviation: some tools are verb-only (login, push, pull, publish) while others are noun_verb (variant_set, strings_rm), but the grouping remains predictable.

Tool Count4/5

17 tools is slightly heavy but each earns its place across distinct domains (auth, workspace init/status, strings sync, publish, A/B variants, SDK config). The 5-tool variant lifecycle is the main driver of the count and is genuinely necessary for the experiment workflow.

Completeness4/5

Strong lifecycle coverage: auth, init, local/server string CRUD, push/pull/publish, environment listing, promotion preview, and full A/B variant lifecycle. Minor gaps: no environment create/delete or project management/teardown operations, but the core localization and release loop is complete.

Maintenance

ActivityMaintained
ResponsivenessResponsive