vHal MCP Server
Provides tools for analyzing and implementing Android Vehicle Hardware Abstraction Layer (vHAL) properties, including property discovery, source code lookup, implementation guidance, and code generation for Android Automotive OS development.
Generates comprehensive pull request messages for VHAL implementations with structured descriptions, technical details, testing requirements, and review checklists formatted for GitHub integration.
Generates comprehensive pull request messages for VHAL implementations with structured descriptions, technical details, testing requirements, and review checklists formatted for GitLab integration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vHal MCP Servershow me the source code for HVAC temperature control properties"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone the repository
Using HTTPS:
git clone https://github.com/feevlic/vhal-mcp-server.gitUsing SSH:
git clone git@github.com:feevlic/vhal-mcp-server.gitNavigate to the project directory
cd vhal-mcp-serverInstall dependencies
pip install -e .
MCP Client Configuration
Claude Desktop Configuration
Find your
uvinstallation pathwhich uvLocate your Claude Desktop configuration file
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
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/uvwith the output from step 1 (e.g.,/Users/yourusername/.local/bin/uv)Replace
/path/to/vhal-mcp-serverwith the actual path where you cloned the repositoryOn macOS, GUI applications like Claude Desktop may not have access to your shell's PATH, so using full paths is required
Restart Claude Desktop
After saving the configuration file, completely quit and restart Claude Desktop for the MCP server to be loaded.
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 IDsSimple Implementation Questions
How do I control the fan speed in Android Automotive?Property Lookup
Find Android source code for seat heating propertiesBasic 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 itAdvanced 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 managementSeat 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 approachVHAL 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 enumsDefaultConfig.h- Property configurationEmulatedVehicleHal.cpp- Implementation logicVehicleProperty.aidl- AIDL interface
Framework Integration:
VehiclePropertyIds.java- Java constantsCarPropertyManager.java- API methodsConfiguration JSON files
Testing:
VehicleHalTest.cpp- C++ unit testsVehiclePropertyTest.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 typesmax_value: Maximum value for numeric typesareas: List of vehicle areas/zonesenum_values: Dict of enum names and values for INT32 enum propertiesdependencies: List of dependent property namessample_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:
Complete Summary - Property configuration and overview
Generated Files - All 10+ necessary implementation files with syntax highlighting
Implementation Guide - Step-by-step integration instructions
Usage Examples - Sample code for using the property
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 suiteTesting
Run the test suite:
python -m pytest test_vhal.py -vContributing
Fork the repository
Create a feature branch
Implement your changes with tests
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:
Repository: https://github.com/feevlic/vhal-mcp-server
Documentation: Refer to Android vHAL documentation at https://source.android.com/docs/automotive/vhal
Related Resources
Available Tools
8 toolsanalyze_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
| Name | Required | Description | Default |
|---|---|---|---|
| property_name | Yes | ||
| android_version | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| areas | No | ||
| group | Yes | ||
| units | No | ||
| access | Yes | ||
| max_value | No | ||
| min_value | No | ||
| change_mode | Yes | ||
| description | Yes | ||
| enum_values | No | ||
| property_id | Yes | ||
| dependencies | No | ||
| property_type | Yes | ||
| sample_rate_hz | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| areas | No | ||
| group | Yes | ||
| units | No | ||
| access | Yes | ||
| max_value | No | ||
| min_value | No | ||
| change_mode | Yes | ||
| description | Yes | ||
| enum_values | No | ||
| jira_ticket | No | ||
| property_id | Yes | ||
| dependencies | No | ||
| property_name | Yes | ||
| property_type | Yes | ||
| sample_rate_hz | No | ||
| breaking_change | No | ||
| reviewer_suggestions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| category | No | vhal |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| areas | No | ||
| group | No | VENDOR | |
| units | No | ||
| access | No | READ_WRITE | |
| max_value | No | ||
| min_value | No | ||
| change_mode | No | ON_CHANGE | |
| enum_values | No | ||
| dependencies | No | ||
| property_name | Yes | ||
| property_type | No | INT32 | |
| sample_rate_hz | No | ||
| android_version | No | ||
| property_description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| max_sources_to_check | No | ||
| include_source_validation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
8 tool updates
v0.1.0- First observed
analyze_vhal_implementation - First observed
discover_related_properties - First observed
generate_vhal_implementation_code - First observed
generate_vhal_pr_message - First observed
lookup_android_source_code - First observed
summarize_vhal - First observed
validate_vhal_property_request - First observed
validate_vhal_sources_and_enhance_summary
TDQS
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.
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.
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.
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
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
Get up-to-date, version-specific documentation and code examples from official sources directly in…
Control your Tesla from your AI assistant - climate, charging, access, and security.
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
Build, deploy, and sell AI agents for local-service businesses - from your IDE.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables 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.77MIT
- AlicenseNot gradedqualityDmaintenanceProvides 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
- AlicenseBqualityCmaintenanceEnables 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.41725MIT
- AlicenseBqualityCmaintenanceProvides 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.11100Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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