Skip to main content
Glama

vHal MCP Server

MCP server for Android Vehicle Hardware Abstraction Layer (vHAL) documentation and source code analysis. This server provides intelligent tools for exploring vHAL properties, understanding their relationships, and implementing automotive climate control systems.

Overview

The vHAL MCP Server helps Android Automotive developers by providing:

  • Property Analysis: Discover vHAL properties and their relationships

  • Source Code Lookup: Find Android source code implementations

  • Implementation Guidance: Get step-by-step implementation recommendations

  • Documentation Summarization: Access curated vHAL documentation insights

Related MCP server: Android Development MCP Server

Demo

See the vHAL MCP Server in action:

https://github.com/user-attachments/assets/6fcdc5fb-6cbb-4c69-9528-fa3bdee4acb1

Example: Analyzing HVAC properties and implementation guidance using Claude Desktop with the vHAL MCP Server

Features

Core Tools

summarize_vhal(question)

  • Summarizes vHAL implementation based on specific questions

  • Analyzes Android automotive documentation

  • Provides contextual answers for vHAL development

lookup_android_source_code(keyword, category)

  • Searches Android source code for vHAL properties

  • Returns property definitions with IDs and categories

  • Provides direct links to source code locations

discover_related_properties(property_or_category)

  • Analyzes property relationships and dependencies

  • Suggests implementation order for complex features

  • Groups properties by functional categories

analyze_vhal_implementation(property_name)

  • Shows detailed source code analysis for specific properties

  • Provides implementation examples and usage patterns

  • Includes dependency analysis and best practices

generate_vhal_implementation_code(...)

  • Generates complete VHAL property implementation code for AAOS

  • Creates all necessary files, configurations, tests, and documentation

  • Supports all VHAL data types, property groups, and access modes

  • Includes HAL definitions, Java APIs, tests, and build configurations

generate_vhal_pr_message(...)

  • Generates comprehensive pull request messages for VHAL implementations

  • Creates structured PR descriptions with technical details and testing requirements

  • Includes professional titles, change summaries, and review checklists

  • Ready-to-copy-paste format for GitHub/GitLab integration

validate_vhal_sources_and_enhance_summary(question, include_source_validation, max_sources_to_check)

  • Enhanced vHAL summary with complete source transparency and validation

  • Validates URL accessibility to detect broken or moved documentation links

  • Provides confidence scoring based on source reliability and accessibility

  • Shows clear citations with response times and last-modified dates

  • Suggests alternative sources for failed URLs

  • Distinguishes between cached vs. live data for transparency

validate_vhal_property_request(property_name, property_description, ...)

  • Validates vHAL property requests following Android best practices

  • Checks if property already exists in latest Android release (Android 16)

  • Recommends using existing Android properties when available

  • Generates VENDOR_ properties with proper naming convention when needed

  • Provides comprehensive analysis with similarity scoring and recommendations

  • Supports all VHAL data types, property groups, and configurations

  • Integrates with existing code generation tools for complete implementation

Installation

Prerequisites

  • Python 3.12 or higher

  • Internet connection for documentation scraping

  • MCP-compatible client (Claude Desktop, Zed, or other MCP clients)

Local Setup

  1. Clone the repository

    Using HTTPS:

    git clone https://github.com/feevlic/vhal-mcp-server.git

    Using SSH:

    git clone git@github.com:feevlic/vhal-mcp-server.git
  2. Navigate to the project directory

    cd vhal-mcp-server
  3. Install dependencies

    pip install -e .

MCP Client Configuration

Claude Desktop Configuration

  1. Find your uv installation path

    which uv
  2. Locate your Claude Desktop configuration file

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

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

  3. Add the server configuration

    Edit the configuration file and add the following (replace the paths with your actual paths):

    {
      "mcpServers": {
        "vhal-mcp-server": {
          "command": "/Users/[]/.local/bin/uv",
          "args": ["run", "--directory", "/Users/[]/vhal-mcp-server", "python", "main.py"],
          "env": {
            "PYTHONPATH": "/Users/[]/vhal-mcp-server"
                }
             }
          }
       }

You can find an example in the config folder.

Important:

  • Replace /path/to/your/uv with the output from step 1 (e.g., /Users/yourusername/.local/bin/uv)

  • Replace /path/to/vhal-mcp-server with the actual path where you cloned the repository

  • On macOS, GUI applications like Claude Desktop may not have access to your shell's PATH, so using full paths is required

  1. Restart Claude Desktop

    After saving the configuration file, completely quit and restart Claude Desktop for the MCP server to be loaded.

  2. Allow MCP server access

    When you first ask a question that requires the vHAL tools, Claude will prompt you to allow the MCP server to use its tools. Click "Allow" to enable the vHAL analysis capabilities.

Usage

Basic Usage

The server exposes MCP tools that can be used through compatible clients. Each tool accepts specific parameters and returns structured information about vHAL properties and implementations.

Beginner Prompt Examples

Start with these simple prompts to explore vHAL capabilities:

Basic Property Discovery

Show me all HVAC-related properties and their IDs

Simple Implementation Questions

How do I control the fan speed in Android Automotive?

Property Lookup

Find Android source code for seat heating properties

Basic Temperature Control

What properties do I need to set the cabin temperature?

Understanding Property Types

Explain the HVAC_POWER_ON property and how to use it

Advanced Prompt Examples

Once familiar with basic concepts, try these comprehensive prompts:

Complete System Implementation

I need to implement a climate control system. Can you:
1. Find all HVAC-related properties
2. Explain their relationships and dependencies  
3. Show me the Android source code implementation
4. Provide a step-by-step implementation guide

Please give me a complete analysis for building this system.

Multi-Zone Climate Control

Analyze the implementation requirements for a dual-zone HVAC system. Include:
- Property relationships between driver and passenger zones
- Dependencies and implementation order
- Source code examples from Android
- Best practices for zone management

Seat Memory System

Design a comprehensive seat memory system that includes:
- Position storage and recall (8-way adjustment)
- Heating and cooling integration
- Memory profile management
- Safety considerations and dependencies

Show me the vHAL properties needed and implementation approach.

Safety-Critical Features

I'm implementing defrost and safety features. Analyze:
- Priority systems for defrost override
- Integration with HVAC main system
- Emergency defrost activation
- Window clearing effectiveness

Provide source code examples and safety considerations.

Performance Optimization

Optimize my HVAC implementation for energy efficiency:
- Auto mode algorithms
- Fan speed optimization
- AC compressor management
- Integration with vehicle power management

Include Android source examples and power consumption strategies.

Custom Property Development

I want to add a new custom HVAC feature for air quality monitoring. Help me:
- Understand the property definition process
- Find similar existing properties for reference
- Design the property specification
- Plan the HAL implementation approach

VHAL Code Generation Examples

Use the generate_vhal_implementation_code tool to create complete VHAL implementations:

Smart Dashboard Lighting System

Generate a complete VHAL implementation for a smart dashboard lighting system with the following specifications:

- Property Name: DASHBOARD_SMART_LIGHTING_MODE
- Property ID: 0x15400B01
- Type: INT32 (enumerated values)
- Group: LIGHTS
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Description: Smart dashboard lighting control with adaptive brightness and color temperature
- Enum Values: OFF=0, AUTO=1, DAY=2, NIGHT=3, CUSTOM=4
- Dependencies: NIGHT_MODE, CABIN_LIGHTS_STATE

Please use the generate_vhal_implementation_code tool.

Electric Vehicle Charging Management

I need to implement a comprehensive EV charging management system. Create a VHAL property with these requirements:

- Property Name: EV_CHARGING_PORT_STATUS
- Property ID: 0x15400C01
- Type: INT32 (enum)
- Group: POWER
- Access: READ (status monitoring only)
- Change Mode: ON_CHANGE
- Description: Electric vehicle charging port status and connection state
- Enum Values: DISCONNECTED=0, CONNECTED=1, CHARGING=2, ERROR=3, COMPLETE=4, SCHEDULED=5
- Dependencies: EV_BATTERY_LEVEL, EV_CHARGING_RATE
- Areas: GLOBAL

Generate the complete implementation using generate_vhal_implementation_code.

Advanced HVAC Zone Control

Implement an advanced HVAC zone control system for precise temperature management:

- Property Name: HVAC_ZONE_CLIMATE_PROFILE
- Property ID: 0x15400D01
- Type: FLOAT
- Group: HVAC
- Access: READ_WRITE
- Change Mode: CONTINUOUS
- Description: Advanced HVAC zone climate profile with precise temperature control
- Units: celsius
- Min Value: 16.0
- Max Value: 32.0
- Areas: ["SEAT_ROW_1_LEFT", "SEAT_ROW_1_RIGHT", "SEAT_ROW_2_LEFT", "SEAT_ROW_2_RIGHT"]
- Dependencies: HVAC_TEMPERATURE_SET, HVAC_FAN_SPEED
- Sample Rate: 0.5 Hz (update every 2 seconds)

Use generate_vhal_implementation_code to create the full implementation.

Biometric Seat Adjustment

Create a biometric-based seat adjustment system:

- Property Name: SEAT_BIOMETRIC_PROFILE
- Property ID: 0x15400E01
- Type: STRING
- Group: SEAT
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Description: Biometric-based automatic seat adjustment with user recognition
- Areas: ["SEAT_ROW_1_LEFT", "SEAT_ROW_1_RIGHT"]
- Dependencies: SEAT_HEIGHT_POS, SEAT_FORE_AFT_POS, SEAT_RECLINE_ANGLE

Generate the complete VHAL implementation.

VHAL Pull Request Generation Examples

Use the generate_vhal_pr_message tool to create professional pull request messages:

Smart Dashboard Lighting PR

Generate a comprehensive pull request message for my smart dashboard lighting implementation:

- Property Name: DASHBOARD_SMART_LIGHTING_MODE
- Property ID: 0x15400B01
- Type: INT32
- Group: LIGHTS
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Description: Smart dashboard lighting control with adaptive brightness and color temperature
- Enum Values: {"OFF": 0, "AUTO": 1, "DAY": 2, "NIGHT": 3, "CUSTOM": 4}
- Dependencies: ["NIGHT_MODE", "CABIN_LIGHTS_STATE"]
- JIRA Ticket: AUTO-1234
- Reviewer Suggestions: ["Verify power consumption impact", "Test night mode transitions"]

Please use the generate_vhal_pr_message tool.

EV Charging System PR

Create a pull request message for my electric vehicle charging management system:

- Property Name: EV_CHARGING_PORT_STATUS
- Property ID: 0x15400C01
- Type: INT32
- Group: POWER
- Access: READ
- Change Mode: ON_CHANGE
- Description: Electric vehicle charging port status and connection state
- Enum Values: {"DISCONNECTED": 0, "CONNECTED": 1, "CHARGING": 2, "ERROR": 3, "COMPLETE": 4, "SCHEDULED": 5}
- Dependencies: ["EV_BATTERY_LEVEL", "EV_CHARGING_RATE"]
- Areas: ["GLOBAL"]
- Breaking Change: false

Generate the complete PR message.

Advanced HVAC Zone Control PR

Generate a pull request message for my advanced HVAC zone control implementation:

- Property Name: HVAC_ZONE_CLIMATE_PROFILE
- Property ID: 0x15400D01
- Type: FLOAT
- Group: HVAC
- Access: READ_WRITE
- Change Mode: CONTINUOUS
- Description: Advanced HVAC zone climate profile with precise temperature control
- Units: celsius
- Min Value: 16.0
- Max Value: 32.0
- Areas: ["SEAT_ROW_1_LEFT", "SEAT_ROW_1_RIGHT", "SEAT_ROW_2_LEFT", "SEAT_ROW_2_RIGHT"]
- Dependencies: ["HVAC_TEMPERATURE_SET", "HVAC_FAN_SPEED"]
- Sample Rate: 0.5
- Breaking Change: false
- JIRA Ticket: HVAC-567
- Reviewer Suggestions: ["Review energy efficiency impact", "Validate zone isolation"]

Create a professional PR message with all technical details and checklists.

VHAL Property Validation Examples

Use the validate_vhal_property_request tool to follow Android best practices and validate property requests:

Check for Existing Properties

I want to implement a seat heating control feature. Can you validate if I should use an existing Android property or create a new VENDOR_ property?

- Property Name: SEAT_HEATING_CONTROL
- Description: Control seat heating levels for driver and passenger seats
- Property Type: INT32
- Min Value: 0
- Max Value: 5
- Areas: ["SEAT_ROW_1_LEFT", "SEAT_ROW_1_RIGHT"]

Please use the validate_vhal_property_request tool.

Validate Climate Control Properties

Validate this climate control property request:

- Property Name: CLIMATE_AUTO_MODE
- Description: Enable automatic climate control mode
- Property Type: BOOLEAN
- Group: HVAC
- Access: READ_WRITE
- Change Mode: ON_CHANGE

Use validate_vhal_property_request to check if this exists in Android 16.

Custom Vehicle Feature Validation

I need to implement a custom vehicle feature. Please validate:

- Property Name: VEHICLE_AMBIENT_SOUND_CONTROL
- Description: Control ambient sound system for enhanced driving experience
- Property Type: INT32
- Group: VENDOR
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Enum Values: {"OFF": 0, "NATURE": 1, "CITY": 2, "HIGHWAY": 3, "CUSTOM": 4}
- Dependencies: ["AUDIO_VOLUME", "CABIN_LIGHTS_STATE"]

Please use validate_vhal_property_request to determine if I should create a VENDOR_ property.

Advanced Property Validation

Validate this advanced property request with full specifications:

- Property Name: BIOMETRIC_DRIVER_RECOGNITION
- Description: Biometric driver recognition system for personalized vehicle settings
- Property Type: STRING
- Group: VENDOR
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Units: none
- Areas: ["GLOBAL"]
- Dependencies: ["SEAT_MEMORY_SELECT", "MIRROR_Y_POS", "HVAC_TEMPERATURE_SET"]
- Sample Rate: 0.1 Hz

Use validate_vhal_property_request to check Android 16 compatibility and get implementation guidance.

Property Type Validation

I'm implementing a tire pressure monitoring system. Please validate:

- Property Name: TIRE_PRESSURE_MONITORING_DETAILED
- Description: Detailed tire pressure monitoring with per-tire data and alerts
- Property Type: FLOAT_VEC
- Group: POWER
- Access: READ
- Change Mode: CONTINUOUS
- Units: psi
- Min Value: 0.0
- Max Value: 100.0
- Areas: ["WHEEL_LEFT_FRONT", "WHEEL_RIGHT_FRONT", "WHEEL_LEFT_REAR", "WHEEL_RIGHT_REAR"]
- Sample Rate: 1.0 Hz

Use validate_vhal_property_request to determine if Android 16 has equivalent functionality.

Expert Prompt: Complete VHAL System Development

This expert-level prompt demonstrates using all 6 MCP tools in a comprehensive workflow for developing a complete automotive system:

I'm developing a next-generation intelligent climate control system for luxury electric vehicles. This system needs to integrate multiple subsystems and provide personalized comfort experiences. Please help me design and implement this system using a comprehensive analysis approach:

**Phase 1: Discovery & Research (Tools 1-2)**
First, help me understand the complete landscape:
1. explain the overall VHAL climate control architecture, focusing on:
   - Multi-zone HVAC systems
   - Integration with seat heating/cooling
   - Energy efficiency considerations for EVs
   - Safety and emergency override systems

2. find all climate-related properties, including:
   - HVAC properties (search: "HVAC")
   - Seat thermal properties (search: "SEAT")
   - Power management properties (search: "POWER")
   - Any auxiliary heating properties (search: "HEAT")

**Phase 2: System Analysis & Dependencies (Tool 3)**
3. analyze the complete ecosystem for:
   - "HVAC_TEMPERATURE_SET" - understand temperature control relationships
   - "SEAT_HEAT" - analyze seat thermal dependencies
   - "HVAC_POWER_ON" - understand system power relationships
   - "HVAC_FAN_SPEED" - analyze airflow control dependencies

**Phase 3: Implementation Deep-Dive (Tool 4)**
4. get detailed source code analysis for:
   - "HVAC_TEMPERATURE_SET" - see how Android implements temperature control
   - "HVAC_AUTO_ON" - understand automatic mode implementation
   - "SEAT_HEAT_LEFT" - analyze seat heating implementation patterns
   - "HVAC_AC_ON" - understand AC compressor control

**Phase 5: Property Validation (Tool 5)**
5. Before implementing, validate the property request:

- Property Name: CLIMATE_INTELLIGENT_PROFILE
- Description: Intelligent climate control with predictive comfort algorithms, energy optimization, and personalized user profiles
- Property Type: INT32
- Group: HVAC
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Enum Values: {"PROFILE_ECO": 0, "PROFILE_COMFORT": 1, "PROFILE_SPORT": 2, "PROFILE_CUSTOM": 3, "PROFILE_SLEEP": 4, "PROFILE_DEFROST_PRIORITY": 5}
- Dependencies: ["HVAC_TEMPERATURE_SET", "HVAC_FAN_SPEED", "SEAT_HEAT_LEFT", "SEAT_HEAT_RIGHT", "HVAC_AC_ON", "EV_BATTERY_LEVEL"]
- Areas: ["GLOBAL", "SEAT_ROW_1_LEFT", "SEAT_ROW_1_RIGHT"]

Use validate_vhal_property_request to determine if this should be a VENDOR_ property or if Android 16 has equivalent functionality.

**Phase 6: Custom Implementation (Tool 6)**
6. Based on the validation results, create the property implementation:

- Property Name: CLIMATE_INTELLIGENT_PROFILE
- Property ID: 0x15400F01
- Type: INT32 (enumerated values)
- Group: HVAC
- Access: READ_WRITE
- Change Mode: ON_CHANGE
- Description: Intelligent climate control with predictive comfort algorithms, energy optimization, and personalized user profiles
- Enum Values: PROFILE_ECO=0, PROFILE_COMFORT=1, PROFILE_SPORT=2, PROFILE_CUSTOM=3, PROFILE_SLEEP=4, PROFILE_DEFROST_PRIORITY=5
- Dependencies: HVAC_TEMPERATURE_SET, HVAC_FAN_SPEED, SEAT_HEAT_LEFT, SEAT_HEAT_RIGHT, HVAC_AC_ON, EV_BATTERY_LEVEL
- Units: none
- Areas: ["GLOBAL", "SEAT_ROW_1_LEFT", "SEAT_ROW_1_RIGHT"]

7. Please also add a pull request message i can add to the Pull request once i implemented it.

**Expected Deliverables:**
After running this comprehensive analysis, I expect to receive:

1. **Complete System Understanding** -  architectural overview and best practices
2. **Property Inventory** -  all relevant properties with IDs and locations
3. **Dependency Maps** - implementation order and relationships
4. **Implementation Patterns** -  real Android source code examples
5. **Property Validation** - Android best practices validation and recommendations
6. **Production-Ready Code** -  complete implementation files
7. **Pull Request Text** - Copy and Paste Pull request text

This comprehensive approach will give me everything needed to implement a production-quality intelligent climate control system.

VHAL Code Generator Features

The generate_vhal_implementation_code tool creates complete, production-ready VHAL implementations:

Generated Files

For each VHAL property, the generator creates:

Core HAL Files:

  • types.hal - Property definition and enums

  • DefaultConfig.h - Property configuration

  • EmulatedVehicleHal.cpp - Implementation logic

  • VehicleProperty.aidl - AIDL interface

Framework Integration:

  • VehiclePropertyIds.java - Java constants

  • CarPropertyManager.java - API methods

  • Configuration JSON files

Testing:

  • VehicleHalTest.cpp - C++ unit tests

  • VehiclePropertyTest.java - Java integration tests

System Configuration:

  • SEPolicy rules

  • Build configurations

  • Documentation

Tool Parameters

Required:

  • name: Property name (e.g., "HVAC_STEERING_WHEEL_HEAT")

  • property_id: Unique property ID (hex format, e.g., "0x15400A03")

  • property_type: Data type (BOOLEAN, INT32, INT64, FLOAT, STRING, BYTES, *_VEC, MIXED)

  • group: Property group (HVAC, SEAT, LIGHTS, POWER, CLIMATE, etc.)

  • access: Access mode (READ, WRITE, READ_WRITE)

  • change_mode: Change mode (STATIC, ON_CHANGE, CONTINUOUS)

  • description: Property description for documentation

Optional:

  • units: Units (e.g., "celsius", "rpm")

  • min_value: Minimum value for numeric types

  • max_value: Maximum value for numeric types

  • areas: List of vehicle areas/zones

  • enum_values: Dict of enum names and values for INT32 enum properties

  • dependencies: List of dependent property names

  • sample_rate_hz: Sample rate for continuous properties

Property Types Supported

Basic Types:

  • BOOLEAN: True/false values

  • INT32: 32-bit integers

  • INT64: 64-bit integers

  • FLOAT: Floating point numbers

  • STRING: Text values

  • BYTES: Binary data

Vector Types:

  • INT32_VEC: Arrays of integers

  • FLOAT_VEC: Arrays of floats

  • STRING_VEC: Arrays of strings

  • BYTES_VEC: Arrays of binary data

Special Types:

  • MIXED: Complex structured data

Property Groups

  • BODY: Body control systems

  • CABIN: Interior cabin controls

  • CLIMATE: Climate control systems

  • DISPLAY: Display and infotainment

  • ENGINE: Engine management

  • HVAC: Heating, ventilation, air conditioning

  • INFO: Vehicle information

  • INSTRUMENT_CLUSTER: Dashboard instruments

  • LIGHTS: Lighting systems

  • MIRROR: Mirror controls

  • POWER: Power management

  • SEAT: Seat controls

  • VEHICLE_MAP_SERVICE: Navigation services

  • WINDOW: Window controls

  • VENDOR: Vendor-specific properties

Generated Output

When you use the code generator, it produces:

  1. Complete Summary - Property configuration and overview

  2. Generated Files - All 10+ necessary implementation files with syntax highlighting

  3. Implementation Guide - Step-by-step integration instructions

  4. Usage Examples - Sample code for using the property

  5. Build Commands - AAOS build and test commands

Use Cases

Climate Control System Development

Implement comprehensive HVAC systems with proper property relationships:

  • Temperature Control: Multi-zone heating and cooling

  • Fan Management: Speed and direction control with feedback

  • Air Conditioning: AC compressor and recirculation control

  • Auxiliary Heating: Seat warmers, steering wheel, and mirror heating

  • Safety Features: Defrost and defogging capabilities

Seat Control Systems

Develop advanced seat control features:

  • Memory Systems: Position storage and recall

  • Comfort Features: Heating, cooling, and massage functions

  • Movement Control: Multi-axis positioning and adjustment

  • Safety Integration: Occupancy detection and airbag coordination

Property Discovery and Analysis

Understand vHAL property ecosystems:

  • Dependency Mapping: Identify property relationships

  • Implementation Planning: Get step-by-step development guidance

  • Source Code Analysis: Access real Android implementations

  • Best Practices: Learn from existing property patterns

Configuration

MCP Client Integration

To use with MCP-compatible clients, configure the server endpoint and ensure proper tool registration. The server automatically discovers and exposes all available vHAL analysis tools.

Performance Optimization

The server uses parallel scraping and caching mechanisms for optimal performance:

  • Parallel Documentation Scraping: Concurrent fetching of Android documentation

  • Property Database Caching: In-memory storage of frequently accessed properties

  • Source Code Analysis Caching: Optimized repeated analysis operations

Development

Project Structure

vhal-mcp-server/
├── src/vhal_mcp_server/
│   ├── server.py              # Main MCP server implementation
│   ├── core/
│   │   ├── analyzers.py       # Source code analysis tools
│   │   ├── database.py        # Property database and lookups
│   │   ├── property_validator.py # Property validation and VENDOR_ generation
│   │   ├── scrapers.py        # Documentation scraping utilities
│   │   └── source_validator.py # Source validation utilities
│   ├── utils/
│   │   ├── relationships.py   # Property relationship analysis
│   │   └── summarizers.py     # Documentation summarization
│   ├── generators/
│   │   ├── code_generator.py  # VHAL code generation
│   │   └── pr_generator.py    # Pull request generation
│   └── models.py             # Data models and structures
└── tests/                    # Test suite

Testing

Run the test suite:

python -m pytest test_vhal.py -v

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Implement your changes with tests

  4. Submit a pull request

Requirements

  • mcp[cli] >= 1.10.1 - Model Context Protocol implementation

  • requests >= 2.31.0 - HTTP client for documentation scraping

  • beautifulsoup4 >= 4.12.0 - HTML parsing for documentation

  • lxml >= 4.9.0 - XML/HTML processing

License

This project is licensed under the MIT License. See the LICENSE file for details.

Support

For questions, issues, or contributions:

Available Tools

8 tools
analyze_vhal_implementationA

Analyze Android source code to show how a vHAL property is implemented, including actual source code, file locations, and usage examples.

Args:
    property_name: The vHAL property name to analyze (e.g., "HVAC_STEERING_WHEEL_HEAT", "SEAT_MEMORY_SELECT")
    android_version: Optional Android version to analyze (e.g., "android13", "android14", "android15", "android16")
                    If not specified, uses Android 15 as default. Supported versions:
                    - android13: Android 13 (first vHAL introduction)
                    - android14: Android 14 (major vHAL changes)
                    - android15: Android 15 (current stable, default)
                    - android16: Android 16 (latest)

Returns:
    Comprehensive analysis of the property implementation including source code, dependencies, and usage examples
ParametersJSON Schema
NameRequiredDescriptionDefault
property_nameYes
android_versionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 discloses that the tool analyzes source code and returns comprehensive analysis including source code, dependencies, and usage examples. However, it does not mention read-only behavior, potential errors (e.g., property not found), or any limitations (e.g., network access). For a read-only analysis tool, the lack of explicit safety disclosure is a slight gap.

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 and well-structured with separate sections for Args and Returns. Every sentence adds value: main purpose, parameter details, and return overview. No fluff 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?

Given the tool has an output schema (not shown) and two parameters with exhaustive description coverage, the description is mostly complete. It doesn't explain behavior for invalid property names or missing versions, but the Args section is thorough. Slightly more context on edge cases would push it to 5.

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?

With 0% schema description coverage, the description fully compensates. It explains property_name with concrete examples (HVAC_STEERING_WHEEL_HEAT, SEAT_MEMORY_SELECT) and android_version with all supported values, default, and context (e.g., 'first vHAL introduction'). This adds meaning far beyond the bare schema field names.

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: to analyze Android source code and show how a vHAL property is implemented, including source code, file locations, and usage examples. This is a specific verb+resource+scope and differentiates from siblings like summarize_vhal (which likely summarizes) and lookup_android_source_code (which likely looks up generic source code).

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: use when you need detailed implementation analysis of a vHAL property. However, it does not explicitly state when to prefer this over alternatives like summarize_vhal or generate_vhal_implementation_code, nor does it provide exclusions. The arg descriptions give some context (e.g., default Android version), but no when/when-not guidance.

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

generate_vhal_implementation_codeA

Generate complete VHAL property implementation code for Android Automotive OS (AAOS).

This tool generates all necessary files, configurations, tests, and documentation
needed to implement a new VHAL property from scratch.

Args:
    name: Property name (e.g., "HVAC_STEERING_WHEEL_HEAT")
    property_id: Unique property ID (hex format, e.g., "0x15400A03")
    property_type: Data type (BOOLEAN, INT32, INT64, FLOAT, STRING, BYTES, *_VEC, MIXED)
    group: Property group (HVAC, SEAT, LIGHTS, POWER, CLIMATE, etc.)
    access: Access mode (READ, WRITE, READ_WRITE)
    change_mode: Change mode (STATIC, ON_CHANGE, CONTINUOUS)
    description: Property description for documentation
    units: Optional units (e.g., "celsius", "rpm")
    min_value: Optional minimum value for numeric types
    max_value: Optional maximum value for numeric types
    areas: Optional list of vehicle areas/zones
    enum_values: Optional dict of enum names and values for INT32 enum properties
    dependencies: Optional list of dependent property names
    sample_rate_hz: Optional sample rate for continuous properties

Returns:
    Complete implementation including all generated files, summary, and implementation guide
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
areasNo
groupYes
unitsNo
accessYes
max_valueNo
min_valueNo
change_modeYes
descriptionYes
enum_valuesNo
property_idYes
dependenciesNo
property_typeYes
sample_rate_hzNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It explains what is produced (files, configurations, tests, documentation) and that the return includes a summary and guide. However, it does not disclose potential side effects, prerequisites (e.g., AAOS source tree access), or whether files are written versus returned as text.

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 long but well-structured with clear Args and Returns sections. It front-loads the core purpose and each parameter gets exactly one line. No redundant sentences; every detail earns its place given the tool's complexity.

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 14-parameter generator with an output schema, the description covers all inputs and states the return value. It misses minor constraints like validation rules or interactions between parameters, but the output schema and the detailed arg list provide sufficient context for correct invocation.

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?

The description lists every parameter with a short explanation and concrete examples (e.g., `HVAC_STEERING_WHEEL_HEAT`, `0x15400A03`). This fully compensates for the sparse schema which has no property descriptions. It adds clarity on formats, defaults, and relationships (e.g., enum_values for INT32 properties).

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 opens with a specific verb and resource: 'Generate complete VHAL property implementation code for Android Automotive OS (AAOS).' It clearly distinguishes this from sibling tools like analyze, validate, or summarize by focusing on generation. The scope ('from scratch') further defines its role.

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 states the tool is used when a new VHAL property must be implemented from scratch, which is clear context. It does not explicitly exclude alternatives or name them, but the purpose and inputs make the intended usage obvious given the sibling list.

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

generate_vhal_pr_messageA

Generate a comprehensive pull request message for VHAL property implementation.

This tool creates a structured, professional PR description that includes all necessary
details about the VHAL property, implementation changes, testing requirements, and
review checklist.

Args:
    property_name: Property name (e.g., "HVAC_STEERING_WHEEL_HEAT")
    property_id: Unique property ID (hex format, e.g., "0x15400A03")
    property_type: Data type (BOOLEAN, INT32, INT64, FLOAT, STRING, BYTES, *_VEC, MIXED)
    group: Property group (HVAC, SEAT, LIGHTS, POWER, CLIMATE, etc.)
    access: Access mode (READ, WRITE, READ_WRITE)
    change_mode: Change mode (STATIC, ON_CHANGE, CONTINUOUS)
    description: Property description for documentation
    units: Optional units (e.g., "celsius", "rpm")
    min_value: Optional minimum value for numeric types
    max_value: Optional maximum value for numeric types
    areas: Optional list of vehicle areas/zones
    enum_values: Optional dict of enum names and values for INT32 enum properties
    dependencies: Optional list of dependent property names
    sample_rate_hz: Optional sample rate for continuous properties
    breaking_change: Whether this introduces breaking changes (default: False)
    jira_ticket: Optional JIRA ticket reference
    reviewer_suggestions: Optional list of specific review points

Returns:
    Complete pull request message ready to copy-paste into GitHub/GitLab
ParametersJSON Schema
NameRequiredDescriptionDefault
areasNo
groupYes
unitsNo
accessYes
max_valueNo
min_valueNo
change_modeYes
descriptionYes
enum_valuesNo
jira_ticketNo
property_idYes
dependenciesNo
property_nameYes
property_typeYes
sample_rate_hzNo
breaking_changeNo
reviewer_suggestionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are present, so description must carry the burden. It discloses output format ('structured, professional PR description'), includes itemized content, and notes the result is 'ready to copy-paste'. It does not describe side effects or limitations, but for a text generation tool this is acceptable.

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?

Description is appropriately sized for 17 parameters, with a clear first sentence and structured Arg/Returns sections. Each line adds value; no fluff.

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

Completeness5/5

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

Combined with schema and output schema context, the description provides sufficient information for correct invocation. It covers purpose, all parameters, and return value. No obvious gaps.

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?

Schema description coverage is 0%, but description provides an Args section with each parameter, including type examples, optionality, and context. This fully compensates for the schema's lack of descriptions and adds 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?

Description uses specific verb 'Generate' and identifies resource 'pull request message for VHAL property implementation'. Clearly distinguishes from sibling tools that focus on code generation, validation, or analysis.

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?

Description implies tool is used when a copy-paste-ready PR message is needed for VHAL property implementation. It does not explicitly discuss alternative tools or exclusions, but the context is clear enough for selection.

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

lookup_android_source_codeA

Lookup Android source code for a given keyword.

Args:
    keyword: Search term (e.g., "SEAT", "HVAC", "vehicle properties")
    category: Category to focus search on (default: "vhal")

Returns:
    Detailed information about the source code location and content
ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
categoryNovhal

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/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 mentions that it returns 'Detailed information about the source code location and content', but does not explicitly state that it is read-only or disclose any potential side effects or prerequisites, leaving some ambiguity.

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 compact with a clear structure: a one-sentence purpose, an Args section with examples, and a Returns line. Every sentence adds value and there is no redundant or verbose content.

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

Completeness5/5

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

For a simple two-parameter lookup tool with an output schema, the description covers the purpose, parameters, and return behavior adequately. The existence of an output schema means detailed return structure need not be repeated, and the description suffices.

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

Parameters4/5

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

The schema provides basic types and defaults but no descriptions (0% coverage). The description compensates by giving keyword examples ('SEAT', 'HVAC', 'vehicle properties') and clarifying that category is a focus area with default 'vhal', adding meaningful context beyond the schema.

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

Purpose5/5

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

The description states 'Lookup Android source code for a given keyword' which clearly identifies the verb (lookup) and resource (Android source code), and provides examples of keywords. It distinguishes from siblings such as generate_vhal_implementation_code and analyze_vhal_implementation, which focus on generation and analysis rather than lookup.

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 does not provide any guidance on when to use this tool versus its siblings, such as discover_related_properties or summarize_vhal. It simply states what it does without mentioning alternatives or exclusions.

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

summarize_vhalC

Summarize vHAL implementation based on a question.

Args:
    question: Question about vHAL implementation

Returns:
    Summary of relevant vHAL information from Android documentation
ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only restates the purpose and return type, without mentioning side effects, limitations, read-only nature, or how the summary is generated. The agent cannot infer whether this is a safe, idempotent lookup or if it has any 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.

Conciseness4/5

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

The description is short and front-loaded with the main action, and the Args/Returns structure helps readability. However, the Returns line is largely redundant with the opening sentence, so it could be trimmed further. Overall, it is appropriately concise.

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 sits among seven sibling tools and has only one parameter, the description is under-specified. It does not clarify what qualifies as a useful question, what the output summary looks like, or how it differs from analysis/validation/generation tools. The presence of an output schema reduces some burden, but it is not visible here, and the description fails to offer sufficient guidance.

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%, so the description must compensate, but it only restates the parameter as 'Question about vHAL implementation'. This adds little meaning and no examples, constraints, or formatting details. The description provides only marginal value over the raw schema title.

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?

Clear action verb 'summarize' with target 'vHAL implementation', and it states that it returns relevant information from Android documentation. However, it does not explicitly differentiate from sibling tools like analyze_vhal_implementation or lookup_android_source_code, so it stops short of a 5.

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 phrase 'based on a question' implies usage when the agent needs to summarize vHAL details, but there is no explicit guidance on when not to use this tool or how it compares to alternatives. No exclusion criteria or alternative suggestions are provided.

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

validate_vhal_property_requestA

Validate vHAL property request and recommend using existing Android property or creating VENDOR_ property.

This tool follows Android best practices: check if a property already exists in the latest Android release
(currently Android 16) and either recommend using the existing property or generate a new VENDOR_ property
with proper naming convention.

Args:
    property_name: Requested property name (e.g., "SEAT_MASSAGE_INTENSITY")
    property_description: Description of what the property does
    property_type: Data type (BOOLEAN, INT32, INT64, FLOAT, STRING, BYTES, *_VEC, MIXED) - default: INT32
    group: Property group (HVAC, SEAT, LIGHTS, POWER, VENDOR, etc.) - default: VENDOR
    access: Access mode (READ, WRITE, READ_WRITE) - default: READ_WRITE
    change_mode: Change mode (STATIC, ON_CHANGE, CONTINUOUS) - default: ON_CHANGE
    units: Optional units (e.g., "celsius", "rpm")
    min_value: Optional minimum value for numeric types
    max_value: Optional maximum value for numeric types
    areas: Optional list of vehicle areas/zones
    enum_values: Optional dict of enum names and values for INT32 enum properties
    dependencies: Optional list of dependent property names
    sample_rate_hz: Optional sample rate for continuous properties
    android_version: Android version to check against (default: android16)

Returns:
    Comprehensive validation result with recommendations and implementation guidance
ParametersJSON Schema
NameRequiredDescriptionDefault
areasNo
groupNoVENDOR
unitsNo
accessNoREAD_WRITE
max_valueNo
min_valueNo
change_modeNoON_CHANGE
enum_valuesNo
dependenciesNo
property_nameYes
property_typeNoINT32
sample_rate_hzNo
android_versionNo
property_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explains the decision logic (checking against Android 16 and recommending either existing or VENDOR_ property) and mentions the naming convention. It doesn't explicitly confirm read-only behavior, but the advisory nature is clear.

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 long but well-organized with an intro, Args list, and Returns. The arg details are necessary given the schema lacks descriptions, and the structure makes it easy to parse. It earns a 4 rather than 5 due to some redundancy (e.g., repeating 'default' values).

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 complexity (14 parameters, no annotations) and the presence of an output schema, the description covers the essential aspects: purpose, decision logic, parameter semantics, and a high-level return description. It lacks only minor details like potential errors or prerequisites, which would make it fully complete.

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?

The description provides a detailed Args section covering all 14 parameters with types, defaults, and examples (e.g., property_name example, property_type enum values). This fully compensates for the 0% schema description coverage and adds meaning far beyond the bare 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: validate a vHAL property request and recommend either using an existing Android property or creating a new VENDOR_ property. This specific verb+resource combination distinguishes it from sibling tools that generate code or summarize sources.

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

Usage Guidelines4/5

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

The description implies when to use this tool: when validating a vHAL property request against Android best practices and Android 16. It provides clear context but does not explicitly state exclusions or mention alternative tools, so it falls short of a 5.

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

validate_vhal_sources_and_enhance_summaryA

Enhanced vHAL summary with source validation and transparency.

This tool provides an enhanced version of vHAL summaries that includes:
- Source URL validation to ensure information comes from accessible sources
- Confidence scoring based on source accessibility
- Clear citations showing which sources contributed to each piece of information
- Alternative source suggestions for failed URLs
- Transparency about cached vs. live data

Args:
    question: Question about vHAL implementation
    include_source_validation: Whether to validate URLs are accessible (default: True)
    max_sources_to_check: Maximum number of sources to validate (default: 10)
    
Returns:
    Enhanced summary with source citations, validation status, and confidence metrics
ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
max_sources_to_checkNo
include_source_validationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/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. It discloses source URL validation, confidence scoring, alternative source suggestions, and transparency about cached vs. live data. While it doesn't discuss error handling or side effects, the disclosed behaviors are substantial for a read/analysis tool.

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 structured with a summary, bullet-list of features, and an Args/Returns section. It is somewhat verbose but well organized; each section earns its place, and key information is front-loaded.

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?

The description provides a complete picture: it explains the enhanced features, parameter semantics, and return value description. Given the output schema exists, the return description is bonus content. Missing details like rate limits are not critical for this read tool.

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?

Schema coverage is 0%, and the description compensates by explaining all three parameters: question, include_source_validation, and max_sources_to_check, including defaults. This adds meaningful semantics beyond the bare schema and is exactly the kind of compensation needed.

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 provides an enhanced vHAL summary with source validation and transparency, listing specific features such as confidence scoring and citations. This is a specific verb+resource and distinguishes it from the sibling summarize_vhal tool, which likely lacks validation.

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

Usage Guidelines4/5

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

The description implies use when enhanced summaries with source validation and transparency are needed, providing clear context. However, it does not explicitly compare to alternatives like summarize_vhal or state when not to use this tool, so it lacks explicit exclusions or alternative mentions.

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. 8 tool updatesv0.1.0
    • First observedanalyze_vhal_implementation
    • First observeddiscover_related_properties
    • First observedgenerate_vhal_implementation_code
    • First observedgenerate_vhal_pr_message
    • First observedlookup_android_source_code
    • First observedsummarize_vhal
    • First observedvalidate_vhal_property_request
    • First observedvalidate_vhal_sources_and_enhance_summary

TDQS

A3.9/5.0
Disambiguation3/5

Several tools have overlapping purposes: summarize_vhal and validate_vhal_sources_and_enhance_summary both provide summaries, and lookup_android_source_code and analyze_vhal_implementation both search for source code. While descriptions clarify differences, an agent might struggle to pick the right one without careful reading.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., summarize_vhal, generate_vhal_implementation_code, validate_vhal_property_request). This makes the API predictable and easy to navigate.

Tool Count5/5

The server provides 8 tools, which is well-scoped for its purpose of vHAL property implementation support. Each tool covers a distinct step in the workflow without being overwhelming.

Completeness5/5

The tool set covers the full lifecycle: validating a property request, discovering related properties, generating implementation code, analyzing existing implementations, and creating PR messages. No obvious critical gaps are present.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • A
    license
    C
    quality
    C
    maintenance
    Enables comprehensive control of Android devices via ADB for Flutter development, UI testing, and visual QA workflows. Provides 60+ tools for device management, UI inspection, app testing, performance profiling, and debugging through natural language.
    77
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides Android development assistance following NowInAndroid best practices, including architecture patterns, code generation for feature modules/ViewModels/repositories, and searchable documentation for Jetpack Compose and modularization.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables searching and browsing Android source code across projects like Android, AndroidX, and Android Studio via cs.android.com. It provides tools for regex-based code searches, full file content retrieval, and symbol autocomplete suggestions.
    4
    17
    25
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides on-demand access to AOSP and Jetpack source code to help AI understand Android framework internals. It features a hybrid architecture using Tree-sitter and LSP for precise code extraction, cross-file navigation, and local source indexing.
    11
    100
    Apache 2.0

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/feevlic/vhal-mcp-server'

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