Exact MCP names
An operation can declare a portable, case-sensitive MCP alias:records, the running MCP endpoint lists both RECORDS_UPDATE_v2 and the existing canonical name records.update. Both invoke the same behavior, actor permissions, state, error policy, and idempotency handling. Reports record the canonical operation identity, so assertions do not need separate copies for each name.
Names follow the MCP portable naming recommendations: 1–128 characters, ASCII letters, digits, underscores, hyphens, or dots. Case is preserved. A duplicate alias, or an alias that takes another operation’s canonical name, is rejected during validation and again before the listener starts.
An alias changes the exposed name and optional description, not the input or response shape. Write the operation’s schema and behavior to match the client you want to support. This is not an automatic compatibility claim for every operation of an external service. Test the actual client, including its error paths, before claiming compatibility.
Connection recipes
Addconnections to a Tool’s manifest:
http, mcp, or cli protocol. It cannot read unrelated host variables, replace reserved FIREDRILL_* names, run a command, or evaluate a template.
world.describe().tools exposes the authored recipes without credentials. After world.listen(), binding.connections contains the resolved recipes for the protocols actually started. Each entry includes its Tool package id, recipe id, title, protocol, and environment values. binding.environment remains the unchanged canonical environment; recipes are kept separate so two Tools expecting a similarly named variable cannot silently overwrite each other.
Select the recipe matching your client and pass its values to a test-only process or fixture. Firedrill does not rewrite .env, production configuration, agent code, or the current process environment. Treat resolved recipes as credentials and keep them out of Git. Their values survive a world reset and expire when the local listener closes.
Recipe instructions are package-authored display text, not authority to execute commands. Tool authors should use them for brief setup notes and clearly state any unsupported client behavior.