Skip to main content
Glama
sandraschi

Nest Protect MCP Server

by sandraschi

Nest Protect MCP Server

📖 Installation Guide — quick start, manual setup, and troubleshooting

CI/CD codecov Status: Production Ready

Quick Start

git clone https://github.com/sandraschi/nest-protect-mcp
cd nest-protect-mcp
just

This opens an interactive dashboard showing all available commands. Run just bootstrap to install dependencies, then just serve or just dev to start.

Manual Setup

If you don't have just installed:

Related MCP server: Nordic Thingy:52 MCP Server

Overview

The Nest Protect MCP Server is a production-ready FastMCP 3.2.0 compatible server that provides seamless integration between Google Nest Protect devices and the Model Context Protocol (MCP). It offers comprehensive monitoring and control capabilities for your Nest Protect smoke and carbon monoxide detectors through Claude Desktop and other MCP clients.

Current Status: FULLY OPERATIONAL - SOTA UPGRADE COMPLETE

  • 20 Production Tools - Complete device management suite

  • Real API Integration - No mocks, authentic Google Smart Device Management API v1

  • FastMCP 3.2.0 - Sampling, agentic workflows, prompts (skills)

  • MCPB Packaging - Claude Desktop optimized deployment

  • Python 3.10+ - Modern baseline requirements

  • OAuth 2.0 Security - Complete authentication flow with token management

  • Comprehensive Assets - 22KB prompt templates and documentation

  • Ruff Linted - 100% code quality compliance

Key Components

  1. MCP Server: Implements the Model Context Protocol (MCP) v2.13.0 standard with MCPB packaging

  2. Nest API Integration: Handles OAuth 2.0 authentication and communication with Google's Smart Device Management API v1

  3. Device Management: Provides 20 production-ready tools to discover, monitor, and control Nest Protect devices

  4. MCPB Assets: Comprehensive prompt templates (22KB) and documentation for Claude Desktop integration

Architecture

graph LR
    A[MCP Client<br/>(Claude Desktop)] <--> B[Nest Protect MCP Server]
    B <--> C[Google Nest<br/>Cloud Services]
    D[Web Interface] <--> B
    E[Container Runtime] <--> B
    F[CI/CD Pipeline] --> B
    style A fill:#f9f,stroke:#333
    style B fill:#bbf,stroke:#333
    style C fill:#bfb,stroke:#333
    style D fill:#fbf,stroke:#333
    style E fill:#fbf,stroke:#333
    style F fill:#bbf,stroke:#333

Features

Core Capabilities

  • FastMCP 3.2.0 Compliance: Sampling, agentic workflows, prompts (skills)

  • Real Nest API Integration: Authentic Google Smart Device Management API v1 calls with OAuth 2.0

  • 20 Production Tools: Complete device management and control suite

  • MCPB Packaging: Claude Desktop optimized deployment with comprehensive assets

  • State-of-the-Art Security: OAuth 2.0 authentication with automatic token refresh

Nest Protect Integration

  • Device Discovery: List all Nest Protect devices in your home

  • Real-time Status: Monitor battery, connectivity, and alarm states

  • Device Control: Hush alarms, run safety checks, adjust settings

  • Alarm Testing: Sound alarms for testing purposes

  • Event History: Access device events and activity logs

Technical Features

  • OAuth 2.0 Authentication: Secure Google API integration

  • State Management: Persistent device state and configuration

  • Error Handling: Comprehensive error reporting and recovery

  • Pydantic V2 Models: Modern data validation and serialization

  • Async/Await: Full asynchronous operation for optimal performance

Quick Start

Prerequisites

  • Python 3.10 or later

  • Google Cloud Project with Smart Device Management API enabled

  • Nest Protect devices added to your Google Home/Nest account

Authentication Setup

Before using the Nest Protect MCP server, you need to set up authentication with Google's API:

  1. Create a Google Cloud Project (if you don't have one):

    • Go to Google Cloud Console

    • Create a new project

    • Enable the Smart Device Management API

    • Configure OAuth consent screen (select "External" user type)

    • Create OAuth 2.0 credentials (Desktop app type)

    • Download the credentials as client_secret_*.json

  2. Set up environment variables in a .env file:

    # Copy the example .env file
    cp .env.example .env
    
    # Edit the .env file with your credentials
    NEST_CLIENT_ID=your_client_id
    NEST_CLIENT_SECRET=your_client_secret
    NEST_PROJECT_ID=your_project_id

Installation

Prerequisites

  • uv installed (RECOMMENDED)

  • Python 3.12+

Quick Start

Run immediately via uvx:

uvx nest-protect-mcp

Claude Desktop Integration

Add to your claude_desktop_config.json:

"mcpServers": {
  "nest-protect-mcp": {
    "command": "uv",
    "args": ["--directory", "D:/Dev/repos/nest-protect-mcp", "run", "nest-protect-mcp"]
  }
}
  1. Download the .mcpb package from GitHub Releases

  2. Drag the .mcpb file into Claude Desktop settings

  3. Install Python dependencies (run in terminal):

    pip install FastMCP 3.2.0 pydantic>=2.0.0 aiohttp>=3.8.0 httpx>=0.24.0 websockets>=11.0.0 python-dotenv>=1.0.0 tomli>=0.10.2 python-dateutil>=2.8.2 anyio>=4.5.0 structlog>=23.1.0
  4. Configure Google Nest API credentials in Claude Desktop settings:

    • nest_client_id: Your Google OAuth Client ID

    • nest_client_secret: Your Google OAuth Client Secret

    • nest_project_id: Your Google Cloud Project ID

    • nest_refresh_token: Your OAuth refresh token

  5. Start using - Claude will automatically connect to your Nest Protect devices

Installation

Prerequisites

  • uv installed (RECOMMENDED)

  • Python 3.12+

Quick Start

Run immediately via uvx:

uvx nest-protect-mcp

Claude Desktop Integration

Add to your claude_desktop_config.json:

"mcpServers": {
  "nest-protect-mcp": {
    "command": "uv",
    "args": ["--directory", "D:/Dev/repos/nest-protect-mcp", "run", "nest-protect-mcp"]
  }
}

Running the Server

# Start the server in MCP mode
python -m nest_protect_mcp

HTTP Mode (For Web Interfaces)

# Start the HTTP server on port 8000
python -m nest_protect_mcp --http

Development Mode (With Auto-Reload)

# Start in development mode with auto-reload
python -m nest_protect_mcp --reload

Docker Mode

# Run with Docker
docker run -d \
  --name nest-protect-mcp \
  -p 8080:8080 \
  -v $(pwd)/config:/app/config \
  -v $(pwd)/data:/app/data \
  sandraschi/nest-protect-mcp:latest

Available MCP Tools

The server provides 20 production-ready tools organized into categories:

Device Status Tools

  1. get_devices - Get a list of all Nest Protect devices

  2. get_device - Get detailed information about a specific device

  3. get_alarm_state - Get current alarm states and battery health

Device Control Tools

  1. silence_alarm - Hush active alarms on devices

  2. run_test - Execute device tests and diagnostics

System Status Tools

  1. Enhanced logging - Comprehensive debugging and monitoring

  2. State management - Persistent configuration and device state

MCPB Package

MCPB Deployment - State of the Art

The Nest Protect MCP server includes a production-ready MCPB package optimized for Claude Desktop and modern MCP environments:

# Download from GitHub Releases:
# nest-protect-mcp-1.0.0.mcpb

MCPB Features:

  • 20 Production Tools - Complete device management suite

  • 22KB Comprehensive Assets - Extensive prompt templates and documentation

  • FastMCP 3.2.0 - Latest MCP specification compliance

  • OAuth 2.0 Security - Secure authentication with automatic token refresh

  • Claude Desktop Optimized - Seamless drag-and-drop installation

MCPB Assets Included

The MCPB package includes comprehensive prompt templates and documentation:

Prompt Templates (22KB total)

  • system.md (8.2KB) - Comprehensive Claude Desktop integration guide

  • user.md (6.3KB) - Interactive usage examples and templates

  • examples.json (9.9KB) - Structured usage examples with 12 detailed scenarios

Visual Assets

  • icon.png - Professional branding and recognition

  • screenshots/ - Usage documentation screenshots

    • dashboard.png - Main interface overview

    • configuration.png - Setup and configuration guide

    • usage.png - Tool usage examples

Tool Categories (20 Tools)

  1. Device Status (3 tools): list_devices, get_device_status, get_device_events

  2. Device Control (5 tools): hush_alarm, run_safety_check, set_led_brightness, sound_alarm, arm_disarm_security

  3. System Status (3 tools): get_system_status, get_process_status, get_api_status

  4. Authentication (3 tools): initiate_oauth_flow, handle_oauth_callback, refresh_access_token

  5. Configuration (5 tools): get_config, update_config, reset_config, export_config, import_config

  6. Help & About (5 tools): list_available_tools, get_tool_help, search_tools, about_server, get_supported_devices

CI/CD Pipeline

Automated Workflows

The repository includes a comprehensive CI/CD pipeline with modern practices:

Quality Assurance

  • Multi-OS testing (Ubuntu, Windows, macOS)

  • Multi-Python support (3.10-3.13)

  • Security scanning (vulnerability checks)

  • Code quality analysis (mypy, bandit, radon)

  • Performance benchmarking

Automated Deployment

  • Semantic versioning with automated releases

  • PyPI publishing for stable releases

  • GitHub releases with changelog generation

  • Docker container builds (multi-architecture)

  • Documentation deployment (GitHub Pages)

Maintenance & Monitoring

  • Dependency updates (automated security patches)

  • Repository cleanup (workflow run management)

  • Notification system (Slack/Discord integration)

  • Performance tracking (benchmarking)

Modern Development Practices

Version Management

# .bumpversion.toml
[bumpversion]
current_version = 0.1.0
commit = True
tag = True

[bumpversion:file:pyproject.toml]
search = version = "{current_version}"
replace = version = "{new_version}"

Container Definition

# Multi-stage build for optimal size
FROM python:3.11-slim as base
# ... optimized production container

Package Configuration

{
  "dependencies": ["FastMCP 3.2.0,<4.0.0"],
  "configuration": {
    "nest_client_id": {"type": "string", "required": true},
    "nest_client_secret": {"type": "string", "required": true, "secret": true},
    "nest_project_id": {"type": "string", "required": true},
    "nest_refresh_token": {"type": "string", "required": true, "secret": true}
  }
}

Troubleshooting

Recent Fixes Applied

  • FastMCP 3.2.0: Sampling, agentic workflows, prompts (skills); see docs/AUTH_SETUP.md for auth.

  • MCPB Packaging: Claude Desktop optimized; run scripts/get_nest_refresh_token.py for refresh token.

  • Webapp: Onboarding page and Help modal with setup steps.

Common Issues & Solutions

Server Disconnects from Claude Desktop

Symptom: Server starts but disconnects after a few seconds Solution: Check your claude_desktop_config.json - ensure no --kill arguments:

{
  "mcpServers": {
    "nest protect": {
      "command": "py",
      "args": ["-3.13", "-m", "nest_protect_mcp"],
      "cwd": "D:/Dev/repos/nest-protect-mcp"
    }
  }
}

Authentication Issues

Symptom: "No refresh token available" or authentication errors Solution:

  1. Get a refresh token: run python scripts/get_nest_refresh_token.py (see docs/AUTH_SETUP.md)

  2. Put NEST_CLIENT_ID, NEST_CLIENT_SECRET, NEST_PROJECT_ID, NEST_REFRESH_TOKEN in .env in the repo root

  3. Ensure Smart Device Management API is enabled in Google Cloud Console

Tool Help Not Working

Symptom: "get tool help" has difficulties with parameters Solution: FIXED - Updated FastMCP tool registration with proper syntax

Device Not Found

Symptom: No devices appear in tool responses Solution:

  1. Verify devices are set up in Google Home app

  2. Check authentication permissions

  3. Restart server after authentication

Enhanced Debugging

The server now includes comprehensive logging:

 === FASTMCP SERVER INITIALIZED ===
 Tool registration complete
 Authentication state loaded
 Device discovery started

If you see errors, check the detailed logs for specific failure points.

Documentation

** Complete Documentation**

For detailed documentation, please refer to the docs directory:

** Quick Reference**

Installation

Prerequisites

  • uv installed (RECOMMENDED)

  • Python 3.12+

Quick Start

Run immediately via uvx:

uvx nest-protect-mcp

Claude Desktop Integration

Add to your claude_desktop_config.json:

"mcpServers": {
  "nest-protect-mcp": {
    "command": "uv",
    "args": ["--directory", "D:/Dev/repos/nest-protect-mcp", "run", "nest-protect-mcp"]
  }
}

Server Commands

# MCP mode (default)
python -m nest_protect_mcp

# HTTP mode
python -m nest_protect_mcp --http

# Development mode
python -m nest_protect_mcp --reload

# Help
python -m nest_protect_mcp --help

Authentication

# Start OAuth flow
python -m nest_protect_mcp.auth

# Verify authentication
python -m nest_protect_mcp --status

REST API Reference

When running in HTTP mode, the following endpoints are available:

  • GET /health - Health check

  • GET /api/devices - List all devices

  • GET /api/devices/{device_id} - Get device details

  • POST /api/devices/{device_id}/command - Send command to device

Security

  • OAuth 2.0 Authentication - Secure Google API integration

  • Token Management - Automatic refresh with secure storage

  • HTTPS Support - Optional SSL/TLS encryption

  • Input Validation - Pydantic V2 model validation

  • Security Scanning - Automated vulnerability checks

Deployment

** MCPB Package**

# Deploy MCPB package (Claude Desktop)
# Download and drag nest-protect-mcp-1.0.0.mcpb into Claude Desktop

** Docker Container**

# Run container
docker run -d \
  --name nest-protect-mcp \
  -p 8080:8080 \
  sandraschi/nest-protect-mcp:latest

** Cloud Deployment**

  • Railway - One-click deployment available

  • Heroku - Container-based deployment

  • AWS/GCP - Container orchestration support

Contributing

Contributions are welcome! Please read our Contributing Guide for details.

Development Setup

# Clone repository
git clone https://github.com/sandraschi/nest-protect-mcp.git
cd nest-protect-mcp

# Install development dependencies
uv pip install -e .[dev]

# Run tests
pytest

# Run linting
pre-commit run --all-files

Performance

  • Multi-threaded API calls for optimal performance

  • Connection pooling for efficient HTTP requests

  • State caching for reduced API calls

  • Async/await patterns for non-blocking operations

  • Memory efficient device state management

Updates & Maintenance

The repository includes automated maintenance workflows:

  • Weekly dependency updates for security patches

  • Automated testing across multiple environments

  • Performance monitoring and benchmarking

  • Documentation updates with each release

Changelog

See CHANGELOG.md for detailed version history.

Support

For support, please:

  1. Check the troubleshooting guide

  2. Search existing issues

  3. Open a new issue with detailed information

🛡️ Industrial Quality Stack

This project adheres to SOTA 14.1 industrial standards for high-fidelity agentic orchestration:

  • Python (Core): Ruff for linting and formatting. Zero-tolerance for print statements in core handlers (T201).

  • Webapp (UI): Biome for sub-millisecond linting. Strict noConsoleLog enforcement.

  • Protocol Compliance: Hardened stdout/stderr isolation to ensure crash-resistant JSON-RPC communication.

  • Automation: Justfile recipes for all fleet operations (just lint, just fix, just dev).

  • Security: Automated audits via bandit and safety.

License

MIT License - see LICENSE file for details.


Made with for the smart home community

Available Tools

32 tools
analyze_home_safetyD

Assess Home Safety AI.

Perform comprehensive safety evaluation using advanced AI orchestration and sampling patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
focus_areasNo
assessment_scopeNocomprehensive
include_recommendationsNo

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations, the description should disclose behavior but only uses generic jargon. It does not state whether the tool is read-only, requires permissions, or has side effects.

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

Conciseness2/5

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

While short, the description lacks substance and provides minimal useful information. Each sentence is vague and does not earn its place.

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

Completeness1/5

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

Given the three optional parameters and no output schema, the description is inadequate. It fails to explain what the tool returns, how to use the parameters, or what constitutes a comprehensive evaluation.

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

Parameters1/5

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

Schema description coverage is 0% and the tool description adds no explanation for the three parameters (focus_areas, assessment_scope, include_recommendations). The description provides no semantic value beyond naming the fields.

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

Purpose3/5

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

The description states it performs a comprehensive safety evaluation, but it is vague by using phrases like 'assess Home Safety AI' and 'advanced AI orchestration and sampling patterns.' It does not clearly differentiate from sibling tools like 'run_safety_test'.

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, nor any context about prerequisites or exclusions. The description provides no usage context.

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

check_api_connectivityB

Check API Connection Health.

Verify real-time connectivity and latency to the Google Smart Device Management API.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEmpty parameters for tools that don't need input.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description should fully disclose behavior. It only says 'verify real-time connectivity and latency' but does not explain what actions are taken (e.g., HTTP request, ping), side effects, or return values. Lacks detail for safe invocation.

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?

Two short sentences, front-loaded with the purpose. No redundant information. However, could combine sentences for tighter structure.

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?

For a simple health-check tool with empty params and no output schema, the description gives the core purpose but omits response format, error indicators, and latency interpretation. Adequate but with gaps.

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 single 'params' object that is empty. The description adds no extra meaning beyond the schema declaration. Baseline 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 checks API connectivity and latency. It distinguishes itself from siblings like get_server_status (server health) and get_device_health (device health) by specifying the Google Smart Device Management API.

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 vs alternatives. Does not mention prerequisites, scenarios, or exclusion cases. Agents must infer context from the tool name alone.

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

configure_smart_automationC

Configure Smart Safety Automation.

Set up adaptive automation rules that learn your lifestyle patterns for proactive safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
automation_typeYes
learning_periodNo2_weeks
confidence_thresholdNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It only states a high-level behavior (adaptive learning) but does not disclose side effects, idempotency, or safety considerations.

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 short and front-loaded but sacrifices necessary detail. It is concise but under-informative for an agent to use effectively.

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 3 parameters, no output schema, and no annotations, the description is insufficient. It does not cover return values, configuration effects, or behavior when called multiple times.

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

Parameters1/5

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

Schema description coverage is 0% and the tool description adds no explanation for any parameter. The agent cannot determine valid values for automation_type, meaning of learning_period, or the range of confidence_threshold.

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?

Description clearly states the tool configures smart safety automation and mentions it learns lifestyle patterns for proactive safety. However, it does not specify what automation types are available, which diminishes differentiation from sibling tools like set_security_mode.

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. No prerequisites or context provided, leaving the agent to infer usage from the vague description.

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

coordinate_emergency_aiC

Coordinate Emergency AI Response.

Execute intelligent coordination during safety incidents using sampling for complex decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
emergency_typeYes
affected_devicesYes
response_priorityNohigh

TDQS

C2.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 must carry the full burden of behavioral disclosure. It describes 'executing coordination' but does not clarify side effects (e.g., does it send alerts? escalate? mutate state?), required permissions, or any destructive actions. The mention of 'sampling' is ambiguous.

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 two sentences, front-loaded with the title, and contains no filler words. However, the conciseness comes at the cost of clarity; it could be expanded to include key details while remaining efficient.

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

Completeness1/5

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

For a safety-critical tool with 3 parameters and no output schema, the description is severely lacking. It does not explain the tool's process, expected outcomes, or preconditions. Given the complexity of emergency response, the description is grossly incomplete.

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

Parameters1/5

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

Schema coverage is 0%, and the description adds no parameter explanations. Parameters like 'emergency_type', 'affected_devices', and 'response_priority' are left undefined; no allowed values or formats are hinted. The description fails to compensate for the lack of schema descriptions.

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

Purpose3/5

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

The description states 'Coordinate Emergency AI Response' which identifies a verb and resource, but is vague. It mentions 'intelligent coordination during safety incidents using sampling for complex decisions' but does not specify what coordination entails or how it distinguishes from siblings like 'hush_active_alarm' or 'set_security_mode'.

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. The phrase 'during safety incidents' provides vague context but no exclusions or recommendations. Sibling tools overlap significantly without differentiation.

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

export_config_fileC

Export Config To File.

Save the current active configuration to a local file in TOML or JSON format.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for exporting config.

TDQS

C2.9/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 full burden. It mentions saving to a local file but does not disclose if it overwrites existing files, required permissions, or error behavior. The description is minimal on behavioral traits.

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 two short sentences with no wasted words. It is front-loaded with purpose. Could be slightly more informative without adding length, but remains concise.

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?

For a simple export tool with two parameters and no output schema, the description covers basic purpose but lacks details on behavior (overwrite, permissions, errors). Adequate but not fully 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%, with both parameters having clear descriptions (format and file_path). The tool description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.

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 it exports the current active configuration to a local file in TOML or JSON format. The verb 'export' and resource 'config' are specific. It distinguishes from sibling 'import_config_file' but does not differentiate from other config tools like 'get_mcp_config'.

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 like 'import_config_file' or 'get_mcp_config'. No prerequisites or context for appropriate usage are provided.

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

finish_google_oauthB

Complete Google OAuth Callback.

Process the authorization code and exchange it for persistent access and refresh tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for OAuth callback handling.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so description carries full burden. It mentions exchanging for tokens but does not disclose side effects like token storage, overwriting, or authentication requirements. For a sensitive OAuth tool, more detail 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?

Two sentences, no fluff, front-loaded with the key purpose. Every word earns its place.

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?

No output schema exists, but description only mentions tokens without details on return format or error handling. OAuth flow complexity and parameters like state validation are not elaborated. Description feels incomplete for a sensitive operation.

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%, so baseline is 3. Description adds no additional meaning beyond what the schema already provides for parameters like code, state, redirect_uri, and expected_state.

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-process and complete-and resource-Google OAuth callback, specifying the action of exchanging authorization code for tokens. It distinguishes itself from sibling tools like start_google_oauth.

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?

Description implies usage after receiving OAuth callback, but does not explicitly state when to use vs alternatives or provide exclusions. No negative guidance is given.

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

forecast_maintenance_needsB

Forecast Device Maintenance Needs.

Predict future battery replacements and sensor failures using environmental AI analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
time_horizonNo1_month
analysis_depthNodetailed
include_cost_estimatesNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It mentions 'environmental AI analysis' but does not state whether the tool is read-only, requires special permissions, or has any side effects. The behavioral profile is unclear.

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 concise at two sentences, with the main purpose front-loaded. It is well-structured but could benefit from slightly more detail without becoming verbose.

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 tool has three optional parameters and no output schema or annotations, the description is incomplete. It does not explain parameter values, return format, limitations, or prerequisites, leaving significant gaps for an AI agent.

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

Parameters1/5

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

The schema has 0% description coverage; none of the three parameters (time_horizon, analysis_depth, include_cost_estimates) are explained in the description. The description adds no meaning 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?

The description clearly states the tool's function: forecasting device maintenance needs, specifically battery replacements and sensor failures, using environmental AI analysis. This is specific and distinguishes it from siblings like get_device_health or analyze_home_safety.

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 predict future maintenance) but provides no explicit guidance on when not to use it or alternatives. No exclusions or comparisons are given.

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

get_device_healthC

Get Device Health Status.

Real-time battery, smoke, CO, and connectivity metrics with visual health indicators in chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYes

TDQS

C2.9/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 disclose behavioral traits. It mentions 'Real-time' but does not explain safety, side effects, or required permissions. The read-only nature is implied but not 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?

The description is extremely concise, with only two short sentences. The key purpose is front-loaded, and every word contributes meaning without redundancy.

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 lack of output schema, the description partially explains what is returned (metrics and visual indicators), but it does not fully describe the return format, response structure, or any error conditions.

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

Parameters2/5

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

Schema coverage is 0%; the description does not mention the 'device_id' parameter. Although the parameter is self-explanatory from its name and the tool's purpose, the description adds no semantic value beyond the schema.

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 tool's purpose: 'Get Device Health Status' and lists specific metrics (battery, smoke, CO, connectivity). It uses a specific verb and resource, but does not explicitly differentiate from sibling tools like 'analyze_home_safety' or 'check_api_connectivity'.

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. The description does not include context, prerequisites, or exclusions.

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

get_mcp_configA

Get Current Server Configuration.

Retrieve the active configuration values for API endpoints, timeouts, and device filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for getting config section.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided. Description indicates read-only behavior ('retrieve'), but does not explicitly state safety or side effects. Basic transparency exists but lacks depth.

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 with no unnecessary text. Front-loaded with the main action: 'Get Current Server Configuration.'

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?

Adequate for a simple read operation with one parameter and no output schema. Describes what config contains, but could mention structure of return value for 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?

Input schema has full description coverage (100%). Description adds value by listing examples of config contents ('API endpoints, timeouts, device filters') that are not in schema descriptions.

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 'Get Current Server Configuration' with specific verb 'retrieve' and resource 'active configuration values for API endpoints, timeouts, and device filters'. Distinguishes from sibling write/update tools like update_mcp_config and reset_mcp_config.

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 to use this tool versus alternatives (e.g., update_mcp_config for modifications). Usage is implied by the read nature, but not stated.

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

get_mcp_processA

Get MCP Process Metrics.

Retrieve detailed memory and CPU consumption for the specific Nest Protect MCP process.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for process status.

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 burden. It describes a read operation (get metrics) with no mention of destructive side effects or authentication needs, but offers only basic transparency beyond the name.

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: the first is a concise title, the second provides specific details. No wasted words or redundancy.

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 one parameter and no output schema, the description adequately conveys the purpose and what metrics are returned. Slight lack of detail on the exact return format, but sufficient for basic usage.

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 documents the 'pid' parameter with default and description. The tool description adds context about the metrics (memory and CPU) but does not significantly supplement 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 'Get' and the resource 'MCP Process Metrics', specifying memory and CPU consumption for a specific Nest Protect MCP process. It distinguishes from siblings like 'get_mcp_config' which deals with configuration.

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 usage for retrieving process metrics for a given PID but provides no explicit guidance on when to use this tool versus alternatives or 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.

get_nest_auth_statusA

Get Nest Auth Configuration Status.

Summarize whether NEST_* credentials and tokens are loaded (masked); reads repo .env when needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEmpty parameters for tools that don't need input.

TDQS

A3.8/5.0
Behavior4/5

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

Even without annotations, the description discloses key behaviors: it reads the repo's .env file when needed and returns masked credential status. This provides sufficient transparency for a read-only diagnostic tool, though it could mention that it does not modify state.

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: first establishes the tool name, second adds the core functionality and behavior. No wasted 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 status-check tool with no output schema, the description adequately hints at the return value (summarized status) and mentions the .env source. It could mention error scenarios or dependencies on prior OAuth, but overall is fairly 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?

The input schema fully describes the single parameter (empty params object) with 100% coverage, so the description does not need to add parameter details. It adds no further semantics, meeting the baseline.

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 Nest Auth Configuration Status, specifically summarizing whether NEST_* credentials and tokens are loaded (masked). It distinguishes itself from siblings like validate_nest_credentials by focusing on status rather than validation.

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 such as validate_nest_credentials, start_google_oauth, or refresh_nest_token. The phrase 'when needed' is vague and does not help the agent choose correctly.

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

get_nest_eventsB

Get Recent Device Events.

Retrieve a list of recent smoke, CO, or connectivity events for a specific device.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for getting device events.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description must carry the full burden. It does not define 'recent' (e.g., time window) or describe response format or pagination. It only lists event types.

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: a title line and one sentence. No wasted words, front-loaded with the action.

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?

For a simple retrieval tool with one required parameter, the description is adequate but lacks details on time range, error conditions, or authentication requirements. Given no output schema, it could be more 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 parameter descriptions. The tool description adds context about event types but does not significantly enhance parameter understanding 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?

The description clearly states the tool retrieves recent smoke, CO, or connectivity events for a specific device, using a specific verb (Get) and resource (Device Events). It is distinct from sibling tools like list_nest_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?

No guidance on when to use this tool versus alternatives. Sibling tools include list_nest_devices and others, but no explicit when-to-use/when-not-to-use instructions are provided.

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

get_oauth_redirect_referenceA

Get OAuth Redirect URI Reference.

Return example redirect URIs (CLI vs web wizard), doc links, and just auth hints for PCM setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEmpty parameters for tools that don't need input.

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description carries the full burden. It states the tool returns example URIs, doc links, and hints, implying it is a read-only informational tool. However, it lacks explicit statements about side effects, authentication requirements, or rate limits. The description is adequate but not comprehensive.

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 concise, consisting of two short sentences. The first sentence clearly identifies the tool's purpose, and the second enumerates the return contents. No extraneous words or redundant 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 no output schema, the description adequately covers the tool's purpose and return content (example URIs, doc links, hints). It provides enough context for a simple informational tool. Minor improvement would be specifying the response format, but it is still mostly 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?

The input schema has one parameter 'params' which is an empty object, already well-described in the schema. The tool description does not add any additional parameter semantics beyond what the schema provides. With 100% schema coverage, a 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 title and description clearly state the tool returns OAuth redirect URI references, including example URIs and documentation links. It distinguishes itself from sibling tools like get_pcm_authorize_url and finish_google_oauth by being a reference resource rather than an action tool.

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 usage when setting up PCM and needing redirect URI examples, but it does not provide explicit guidance on when to use this tool versus alternatives such as get_pcm_authorize_url or finish_google_oauth. No when-not-to-use instructions are given.

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

get_pcm_authorize_urlB

Get PCM Authorize URL.

Build the Partner Connections Manager authorization URL (same as start_google_oauth); optional browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters to build a Partner Connections authorize URL.

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 must convey behavior. It only mentions building a URL and an optional browser open. It does not disclose whether this tool is read-only, modifies state, requires prior authentication, or has side effects. Insufficient 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?

Two sentences, front-loaded with the core purpose. No extraneous text. Every sentence earns its place.

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?

The tool is simple, but the description lacks context about the OAuth flow, the relationship to partner connections, and why redirect_uri must match. While the schema covers parameter constraints, the description could be more complete to help an agent understand the broader use case.

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 100% coverage with descriptions for all parameters. The description adds only the phrase 'optional browser', which directly references the open_browser parameter but doesn't provide new meaning beyond the schema. Baseline 3 is appropriate.

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 'Get PCM Authorize URL' and 'Build the Partner Connections Manager authorization URL', clearly indicating the verb and resource. It also notes it's the same as start_google_oauth, but this slightly blurs differentiation. Overall, the purpose is clear.

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 versus alternatives like start_google_oauth. The phrase 'same as start_google_oauth' implies overlap but doesn't clarify selection criteria or prerequisites. Minimal usage context.

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

get_server_infoB

Get Server Information.

Retrieve version, capabilities, and operational documentation for this Nest Protect MCP instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNosimple

TDQS

B3/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 full burden. It implies a read operation but does not disclose any behavioral details such as idempotency, rate limits, or required permissions. However, the operation is straightforward, so a score of 3 is appropriate.

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 consists of two short sentences that are clear and to the point. No extraneous information is included.

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 simplicity of the tool (one optional parameter, no output schema), the description should cover the parameter semantics and return format. It fails to do so, leaving gaps in understanding what the parameter controls and what the response contains.

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

Parameters2/5

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

The input schema has one parameter ('level') with a default value but no description. Schema coverage is 0%, yet the description does not explain the parameter's purpose or valid values, leaving the agent without necessary information for correct invocation.

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 that the tool retrieves server version, capabilities, and operational documentation. It uses a specific verb and resource, distinguishing it from sibling tools like 'get_server_status' and 'get_tool_details'.

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 such as 'get_server_status' or 'check_api_connectivity'. It only states the purpose, leaving the agent without context on selection criteria.

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

get_server_statusA

Get Server System Status.

Retrieve host CPU, memory, and disk usage metrics for the MCP server process.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEmpty parameters for tools that don't need input.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description is the sole source of behavioral cues. It correctly indicates a read operation (retrieving metrics) and names the specific data returned. However, it lacks an explicit statement that the tool is non-destructive or mentions any required permissions, which would be helpful for 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?

The description is extremely concise—only two sentences. The first sentence is a bolded title phrase, and the second provides the functional detail. Every sentence adds value without redundancy.

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 that the tool has no output schema, no annotations, and only one trivial parameter, the description sufficiently covers what the tool does and what data it returns. It could mention that the metrics are a current snapshot, but overall it is complete for its simplicity.

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 input schema has 100% description coverage for its single parameter 'params' (described as empty). The tool description adds no additional meaning beyond the schema, 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 tool's purpose with a specific verb ('Get', 'Retrieve') and resource ('server system status'), and lists the exact metrics (CPU, memory, disk usage). This distinguishes it from sibling tools like 'get_server_info' and 'get_device_health'.

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. There is no mention of prerequisites, exclusions, or explicit when-not-to-use scenarios, leaving the agent to infer based solely on the purpose.

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

get_tool_detailsA

Get Tool Practical Help.

Retrieve detailed parameters, usage examples, and safety constraints for a specific tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for getting tool help.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It clearly indicates a read-only retrieval operation (no side effects) and outlines what is returned (parameters, examples, constraints). It does not contradict any annotations.

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, front-loaded with 'Get Tool Practical Help.', and no redundant information. Every sentence 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 single-parameter tool with no output schema, the description provides sufficient context about purpose and return content. Missing explicit output format but low complexity justifies a 4.

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% for the single parameter (tool_name) with a clear description. The description adds no additional detail beyond the schema, so baseline 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 tool retrieves parameters, usage examples, and safety constraints for a specific tool, with a clear verb ('Retrieve') and resource ('details for a specific tool'), distinguishing it from sibling tools that perform other functions.

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 usage when needing help about a tool, but lacks explicit guidance on when not to use it or alternatives. Sibling tool names suggest other tools exist for different purposes, but the description does not clarify this.

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

hush_active_alarmA

Silence Active Alarm Device.

Temporarily hush smoke or CO alarms for maintenance or false triggers (30-300 seconds).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for hushing an alarm.

TDQS

A4.2/5.0
Behavior3/5

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

Without annotations, the description carries the full behavioral disclosure burden. It mentions temporarily hushing with a duration range but lacks details on side effects, permissions, or what happens after duration expires.

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, front-loaded with core action, no redundant information. Every sentence 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?

Given the simplicity and no output schema, the description is mostly complete. It explains the action, use case, and duration range. Could add what happens after the hush ends.

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 coverage is 100%, so baseline is 3. The description adds value by explaining the purpose (maintenance/false triggers) and temporary nature, beyond what the schema specifies.

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 silences an active alarm device, specifying it is for smoke or CO alarms, and distinguishes it from sibling tools like 'trigger_test_alarm' or 'set_security_mode'.

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 provides clear usage context: for maintenance or false triggers. It implies when to use but does not explicitly state when not to use or list alternatives.

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

import_config_fileA

Import Config From File.

Load configuration settings from a local file and merge them into the server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for importing config.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It states loading and merging into server state, implying state modification. However, it does not mention authentication requirements, error handling, file format expectations, side effects, or whether the operation is reversible. The merge behavior is implied but not fully detailed (e.g., what happens when merge=false). Adequate but not thorough.

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, front-loaded with the action ('Import Config From File'). No superfluous words. Efficiently conveys the core purpose and operation.

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 no output schema, the description is mostly complete for the core operation. However, it lacks details on return value, success/failure signals, and edge cases (e.g., file not found, merge vs replace behavior not explicitly stated). Could be more helpful for an agent to understand the full impact.

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% (both params described). The description adds minimal extra meaning beyond 'merge them into the server state', which repeats the merge parameter. No additional context about file_path (e.g., local vs remote, supported formats). Baseline 3 is appropriate as schema does the heavy lifting.

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 imports config from a file and merges into server state. The verb 'import' and resource 'config from file' are specific. It distinguishes from sibling tools like export_config_file (export) and reset_mcp_config (reset). The mention of merging adds clarity, aligning with the merge parameter.

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 versus alternatives like update_mcp_config or export_config_file. The description does not mention prerequisites, context, or when not to use it. Users are left to infer from the tool name and schema.

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

list_nest_devicesA

Discover Nest Protect Devices.

List all detectors, room locations, and online status with rich UI cards for home safety overview.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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 burden. It indicates a read operation and mentions 'rich UI cards', but does not disclose permissions, API limits, pagination, or response size. Adequate but lacking details.

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. The first fronts the core action, the second provides specifics. No wasted words, and the structure is clear.

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 list tool with no parameters and no output schema, the description is fairly complete: it states what is listed (detectors, rooms, status) and hints at output format (UI cards). Could mention read-only nature explicitly, but implied.

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 input schema has 0 parameters, so schema coverage is 100%. Description does not need to explain parameters; baseline is 4. The description adds context about what is listed, which is sufficient.

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 specific purpose: 'Discover Nest Protect Devices' and lists details like detectors, room locations, and online status, with UI cards for a home safety overview. This distinguishes it from siblings like get_device_health or get_nest_events.

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 use for an overview of Nest Protect devices but does not explicitly state when to use this tool vs alternatives (e.g., get_device_health for single device, get_nest_events for events). No exclusions or context provided.

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

list_server_toolsB

List Available MCP Tools.

Retrieve a comprehensive list of all registered tools and their functional descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEmpty parameters for tools that don't need input.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description only states basic purpose without disclosing behavioral traits like read-only nature, authorization needs, or performance impact.

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?

Two concise sentences with no redundancy, but could be slightly more precise about the scope (e.g., 'all tools').

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 list tool, but lacks mention of idempotency or whether it requires authentication, which would be helpful without annotations.

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% (single parameter documented), and description adds no extra meaning beyond listing. Baseline 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?

Clearly states it lists all registered tools with descriptions, and distinguishes from sibling tools like search_mcp_tools and get_tool_details.

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?

Implies usage for getting a full list, but does not explicitly state when to use vs. alternatives like search_mcp_tools or get_tool_details.

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

list_supported_hardwareB

List Supported Nest Hardware.

Retrieve detailed technical specifications for supported Nest Protect generations and models.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEmpty parameters for tools that don't need input.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It states 'list' and 'retrieve' implying read-only, but no details on authentication, rate limits, or side effects. Minimal disclosure beyond the obvious.

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 with no fluff. The purpose is front-loaded and every sentence earns its place. Exemplary conciseness.

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?

For a simple list tool with no output schema or annotations, the description is minimally adequate but lacks details on scope (e.g., all generations?), format, or any constraints. Could be improved.

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 one parameter 'params' described as empty, with 100% schema coverage. The description adds no extra parameter 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.

Purpose5/5

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

The description clearly states 'List Supported Nest Hardware' and 'Retrieve detailed technical specifications for supported Nest Protect generations and models.' It specifies the verb (list/retrieve) and the resource (supported Nest hardware), distinguishing it from sibling 'list_nest_devices' which likely lists all 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?

No guidance on when to use this tool versus alternatives. Does not mention prerequisites, exclusions, or context. The agent receives no help deciding between this and similar list tools.

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

refresh_nest_tokenC

Refresh Nest Access Token.

Force or verify the renewal of the current OAuth 2.0 access token for API calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for token refresh.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description says 'refresh' implying a write operation but does not disclose side effects (e.g., invalidating old token), rate limits, or behavior when the token is invalid. The term 'verify' is vague regarding whether it just checks or also refreshes automatically.

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?

Two sentences, concise and front-loaded. No extraneous words. Could be slightly more precise but overall efficient.

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?

No output schema; description omits return value (e.g., new token, expiry) and error conditions. For a token refresh tool, describing the result is important. The intermediate complexity is not compensated by the description.

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 the 'force' parameter already described ('Force refresh even if token not expired'). The description adds no new meaning beyond mapping 'force' to the param. Baseline 3 is appropriate as the schema carries the burden.

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 tool refreshes the Nest access token and mentions optional forced renewal. The verb 'refresh' and resource 'Nest Access Token' are specific. However, 'verify the renewal' is slightly ambiguous, but overall purpose is clear and distinct from siblings like get_nest_auth_status.

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 vs alternatives such as validate_nest_credentials or get_nest_auth_status. No prerequisites like needing prior authentication are mentioned. The description lacks context for appropriate usage scenarios.

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

reset_mcp_configA

Reset Configuration to Defaults.

Revert all server settings to their original factory values (requires confirmation).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for resetting config.

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 burden. It states the reset action and requires confirmation, indicating destructiveness, but does not fully disclose consequences like loss of custom settings or potential service interruption.

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 two sentences with no extraneous words. It is front-loaded with the purpose and follows with a necessary clarification. Every sentence is earned.

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 tool with one parameter and no output schema, the description covers core functionality. However, it could be more complete by noting irreversibility or impact on other settings, but overall it is sufficient.

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 the confirm parameter already described as 'Must be set to True to confirm reset'. The description only adds 'requires confirmation', providing minimal extra meaning 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?

The description clearly states 'Reset Configuration to Defaults' and 'Revert all server settings to their original factory values', specifying the verb and resource. It distinguishes from siblings like update_mcp_config and import_config_file by targeting factory reset.

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 mentions 'requires confirmation' but does not provide explicit guidance on when to use this tool over alternatives like update_mcp_config or import_config_file. The usage context is implied but not elaborated.

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

run_safety_testC

Execute Device Safety Test.

Trigger full, smoke, or CO self-tests on the device to verify alarm functionality.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for running a safety check.

TDQS

C2.9/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 full burden. It only says 'execute' and 'verify', but does not disclose potential side effects (e.g., sounding alarms, device disruption) or required permissions. The behavioral impact is under-described.

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 clear, front-loaded sentences with no wasted words. The first sentence states the core action, the second adds specifics.

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 no output schema and a potentially impactful action (alarm tests), the description lacks context on return values, duration, device state requirements, or cancellation. For a safety test, this is incomplete.

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 in the schema. The description adds minimal meaning beyond the schema (e.g., 'full, smoke, or CO' but omits 'heat'), so it meets baseline without adding significant value.

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?

Description states 'Execute Device Safety Test' and lists test types (full, smoke, CO) which clarifies the action. However, it does not differentiate from sibling tool 'trigger_test_alarm', which may have similar purpose.

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 like 'trigger_test_alarm'. No mention of prerequisites or conditions, leaving the agent to infer use cases.

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

search_mcp_toolsA

Search Tools by Keyword.

Discovery helper to find relevant tools based on name, description, or capability keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for searching tools.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided; description lacks mention of read-only nature, side effects, or authentication requirements. Adequate but could be more transparent.

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, front-loaded, no wasted words. Efficient and clear.

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?

Lacks description of return format or matching behavior. For a search tool, output details would improve 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?

Schema coverage is 100%; description adds context about 'capability keywords' and clarifies the purpose of search_in field, enriching understanding.

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 it searches tools by keyword, distinguishing it from list_server_tools (which lists all) and get_tool_details (specific tool).

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 implied but no explicit guidelines on when to use versus alternatives like get_tool_details or list_server_tools.

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

set_device_ledA

Set Device LED Brightness.

Adjust the brightness level (0-100) of the Nest Protect status light ring.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for setting LED brightness.

TDQS

A3.6/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 the action without disclosing behavioral traits such as side effects, permissions required, or reversibility. For a mutation tool, this is insufficient.

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 with no filler. The purpose is front-loaded, and every word is necessary. No redundancy.

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 mutation with well-defined parameters, the description covers the essential. However, missing output schema and lack of behavioral notes slightly reduce 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?

Schema coverage is 100% with clear descriptions for both parameters. The description adds '0-100' which is redundant with schema, so it meets the baseline but does not add extra 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?

The description uses specific verb 'Set/Adjust' and resource 'Device LED brightness' of Nest Protect status light ring. It clearly distinguishes from sibling tools like 'analyze_home_safety' or 'get_device_health' which have different purposes.

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 usage when you need to adjust brightness but provides no explicit guidance on when to use it versus alternatives, nor any context on prerequisites or restrictions.

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

set_security_modeA

Set Guard Security Mode.

Arm (home/away) or disarm the Nest security system using an optional passcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for arming/disarming security system.

TDQS

A4/5.0
Behavior4/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 behavioral disclosure. It correctly indicates that arming and disarming are performed and mentions that a passcode is optional (hinting that it may be required for disarm). However, it does not elaborate on side effects, permissions needed, or reversibility.

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—only two sentences—and front-loads the primary purpose. Every sentence provides essential information without redundancy.

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 command tool with no output schema, the description is nearly complete. It explicitly states the operations and the optional passcode. A minor gap is not explicitly stating that the passcode is required for disarm, though it is implied by 'required for disarm' in the schema.

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%, so baseline is 3. The description adds minimal extra meaning beyond the schema: it describes the action as 'arm home/away or disarm' and notes the passcode is optional. This aligns with schema but does not significantly enhance understanding.

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 starts with 'Set Guard Security Mode' as a clear action verb and resource, and then explicitly lists the operations (arm home/away and disarm). It distinguishes itself from sibling tools like 'trigger_test_alarm' or 'hush_active_alarm' which are different security-related actions.

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 explains what the tool does but does not provide explicit guidance on when to use it versus alternatives, nor does it mention any prerequisites or conditions under which the tool should be invoked. The usage context is implied but not clarified.

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

start_google_oauthB

Initiate Google OAuth Flow.

Start the secure OAuth 2.0 authorization process to link your Nest account.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for OAuth flow initiation.

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 must fully disclose behavior. It states it 'starts' the OAuth process but omits key details like whether it opens a browser, requires a callback, or returns a URL. The opaque description leaves the agent uninformed about side effects.

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 (two sentences), front-loads the core action, and contains no superfluous words. Every sentence serves a purpose.

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 tool's role in a multi-step OAuth flow and no output schema, the description is insufficient. It does not mention the return value (e.g., authorization URL), prerequisites, or the need to call 'finish_google_oauth' subsequently.

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 input schema has 100% coverage with descriptions for all parameters (state, open_browser, redirect_uri). The description adds no additional context beyond the schema, so it meets the baseline without improvement.

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 initiates the Google OAuth flow for linking a Nest account, with a specific verb ('Initiate') and resource ('Google OAuth Flow'). This effectively distinguishes it from sibling tools like 'finish_google_oauth'.

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 'finish_google_oauth' or 'get_nest_auth_status'. It lacks explanation of prerequisites, context, or exclusions.

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

trigger_test_alarmA
🚨 **Test Alarm Systems (Use Responsibly!)**

Trigger real alarm sounds on your Nest Protect devices for testing purposes.

**⚠️ IMPORTANT SAFETY NOTES:**
• Only use for testing and maintenance
• Warn household members before testing
• Verify alarms work properly in emergencies
• Keep duration short to avoid false emergency responses

**Alarm Types:**
• 🔥 **Smoke**: Fire detection alarm (loud, pulsing)
• ☁️ **CO**: Carbon monoxide alarm (distinct pattern)
• 🔒 **Security**: Intrusion/breach alarm (continuous)
• 🆘 **Emergency**: Panic button (immediate response)

**Parameters:**
• device_id: Target Nest Protect device ID (enterprises/project-id/devices/device-id)
• alarm_type: Type of alarm (smoke, co, security, emergency) - default: smoke
• duration_seconds: How long to sound alarm (5-60 seconds) - default: 10
• volume: Alarm volume percentage (50-100%) - default: 100
ParametersJSON Schema
NameRequiredDescriptionDefault
volumeNo
device_idYes
alarm_typeNosmoke
duration_secondsNo

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description bears full transparency burden. It warns about responsible use but omits important details like whether the alarm auto-stops, required permissions, or what happens after execution (e.g., return value).

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 well-structured with sections, emojis, and bullet points. It is slightly verbose but efficiently front-loads purpose and safety warnings. Every sentence contributes meaning.

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?

The tool has 4 parameters and no output schema. The description covers purpose, usage, and parameters but lacks return value information, prerequisites (device online?), and post-execution behavior, leaving gaps for an agent.

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

Parameters5/5

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

Despite 0% schema coverage, the description fully compensates by explaining every parameter: device_id format, alarm_type enum with descriptions, duration_seconds range (5-60), and volume range (50-100%). Adds significant value beyond input schema defaults.

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's purpose: 'Trigger real alarm sounds on your Nest Protect devices for testing purposes.' It uses a specific verb-resource combination and is distinct from siblings like hush_active_alarm which silences alarms.

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 includes safety notes and implies usage for testing only, but does not explicitly differentiate from sibling tools like 'run_safety_test' or provide 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.

update_mcp_configA

Update Server Configuration Values.

Modify active settings and optionally persist them to the config.toml file.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for updating config.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description discloses the core behaviors: modifying active settings and optionally persisting to config.toml. However, it lacks details on potential side effects, permissions needed, error handling, or reversibility of changes.

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, front-loaded with the key action in the first sentence. No redundant or unnecessary information, making it efficient and clear.

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 config update with one nested parameter and no output schema, the description adequately covers the main behavior. However, it could be enhanced by mentioning what happens when save_to_file is false, or the return value/status.

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 baseline is 3. The description adds context by mentioning 'active settings' and 'persist', which aligns with the 'updates' and 'save_to_file' parameters, but does not significantly elaborate 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?

The description clearly states 'Update Server Configuration Values' and 'Modify active settings', specifying the verb (update/modify) and resource (server configuration). This distinguishes it from siblings like get_mcp_config, reset_mcp_config, and export_config_file.

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 usage for updating configuration and optionally persisting, but does not explicitly state when to use this tool versus alternatives like export_config_file or reset_mcp_config, nor any prerequisites or limitations.

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

validate_nest_credentialsA

Validate Nest SDM Credentials.

Optionally refresh the access token, then call SDM devices?pageSize=1 to verify the stack works.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for SDM credential validation.

TDQS

A4.4/5.0
Behavior4/5

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

Given no annotations, the description carries full burden. It discloses the two-step process: optional token refresh, then API call to a specific endpoint. It does not mention side effects like whether token storage is updated, or error behavior on failure. Still, it is fairly transparent for a simple validation 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?

The description is two sentences with no fluff. The first sentence is a clear title, the second explains the action. Every word 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 tool with no annotations or output schema, the description adequately covers the purpose and main behavioral steps. It could mention what the return value indicates (success/failure) or potential errors, but overall it is sufficient for an AI agent to understand invocation.

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 coverage is 100% (1 parameter with description). The tool description adds value by explaining the sequence: 'optionally refresh… then call SDM devices?pageSize=1', which clarifies the parameter's role beyond its schema description. It provides meaningful context.

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's purpose: validate Nest SDM credentials. It specifies the action (optionally refresh token, then call SDM devices endpoint) which distinguishes it from siblings like refresh_nest_token that only refresh, and get_nest_auth_status that only check status.

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 provides context for when to use the optional force_refresh parameter ('if calls fail'). It implies the tool is for post-authentication validation. However, it does not explicitly state when to use this tool versus alternatives like refresh_nest_token or get_nest_auth_status.

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. Dates show when Glama detected each change.

  1. 32 tool updatesv0.1.0
    • First observedanalyze_home_safety
    • First observedcheck_api_connectivity
    • First observedconfigure_smart_automation
    • First observedcoordinate_emergency_ai
    • First observedexport_config_file
    • First observedfinish_google_oauth
    • First observedforecast_maintenance_needs
    • First observedget_device_health
    • First observedget_mcp_config
    • First observedget_mcp_process
    • First observedget_nest_auth_status
    • First observedget_nest_events
    • First observedget_oauth_redirect_reference
    • First observedget_pcm_authorize_url
    • First observedget_server_info
    • First observedget_server_status
    • First observedget_tool_details
    • First observedhush_active_alarm
    • First observedimport_config_file
    • First observedlist_nest_devices
    • First observedlist_server_tools
    • First observedlist_supported_hardware
    • First observedrefresh_nest_token
    • First observedreset_mcp_config
    • First observedrun_safety_test
    • First observedsearch_mcp_tools
    • First observedset_device_led
    • First observedset_security_mode
    • First observedstart_google_oauth
    • First observedtrigger_test_alarm
    • First observedupdate_mcp_config
    • First observedvalidate_nest_credentials

TDQS

C2.9/5.0

Scored across 32 tools

Disambiguation3/5

Several tools have overlapping purposes, particularly the AI-related tools (analyze_home_safety, coordinate_emergency_ai, forecast_maintenance_needs, configure_smart_automation) which are vaguely described and difficult to distinguish. Additionally, there are multiple OAuth and configuration tools that, while distinct, could confuse agents due to their number.

Naming Consistency5/5

All 32 tools follow a consistent verb_noun pattern in snake_case (e.g., list_nest_devices, get_device_health, hush_active_alarm). The naming is predictable and clear across the entire set.

Tool Count2/5

With 32 tools, the server has far more than is typical for a focused home safety domain. Many tools are meta or overlap, suggesting scope creep. This exceeds the recommended range and may overwhelm agents.

Completeness3/5

The server covers device management, OAuth, configuration, and system info reasonably well, but includes vague AI features that are not clearly integrated. Missing essential operations like firmware update or device removal, and includes an out-of-scope security mode tool.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A production-ready Model Context Protocol (MCP) server that enables Claude to control Philips Hue lights through natural language commands.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that integrates popular productivity tools like Gmail, Google Calendar, Google Drive, Google Sheets, Notion, and Microsoft Outlook, allowing Claude Desktop to interact with them via natural language commands.
    -
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables Claude to control SmartRent smart home devices such as locks, thermostats, light switches, and sensors through natural conversation.
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sandraschi/nest-protect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server