AsAsked

Install

Add the guard to your agent

Before your agent pays, AsAsked checks the cart against what the person asked for. In apps like Claude Code or Cursor it runs as an MCP server; in your own code it sits in front of checkout. Pick your app below.

1. A model key

The guard reads the person's request with a language model, then compares it with the cart in plain code. It needs one key, as an environment variable or in the app's config. Without a key it cannot read the request, and every check answers ask.

modelvariableextra
ClaudeCLAUDE_API_KEY (or ANTHROPIC_API_KEY)asasked[anthropic]
GeminiLLM_API_KEYnone
Any OpenAI-compatible APIOPENAI_COMPAT_BASE_URL, OPENAI_COMPAT_API_KEY, OPENAI_COMPAT_MODELnone

The configs below use Claude. For Gemini, drop ,anthropic and set LLM_API_KEY instead of CLAUDE_API_KEY. A key written into a config file is stored there in plain text.

2. Your app

The MCP configs start the server with uvx, which downloads and runs the package itself, so there is nothing to install first. It comes with uv. No uv? See “Other MCP apps”.

Run once in a terminal, with your key in place of your-key:

terminal
claude mcp add --env CLAUDE_API_KEY=your-key --transport stdio asasked -- uvx --from "asasked[mcp,anthropic]" asasked-mcp

Add --scope user to have it in every project. To share it with a project through .mcp.json, keep the key in your environment instead of the file:

.mcp.json
{
  "mcpServers": {
    "asasked": {
      "command": "uvx",
      "args": ["--from", "asasked[mcp,anthropic]", "asasked-mcp"],
      "env": {"CLAUDE_API_KEY": "${CLAUDE_API_KEY}"}
    }
  }
}

3. Check that it works

Ask the agent:

I asked for black sneakers in size 42. The cart has white sneakers in size 42 for $50. Check the order with check_order.

It should come back with ask and a question about the colour. If it answers ask with “I couldn't automatically check this order”, the server runs but has no working key.

A second opinion, not a lock

An MCP server answers only when the agent calls it, and it has to take the agent's word for the request and the person's replies. It helps an agent that wants to get the order right; it cannot stop one that skips it. To make sure nothing is paid around the guard, put it in front of your checkout, as in “Your Python agent”.

Package: asasked on PyPI · v0.1.10 release · the same configs in docs/install.md