Skip to main content
Glama

alexa-mcp

A robust, TypeScript-based MCP (Model Context Protocol) server that lets Claude, Perplexity, and any other MCP-compatible LLM control Amazon Alexa devices: speak announcements, execute text voice commands, manage smart-home groups, run routines, query sensor states, and more.

License: MIT Node.js >= 18 TypeScript: 5.x Tests: 19 Passing

Built on top of alexa-remote2 (the actively maintained client for Amazon's Alexa API) with complete compile-time type safety, automated tests, and dual-transport architecture (Stdio + Streamable HTTP / SSE).


Architecture & Transports

alexa-mcp offers two flexible transport modes:

┌────────────────────────────────────────────────────────────────────────┐
│                              Clients                                   │
│  Claude Desktop │ Claude Code │ Antigravity IDE │ Perplexity │ Web UIs │
└────────────────────────────────────┬───────────────────────────────────┘
                                     │
            ┌────────────────────────┴────────────────────────┐
            │                                                 │
   [1] Stdio Transport (Local)                     [2] HTTP / SSE Transport
      node dist/index.js (or src/index.js)            node dist/server.js
      • Standard input/output pipe                    • Streamable HTTP (POST /mcp)
      • Opens no network ports                        • Legacy SSE (GET /sse)
      • Ideal for desktop assistants                  • CORS-enabled for web/remote
            │                                                 │
            └────────────────────────┬────────────────────────┘
                                     ▼
                     ┌───────────────────────────────┐
                     │         AlexaClient           │
                     │  • Session token cache        │
                     │  • Atomic 0600/0700 storage   │
                     │  • Amazon Alexa REST & Push   │
                     └───────────────┬───────────────┘
                                     ▼
                     ┌───────────────────────────────┐
                     │       Amazon Alexa API        │
                     │  Echoes • Smart Home • Rooms  │
                     └───────────────────────────────┘
  1. Stdio Transport (src/index.ts / dist/index.js / src/index.js): Standard input/output communication for local LLM clients (Claude Desktop, Claude Code, Antigravity IDE). Opens no network ports.

  2. Streamable HTTP & SSE Server (src/server.ts / dist/server.js): High-performance Express server supporting the modern MCP Streamable HTTP specification (POST /mcp or POST /) as well as Legacy SSE (GET /sse with POST /messages). Includes CORS headers and session management, ideal for remote LLMs, Perplexity, Open WebUI, and Cloudflare Tunnels.


Related MCP server: Home Assistant MCP Server

Features (19 Tools)

Every tool is strictly typed with Zod schema validation and comprehensive error handling:

Tool Name

Domain

Description

Key Arguments

alexa_list_devices

Echo Devices

List all Amazon Echo devices with serial numbers, model types, and online status

None

alexa_set_volume

Audio Control

Set device volume (0–100)

serialNumber, volume (0–100)

alexa_get_volumes

Audio Control

Read current volume levels across all Echo devices

None

alexa_do_not_disturb

Device Settings

Enable or disable Do Not Disturb mode

serialNumber, enabled (boolean)

alexa_announce

Voice & Audio

Push a spoken announcement with chime to an Echo

serialNumber, message

alexa_text_command

Voice Simulation

Send any voice command as text (e.g., "turn on kitchen lights")

serialNumber, command

alexa_speak

Voice & Audio

Make Alexa speak plain text directly (no chime)

serialNumber, text

alexa_speak_ssml

Voice & Audio

Speak SSML markup with pauses, whispers, and emphasis

serialNumber, ssml

alexa_list_smarthome_devices

Smart Home

List paired smart-home entities (lights, plugs, thermostats, sensors)

None

alexa_query_device

Smart Home

Query real-time power, brightness, or sensor states

entityIds (string array)

alexa_list_groups

Smart Home Rooms

List configured smart-home groups/rooms and assigned appliances

None

alexa_create_group

Smart Home Rooms

Create a new room/group and assign appliance IDs

name, applianceIds

alexa_update_group

Smart Home Rooms

Update name and appliances in an existing room/group

groupId, name, applianceIds

alexa_delete_group

Smart Home Rooms

Remove a smart-home group/room

groupId

alexa_list_routines

Automations

List all routines, trigger phrases, and sequence actions

None

alexa_execute_routine

Automations

Trigger an existing automation routine

routine (routine object)

alexa_list_lists

Lists

List shopping, to-do, and custom lists

None

alexa_get_list_items

Lists

Retrieve all items from a specified list

listId

alexa_add_list_item

Lists

Append a new item to a shopping or to-do list

listId, value


Requirements

  • Node.js ≥ 18.0.0

  • An Amazon account with at least one registered Alexa/Echo device

  • An MCP-compatible client (Claude Desktop, Claude Code, Antigravity IDE, Perplexity, etc.)


Installation & Setup

# Clone repository
git clone https://github.com/James-Tucke-r/alexa-mcp.git
cd alexa-mcp

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run automated tests
npm test

Authentication

Amazon's Alexa API is private and requires a browser-based login. The server includes an interactive authentication helper:

npm run auth

What npm run auth does:

  1. Starts a secure local HTTP proxy on 127.0.0.1:3457 (automatically opens your default browser on macOS).

  2. You log in to your Amazon account securely. Handles 2FA / OTP seamlessly because it proxies Amazon's real authentication pages.

  3. The proxy captures both the session cookies and the device registration (macDms) Amazon issues.

  4. Credentials are automatically saved to .auth-data/auth.json with owner-only permissions (0600, directory 0700).

You only need to run this once. alexa-remote2 refreshes the token automatically during normal operation.

alexa-remote2 gates initialization on macDms (device private key and ADP token) minted during browser registration. A raw session cookie lacks macDms, causing infinite initialization loops. The browser proxy is the only supported, reliable authentication mechanism.

Multi-Account / Multi-Instance Setup

To serve multiple Alexa accounts from a single installation, point ALEXA_MCP_AUTH_DIR to a dedicated directory per instance:

# Authenticate personal account
ALEXA_MCP_AUTH_DIR=~/.alexa-mcp/personal npm run auth

# Authenticate work / second account
ALEXA_MCP_AUTH_DIR=~/.alexa-mcp/work npm run auth

Each instance maintains its own credentials in isolation.


Client Configurations

1. Claude Desktop (Stdio)

Edit your Claude Desktop configuration:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "alexa": {
      "command": "node",
      "args": ["/absolute/path/to/alexa-mcp/dist/index.js"]
    }
  }
}

Backward Compatibility: Existing configurations pointing to /Users/jtucker/src/alexa-mcp/src/index.js continue working seamlessly through the built-in forwarder shim.

2. Claude Code (CLI)

claude mcp add alexa -- node "$(pwd)/dist/index.js"

Verify connection:

claude mcp list

3. Streamable HTTP / SSE Server (Remote Clients & Web UIs)

Run the server:

# Production
npm run serve

# Development (hot reload)
npm run serve:dev

By default, the server listens on 0.0.0.0:8000 (configurable via PORT environment variable):

  • Streamable HTTP Endpoint (Recommended): http://localhost:8000/mcp or http://localhost:8000/

  • Legacy SSE Endpoint: http://localhost:8000/sse (messages at POST /messages)

Configure in remote MCP clients (e.g., Perplexity, Open WebUI, LibreChat):

{
  "mcpServers": {
    "alexa": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Environment Variables

Variable

Default

Purpose

ALEXA_MCP_AUTH_DIR

.auth-data/

Path to store auth.json (supports ~/ expansion)

ALEXA_AMAZON_PAGE

amazon.com

Amazon marketplace host (e.g., amazon.co.uk, amazon.de, amazon.com.mx)

ALEXA_ACCEPT_LANGUAGE

en-US

Preferred HTTP Accept-Language header (e.g., en-GB, de-DE, es-MX)

ALEXA_PROXY_LANGUAGE

en_US

Proxy language parameter (e.g., en_GB, de_DE, es_MX)

ALEXA_PROXY_PORT

3457

Local port used exclusively during npm run auth

PORT

8000

HTTP port used by npm run serve (Streamable HTTP / SSE)


Development & Scripts

Command

Action

npm run build

Compiles TypeScript source to dist/ with types and maps

npm run watch

Runs tsc --watch for incremental background compilation

npm test

Runs the full automated test suite (builds first)

npm start

Runs the compiled Stdio server (node dist/index.js)

npm run dev

Runs the Stdio server directly in TS via tsx

npm run serve

Starts the production HTTP/SSE server (node dist/server.js)

npm run serve:dev

Starts the HTTP/SSE server in TS via tsx

npm run auth

Starts the interactive browser proxy auth flow


Testing & Quality Assurance

alexa-mcp ships with a comprehensive test suite built on Node's native test runner (node:test) and @modelcontextprotocol/sdk/inMemory.js:

npm test

Test Coverage (19 Tests across 4 Suites):

  1. test/tools.test.ts:

    • In-memory MCP client/server integration.

    • Verifies registration, schemas, and descriptions for all 19 tools.

    • Tests mock execution of every device, routine, smart home, audio, and list tool.

    • Verifies Zod input validation (e.g. volume out-of-bounds rejection).

    • Tests error handling when the upstream Alexa API fails.

  2. test/stdio-transport.test.ts:

    • Spawns subprocesses over actual stdin/stdout pipes.

    • Tests MCP initialize and tools/list handshakes on src/index.js (backward-compat shim).

    • Tests MCP handshakes on dist/index.js (compiled binary).

    • Verifies JSON-RPC error codes on unrecognized methods (-32601).

  3. test/server-transport.test.ts:

    • Express server lifecycle and ephemeral port binding.

    • Tests CORS headers (Access-Control-Allow-Origin: *, mcp-session-id).

    • Tests Streamable HTTP POST /mcp stateful sessions.

    • Tests SSE GET /sse streams.

    • Tests automatic Accept header normalization (application/json, text/event-stream).

  4. test/auth-storage.test.ts:

    • Atomic file write verification (temp file -> sync -> atomic rename).

    • File permission verification (0600 for auth.json, 0700 for directory).

    • Automatic tightening of insecure directory permissions.

    • Rejection of corrupt or missing device registrations (macDms).

See docs/TESTING.md for deep-dive testing documentation.


Security Model

  • Atomic File Writing: Credentials in .auth-data/auth.json are written to a unique temporary file opened with O_CREAT | O_EXCL at mode 0600, flushed to disk via fsync, and atomically replaced via rename. No partial files, race conditions, or unencrypted leaks.

  • Directory Hardening: Auth directories are verified at mode 0700 and tightened immediately if found looser.

  • Local Proxy Binding: npm run auth binds strictly to 127.0.0.1, never exposing authentication cookies to external network interfaces.

  • Git Safety: .auth-data/, cookies, and tokens are permanently ignored in .gitignore.

  • Dependency Pinning: Enforces alexa-cookie2 >= 5.0.4 to avoid Amazon 400 InvalidToken refresh regressions.


Project Structure

alexa-mcp/
├── src/
│   ├── index.ts              # MCP Stdio server entrypoint & factory
│   ├── index.js              # Backward-compatibility shim (forwards to dist/)
│   ├── alexa-client.ts       # Typed wrapper around alexa-remote2 with atomic auth
│   ├── tools.ts              # 19 MCP tool registrations with Zod schemas
│   ├── server.ts             # Streamable HTTP & SSE Express server
│   ├── auth.ts               # Interactive proxy login flow
│   └── types/
│       └── alexa.ts          # Domain interfaces (AuthData, Devices, Groups, etc.)
├── dist/                     # Compiled JavaScript, TypeScript declarations & maps
├── test/
│   ├── tools.test.ts         # In-memory tests for all 19 tools & schemas
│   ├── stdio-transport.test.ts # Subprocess stdio JSON-RPC handshake tests
│   ├── server-transport.test.ts # Express Streamable HTTP & SSE transport tests
│   └── auth-storage.test.ts  # File mode (0600/0700) & atomic write security tests
├── docs/
│   ├── ARCHITECTURE.md       # Architectural deep dive & protocol mechanics
│   └── TESTING.md            # Comprehensive test strategy & execution guide
├── .auth-data/               # Git-ignored local credentials store (mode 0700)
│   └── auth.json             # Session cookies & device registration (mode 0600)
├── CHANGELOG.md              # Detailed release and migration history
├── package.json              # Package manifest & build scripts
├── tsconfig.json             # TypeScript compiler configuration (ES2022/NodeNext)
├── LICENSE                   # MIT License
└── README.md                 # Project documentation

Acknowledgments

  • Renato Ascencio for authoring the original alexa-mcp project.

  • Apollon77 for maintaining alexa-remote2, which powers communication with Amazon's private Alexa endpoints.

  • The Model Context Protocol team at Anthropic.


License

MIT © Renato Ascencio, James Tucker

Available Tools

19 tools
alexa_add_list_itemAdd Item to ListB

Add an item to an Alexa list (shopping, to-do, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe item text to add
listIdYesThe list ID

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully disclose behavior; however, it only states 'add an item' without detailing side effects, error conditions, or limitations such as list existence checks or item limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words, but it sacrifices necessary detail; it is one sentence, which is efficient but incomplete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 parameters, no output schema, no annotations), the description is insufficient; it fails to explain success behavior, prerequisites (e.g., list must exist), or how to obtain the listId from sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds no extra meaning beyond the parameter descriptions already present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (add), resource (item to an Alexa list), and provides examples (shopping, to-do, etc.), distinguishing it from sibling tools like alexa_get_list_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided; it does not specify when to use this tool versus alternatives, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_announceSend Alexa AnnouncementB

Send a voice announcement to a specific Echo device. The message will be spoken aloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message to announce
serialNumberYesSerial number of the Echo device (use alexa_list_devices to find it)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It only states that the message will be spoken aloud, omitting side effects (e.g., do not disturb status), return value, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the action and outcome without any redundant information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and the presence of a similar sibling (alexa_speak_ssml), the description does not address return values, failure modes, or constraints (e.g., message length limits). It is incomplete for a full understanding of the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with both parameters having clear descriptions in the schema. The tool description does not add new semantic information beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send a voice announcement'), the target resource ('specific Echo device'), and the outcome ('message spoken aloud'). It distinguishes from siblings like alexa_speak_ssml and alexa_text_command by specifying 'announcement' and 'spoken aloud'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs. alternatives (e.g., alexa_speak_ssml). The description does not mention prerequisites like using alexa_list_devices to obtain the serial number, though that is hinted in the parameter description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_create_groupCreate Smart Home GroupA

Create a new Alexa smart home group/room with a name and optional list of appliance IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe group/room name
applianceIdsNoList of appliance IDs to assign to this group

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states 'create' which implies mutation, but lacks details on permissions, idempotency, duplicate handling, or limits. For a mutation tool, more behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that includes the key elements: action, resource, and parameters. No extraneous words, and it is front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 simple parameters, no output schema, no annotations), the description provides the minimal necessary information. However, it lacks details about return values, constraints (e.g., group name uniqueness), and potential side effects, which could be useful for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The description adds minimal value by summarizing 'name' and 'optional list of appliance IDs', but the schema already provides these details. No additional meaning beyond schema is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('create') and the resource ('Alexa smart home group/room'), and includes details about the optional appliance list. This effectively distinguishes it from sibling tools like alexa_update_group and alexa_delete_group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (to create a group) but does not explicitly mention alternatives or when not to use it. The context from sibling names provides some guidance, but the description itself lacks explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_delete_groupDelete Smart Home GroupB

Delete an Alexa smart home group/room.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe group ID to delete (from alexa_list_groups)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description only states 'Delete' without disclosing behavioral traits such as permanence, permissions required, or side effects. The agent lacks understanding of the tool's impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant information. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple, the description omits important context such as return behavior or success confirmation. Given no output schema, the description should provide more completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter (groupId) as 'The group ID to delete (from alexa_list_groups)'. The description adds no additional meaning, meeting the baseline for 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and the resource ('Alexa smart home group/room'). It distinguishes from sibling tools like alexa_create_group and alexa_update_group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives (e.g., alexa_update_group). The description lacks context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_do_not_disturbSet Do Not DisturbA

Enable or disable Do Not Disturb on a specific Echo device.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue to enable DND, false to disable
serialNumberYesSerial number of the Echo device

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the core effect (enable/disable DND) but omits details like whether the change is immediate, persists, or requires network connectivity. For a simple toggle, it is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no wasted words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 parameters and no output schema, the description is largely complete. It could mention that the serial number must be obtained from alexa_list_devices, but this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters. The description adds no semantic value beyond the schema; it simply repeats the context of 'specific Echo device'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Enable or disable' and the resource 'Do Not Disturb on a specific Echo device'. It uniquely identifies the tool among siblings, as no other tool handles DND.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool vs alternatives, nor does it mention prerequisites or when not to use it. However, since it is the only DND tool among siblings, usage is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_execute_routineExecute Alexa RoutineA

Execute an existing Alexa routine by providing its automation definition (from alexa_list_routines).

ParametersJSON Schema
NameRequiredDescriptionDefault
routineYesThe full routine/automation object as returned by alexa_list_routines

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description discloses the action (execute) but does not describe side effects, required permissions, error handling, or networking behavior. Minimal additional context beyond the action itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action, no unnecessary words. Efficient and direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter and no output schema. Description covers the essential purpose and input source. Lacks details on return value or execution results, but acceptable for a straightforward action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'routine' has a schema description and the tool description adds that it must be the full object from alexa_list_routines, providing useful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Execute' and specific resource 'Alexa routine'. Explicitly references the source of the routine object from alexa_list_routines, distinguishing it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States that the routine definition should come from alexa_list_routines, implying correct usage. While explicit when-not-to-use is absent, among siblings only this tool executes routines, so it is adequately clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_get_list_itemsGet List ItemsA

Get all items from a specific Alexa list.

ParametersJSON Schema
NameRequiredDescriptionDefault
listIdYesThe list ID (use alexa_list_lists to find it)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states a read operation ('get all items') without disclosing any side effects, authentication needs, or rate limits. The description carries the full burden but adds little beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no extraneous words. It efficiently conveys the purpose and the required parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is sufficient for the agent to understand its purpose and how to call it. However, lack of return value description slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the parameter 'listId' with a description, but the description adds value by instructing to 'use alexa_list_lists to find it', which provides helpful context beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get all items from a specific Alexa list' clearly states the verb (Get) and resource (items from an Alexa list), distinguishing it from siblings like alexa_list_lists (lists) and alexa_add_list_item (adds items).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when or when not to use this tool. The parameter description hints at using alexa_list_lists to obtain the list ID, but overall usage context is minimal and implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_get_volumesGet All Device VolumesA

Get the current volume levels of all Echo devices.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full burden. It only states the tool gets volume levels but does not disclose any behavioral traits such as permissions required, rate limits, or behavior for offline devices.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise, front-loaded with the action, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with no parameters and no output schema, the description is mostly complete. It could be improved by mentioning the format or type of data returned, but it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters. The description adds meaning by specifying 'of all Echo devices', which provides context beyond the empty schema. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the current volume levels of all Echo devices' which is a specific verb+resource combination. It distinguishes itself from sibling tools like alexa_set_volume and alexa_list_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like alexa_set_volume or alexa_list_devices. It lacks any when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_list_devicesList Alexa DevicesA

List all Amazon Echo devices in your account with their serial numbers, types, and online status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

As a listing tool with no annotations, the description sufficiently conveys that it is a safe, read-only operation. No side effects or authorization needs are mentioned, but the behavior is straightforward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is concise and informative, with no wasted words. It effectively front-loads the action and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description provides sufficient context. It could be slightly enhanced by noting it returns a list, but it is already adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100% (empty). According to guidelines, 0 parameters yields a baseline of 4, and the description adds no param info unnecessarily.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all Amazon Echo devices with specific attributes (serial numbers, types, online status), using a specific verb and resource that distinguishes it from sibling tools like alexa_list_smarthome_devices and alexa_list_groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a list of Echo devices is needed, but does not explicitly state when to use this tool versus alternatives like alexa_list_smarthome_devices for other device types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_list_groupsList Smart Home GroupsA

List all smart home groups/rooms configured in Alexa. Shows which devices are assigned to each group.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It only states the basic function, omitting details like read-only nature, required permissions, or side effects, which are critical for a list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, each earning its place. No fluff, no redundancy. The description is optimally brief while conveying essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, no output schema), the description covers the main purpose. It could mention the output format or absence of filtering, but overall it is sufficiently complete for its low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter semantics, so a baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool lists all smart home groups/rooms and shows device assignments, using a specific verb and resource. It clearly distinguishes from sibling tools like alexa_list_devices and alexa_list_smarthome_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to see groups and device assignments) but provides no explicit guidance on alternatives or when not to use. The context from sibling names helps, but the description itself lacks this clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_list_listsList Alexa ListsA

Get all Alexa lists (shopping lists, to-do lists, custom lists).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose whether the operation is read-only or affects state. For a data retrieval tool, this is a minor gap but still limits transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that directly conveys the tool's purpose with no extraneous information. Well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description is clear, it omits details about the return format (e.g., list names vs. full objects) and potential limits. For a simple list tool, this may be acceptable, but it could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the description adds value by explaining the output (list types). Schema coverage is 100% but empty, so the description meaningfully compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves all Alexa lists, specifying types (shopping, to-do, custom). This distinguishes it from sibling tools like alexa_list_devices or alexa_get_list_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., alexa_get_list_items for items). The description lacks context on prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_list_routinesList Alexa RoutinesA

List all Alexa routines configured in the account. Shows routine names, triggers, and actions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It implies a read-only operation but does not explicitly state safety or non-destructive nature. Adequate for a simple list operation but lacks explicit disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficiently worded sentences convey the core functionality and output details. No extraneous text; front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description sufficiently explains what the tool does and what it returns. However, it lacks mention of pagination or limits, but for a list-all endpoint this is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, and description coverage is 100% (no params to describe). Description does not need to add parameter meaning, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists all Alexa routines and specifies what information is shown (names, triggers, actions). This distinguishes it from sibling tools like alexa_execute_routine or alexa_get_list_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It simply states what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_list_smarthome_devicesList Smart Home DevicesB

List all smart home devices registered in Alexa (lights, switches, sensors, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description implies no side effects by using the verb 'list', but it does not explicitly state whether the operation is read-only or if it causes any changes. This is adequate but lacks explicit safety guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that covers the core functionality without extraneous words. It could benefit from a slightly more structured format, but it is appropriately front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description minimally conveys what it does. However, it omits details about the response format or whether the list includes identifiers and statuses, which somewhat reduces completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so baseline 4 applies. The description adds no parameter information, which is acceptable since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'List' and the resource 'smart home devices', with examples of device types. It distinguishes from the sibling 'alexa_list_devices' by specifying 'smart home', though it does not explicitly exclude other device types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'alexa_list_devices' or other listing tools. The description does not mention conditions or context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_query_deviceQuery Smart Home DeviceA

Query the current state of one or more smart home devices (on/off, brightness, temperature, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdsYesArray of smart home entity IDs to query (from alexa_list_smarthome_devices)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It indicates a read-only operation ('query current state') but lacks details on error handling, rate limits, or behavior for offline devices. Adequate but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, front-loaded with the action and resource. No unnecessary words; every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter query tool without output schema, the description sufficiently explains the purpose and scope. It could mention the return format but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for entityIds. The tool description does not add extra parameter information beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Query' and resource 'current state of one or more smart home devices', with examples like on/off, brightness, temperature. It distinguishes from sibling tools like alexa_list_devices which list devices, not states.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites like having obtained entity IDs from alexa_list_smarthome_devices, nor does it specify when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_set_volumeSet Device VolumeA

Set the volume of a specific Echo device (0-100).

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYesVolume level (0-100)
serialNumberYesSerial number of the Echo device

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only says 'Set the volume' without detailing if permissions needed or if changes are instantaneous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence front-loading the purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple two-parameter tool, but lacks guidance on obtaining serialNumber or any behavioral details beyond mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions; the range 0-100 is already in schema, so description adds no new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Set the volume of a specific Echo device' with a range, distinguishing it from sibling tools like alexa_get_volumes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives guidance, but the purpose implies usage for volume control.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_speakSpeak TextA

Make Alexa speak plain text directly on a specific Echo device using native text-to-speech (no announcement chime).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text for Alexa to speak
serialNumberYesSerial number or name of the Echo device (e.g. "Piano", "Living Room")

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It does add one genuinely useful behavioral trait beyond the name: playback is direct TTS with no announcement chime, which distinguishes audible behavior from alexa_announce. However, it says nothing about whether the call blocks until speech finishes, device-online requirements, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the differentiating clause (no announcement chime) is placed at the end where it is easy to scan. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, no-output-schema tool this is nearly complete: the action, target device type, and audio behavior are all covered. The only gap is guidance on choosing between this, alexa_speak_ssml, and alexa_announce.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (text, serialNumber) are already documented in the schema, including the name-or-serial flexibility. The description mentions 'plain text' and 'a specific Echo device' but adds no format or constraint detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a precise verb ('Make Alexa speak') plus resource ('plain text ... on a specific Echo device') and pins the modality with 'native text-to-speech (no announcement chime)'. The parenthetical implicitly separates it from alexa_announce and alexa_speak_ssml, so an agent can place it among siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'plain text' and 'no announcement chime' hint that SSML belongs to alexa_speak_ssml and that a chime means alexa_announce, but neither sibling is named and no when-to-use condition is stated. The agent must infer routing from a parenthetical rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_speak_ssmlSpeak SSMLC

Make Alexa speak using SSML (Speech Synthesis Markup Language) for advanced voice control.

ParametersJSON Schema
NameRequiredDescriptionDefault
ssmlYesSSML content (e.g., "<speak>Hello <break time=\"1s\"/> World</speak>")
serialNumberYesSerial number of the Echo device

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose whether the call is synchronous, error handling, or requirements like device availability. Only implies speaking action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that concisely state purpose and key detail. No redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two required parameters and no output schema or annotations, the description lacks critical context such as SSML syntax requirements, device targeting nuances, and expected behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. Description does not add additional meaning beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool makes Alexa speak using SSML for advanced voice control. However, it does not differentiate from siblings like alexa_announce which may handle plain text announcements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as alexa_announce or alexa_text_command. The description does not provide any context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_text_commandSend Text Command to AlexaB

Send a text command to Alexa as if you spoke it. Example: "turn on the kitchen lights"

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe text command, as if spoken to Alexa
serialNumberYesSerial number of the Echo device

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does not disclose that this is a state-mutating action (e.g., 'turn on the kitchen lights'), whether it requires the target Echo to be online/reachable, whether it blocks for a response, or what happens on unrecognized commands. 'As if you spoke it' hints at side effects but leaves the mutation semantics implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose front-loaded, and the example is the most useful single piece of content in the definition. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should ideally say something about the result (success/failure, returned state), and it does not. For a simple two-parameter pass-through tool this is survivable, but a mutating tool with no annotations and no response semantics is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema and the baseline is 3. The example ('turn on the kitchen lights') illustrates the expected command format, which is a modest addition over the schema's 'as if spoken to Alexa', but it adds no syntax, length, or format constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('send a text command to Alexa as if you spoke it') and reinforces it with a concrete example utterance. It is clear on its own, but it does not distinguish itself from close siblings like alexa_speak, alexa_query_device, or alexa_announce, which an agent would have to inspect separately to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the many siblings. With alexa_speak, alexa_query_device, and alexa_execute_routine all plausibly applicable, the description gives the agent nothing to route on beyond the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alexa_update_groupUpdate Smart Home GroupA

Update an existing Alexa smart home group/room. Sets the name and full list of appliance IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe group/room name
groupIdYesThe group ID (from alexa_list_groups)
applianceIdsYesFull list of appliance IDs to assign to this group

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that the update sets name and appliance IDs, implying overwrite, but lacks details on reversibility, permissions, or side effects. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, directly states action and what it updates. Efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no output schema, and no annotations, the description adequately covers purpose and parameter semantics. Missing behavioral details about return value, but sufficient for a simple update tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, baseline 3. The description adds value by stating 'full list' of appliance IDs, clarifying that it's a complete replacement. This semantic nuance goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Update an existing Alexa smart home group/room' and specifies what it sets (name and full list of appliance IDs). This distinguishes it from sibling tools like alexa_create_group and alexa_delete_group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for modifying an existing group, but does not explicitly state when not to use it or mention alternatives. However, the sibling tool names provide context that create_group is for creation, so it is fairly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updatesv1.2.0
    • First observedalexa_add_list_item
    • First observedalexa_announce
    • First observedalexa_create_group
    • First observedalexa_delete_group
    • First observedalexa_do_not_disturb
    • First observedalexa_execute_routine
    • First observedalexa_get_list_items
    • First observedalexa_get_volumes
    • First observedalexa_list_devices
    • First observedalexa_list_groups
    • First observedalexa_list_lists
    • First observedalexa_list_routines
    • First observedalexa_list_smarthome_devices
    • First observedalexa_query_device
    • First observedalexa_set_volume
    • First observedalexa_speak
    • First observedalexa_speak_ssml
    • First observedalexa_text_command
    • First observedalexa_update_group

TDQS

B3.4/5.0

Scored across 19 tools

Disambiguation4/5

Tools mostly target distinct resources/actions; however the three speaking tools (alexa_announce, alexa_speak, alexa_speak_ssml) plus alexa_text_command create some overlap in output modality. Descriptions clarify differences (chime vs TTS vs SSML vs simulated command), so an agent can usually distinguish them, but confusion is possible.

Naming Consistency4/5

All tools use the alexa_ snake_case prefix and typically follow verb_noun (list_devices, set_volume, create_group). Minor deviations (alexa_announce, alexa_text_command, alexa_do_not_disturb) are still readable and consistent enough.

Tool Count4/5

19 tools is slightly above the ideal 3-15 range, but the breadth of Alexa's domain (devices, smart home, groups, routines, lists, TTS, DND) justifies most tools. No excessive redundancy, though some consolidation could be possible.

Completeness3/5

Core workflows for announcements, routines, volume, groups, and querying are covered, but list management lacks update/delete/remove-item operations, and there is no direct set-device-state tool for smart home control (only natural-language alexa_text_command). These are notable gaps an agent must work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers