Skip to main content
The Norm plugin (norm@bland) is the recommended setup for building Bland Agents from your coding agent. It connects to your account through the Bland MCP server and supplies the skills and commands to build, migrate, validate, and test agents. One plugin, three layers:
  • The hosted MCP server at api.bland.ai/v1/mcp reads and writes against your account: agents, versions, simulations, call logs, analytics, and docs search.
  • Skills teach the agent how to work with Bland Agents authoring, runtime behavior, evaluations, call analysis, tools, knowledge, environments, channels, and launch workflows.
  • The /norm:* commands guide new builds and migrations using raw JSON agent snapshots. Deterministic builders and audits preserve source content, and a convergence loop checks the saved version against simulations.
norm@bland is the plugin for Bland Agents. The separate bland@bland plugin covers v1 pathways, personas, and the file-based pathway workspace. Install both only if you work on both platforms. The /bland:* workspace commands are not part of Norm.
Using VS Code, Windsurf, Gemini CLI, or a client the plugin does not support? Connect the server directly from the MCP clients page.

Prerequisites

  • A Bland API key from app.bland.ai/settings/api-keys, for the organization that owns your agents or migration source. Never paste it into the chat; configure it in your host as described below.
  • Node.js 18 or newer for the local builder, audits, and hooks.

Install

Inside a Claude Code session:
Enter your API key in the install prompt. If it does not prompt, or you skipped it, configure the key outside the conversation:
The host stores the key in your OS keychain. Restart the session, then type /norm to check that the build, migrate, validate, analytics, and simulate commands are available. Ask Norm to list your agents to verify the MCP connection and organization before making changes.
Never paste your API key into the chat. Use the install prompt, the host’s plugin settings, or your own terminal. To set, fix, or rotate the key on Claude Code, run /plugin configure norm@bland.
On Codex, ask for the same work in plain language; it loads Norm’s skills rather than Claude Code slash commands. The Stop-hook convergence gate runs only in Claude Code, after loop initialization. It checks the local audit and recorded save/simulation results, but can release on iteration limits, repeated failures, or a timeout. Those releases are incomplete, not passing verification. On other hosts, follow the audit, save, and simulation checks explicitly.

Already using the Bland plugin?

Install norm@bland alongside it and configure Norm’s API key for the correct organization. Use /norm:* for Bland Agents and /bland:* only for v1 pathway work. Do not uninstall Norm or replace it with bland@bland for Bland Agents work.

The flow, start to production

  1. Build it. /norm:build Build a Bland Agent for booking that collects name, callback number, and a time, then confirms it back. Norm proposes the architecture, authors a JSON snapshot, audits it, and asks before saving an agent version.
  2. Give it tools and knowledge. Ask Norm to connect your booking API and attach the information callers need. Review every integration’s read and write behavior before testing.
  3. Prove it works. /norm:simulate <agent_id> Verify booking, unavailable times, and requests for a human. Ask Norm to pin the saved candidate version explicitly and verify the run’s recorded version. An agent ID alone does not pin a version: unpinned agent simulations use the latest development head. Norm inspects failure traces and repeats the full suite after changes. Untestable lanes are reported as uncovered.
  4. Define what to measure. Ask for evaluation judges and dispositions for booking success, appointment time, and the reason a caller did not book.
  5. Ship safely. Ask Norm to publish the verified version to staging, check the required evaluations and environment values, and promote only after you approve the exact candidate. Saving a version does not authorize changing live traffic.
  6. Watch and iterate. Ask Norm to analyze calls and failures. Use /norm:analytics to build a Sankey or conversation cohort, then validate and simulate any agent changes before promoting them.

Migrate an existing v1 pathway

Norm uses your v1 export as a read-only source, carries its content into a Bland Agents snapshot, audits parity, and verifies the new agent. Migration does not move phone numbers or change live v1 traffic. See Migrate to agents for the full walkthrough.

Edit an existing Bland Agent

Ask Norm to fetch the agent and make a specific change while preserving stable IDs. It works with raw JSON snapshots rather than the v1 Markdown/YAML pathway workspace. Run /norm:validate on the updated snapshot, save a new version with approval, and use /norm:simulate to verify that exact version before promotion.

Command reference

Skills

On hosts that load the Norm package, skills are available when the conversation matches their description. Use the host’s skill-loading behavior; having a manifest in the repository does not by itself verify a working installation.

Safety

  • Confirm the organization through Norm’s own MCP connection before the first write. Multiple Bland connections in one session can belong to different organizations.
  • Keep your host’s tool-approval controls enabled and review writes, paid actions, calls, and promotions. These approval steps are host/operator responsibilities, not a guarantee that the server requires a human click. Approval to save a version is not approval to move live traffic.
  • Simulations can invoke real integrations. Keep write-side actions out of routine tests unless you explicitly authorize them, and report uncovered lanes rather than claiming they passed.
  • Review the saved staging evaluation policy. When it enables required evaluations, run and pass them for the candidate before promotion. Norm should not use force or weaken the policy to bypass a failure.
  • Your API key stays in the host’s configuration or environment, not the chat.
Advanced: configure bland_api_url in Claude’s plugin settings to target a staging server. Codex’s packaged manifest uses the production URL. For Cursor’s direct MCP setup, set the server URL in your MCP configuration rather than relying on the incomplete plugin package. A keyless Claude install supports local builders and audits, but API operations still need a configured key or explicit approval to use a project-supplied Bland connection.

Bland MCP Server

The hosted MCP endpoint behind the plugin.

Tool reference

Every tool the server exposes.

Norm

The in-app version of Norm in the Bland dashboard.

Agent builder

Build and edit Bland Agents with Norm.

Docs for agents: llms.txt