lava-mcp
This server provides an MCP interface to a LAVA (Linaro Automated Validation Architecture) instance, allowing AI agents to query the board farm, manage test jobs, and interact with hardware test infrastructure.
Observation & Discovery
whoami/version— Identify the authenticated user and LAVA server versionlist_devices/get_device— List or inspect devices with filters by type, health, or stateget_device_dictionary— Get a device's rendered Jinja2/YAML configurationget_qdl_info— Summarize QDL/flash capabilities (useful for Qualcomm boards)list_device_types/list_workers— List device types and dispatcher workers
Job Monitoring
list_jobs/get_job— List or inspect test jobs with filters (state, health, submitter, device type)get_job_definition— Retrieve the original YAML job definitionget_job_logs— Fetch job logs with optional line range filteringget_job_results— Get test-case pass/fail resultsget_queue/get_running/get_lab_health— View queue, running job counts, and overall lab health
Job Management (Write Operations)
validate_job— Validate a YAML job definition without submittingsubmit_job— Submit a job and receive new job ID(s)cancel_job/resubmit_job— Cancel or resubmit jobsset_job_priority— Adjust a job's queue priority (0–100)
Additional Features
Read-only mode: Disable write operations for safe observation (
--read-only)Credential flexibility: Supports per-request HTTP header auth (multi-user) or environment-based auth
Flexible transport: Runs over stdio or streamable HTTP, with optional HTTPS via Caddy
SSH gateway: In hosted mode, enables an SSH rendezvous for board sessions without inbound worker access
Interactive board sessions (hosted mode): Open sessions to boards, run commands (e.g., fastboot, adb), and close sessions
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., "@lava-mcplist devices available in the board farm"
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.
lava-mcp has moved
This repository has moved to https://github.com/lava-mcp/lava-mcp
Please update your remotes, bookmarks, and issue links:
git remote set-url origin git@github.com:lava-mcp/lava-mcp.gitAll history, issues, and ongoing development live at the new location.
Available Tools
21 toolscancel_jobB
Request cancellation of a running or queued job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavior disclosure. It only says 'cancellation' without specifying if it is irreversible, requires permissions, or what happens to associated resources. This is insufficient for a destructive action.
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 a single sentence with 10 words, front-loaded with the essential information. Every word earns its place.
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's simplicity (one parameter, no output schema, no annotations), the description is minimally adequate. However, it lacks behavioral and parameter details that could be helpful for an agent.
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 only parameter, job_id, is not described beyond its type and requirement. The description adds no meaning beyond what the schema provides. With 0% schema description coverage, this is a missed opportunity.
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 action (request cancellation) and the target (running or queued job). It succinctly indicates the verb and resource, distinguishing it from siblings like submit_job or resubmit_job.
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 (to cancel a job that is running or queued) but provides no explicit guidance on when not to use, prerequisites, or alternatives. It is adequate but lacks depth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deviceB
Get the full record for one device by hostname.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states the action ('Get') without disclosing any behavioral traits such as read-only nature, required permissions, error handling, or rate limits. For a get operation, agent might infer safety, but description should offer more transparency.
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?
Single sentence of 9 words is very concise. It front-loads the purpose efficiently. However, it may be too terse given the lack of supplementary information; a bit more detail would improve without losing conciseness.
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 single-parameter tool with no output schema, the description covers the basic purpose and lookup method. However, it omits the meaning of 'full record,' potential error conditions, and response structure. It meets a minimum viable standard but lacks completeness.
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%; the description adds only 'by hostname' but no format, validation rules, examples, or constraints for the hostname parameter. This minimal addition does not significantly enhance understanding 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?
Description clearly states the action (Get), resource (device), and scope (full record for one device by hostname). It effectively distinguishes from sibling tools like list_devices (plural) and get_device_dictionary (different purpose).
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?
No explicit guidance on when to use this tool versus alternatives. The context implies use when a single device record is needed, but no conditions or exclusions are provided. Siblings like list_devices and get_device_dictionary are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_dictionaryC
Get a device's rendered configuration dictionary (Jinja2/YAML text).
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, authentication needs, or side effects. The description fails to compensate for lack of annotations.
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?
Single sentence with no superfluous information, but could be expanded slightly without losing conciseness.
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?
With an output schema present, return values need not be explained, but the description lacks any context about the dictionary structure or usage, leaving the agent with minimal 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 description coverage is 0%, and the description adds no extra meaning to the 'hostname' parameter, such as format or validation constraints.
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 verb 'Get', the resource 'device's rendered configuration dictionary', and specifies it is Jinja2/YAML text, distinguishing it from siblings like 'get_device'.
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?
No guidance on when to use this tool versus alternatives. With many sibling tools, explicit usage context would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobA
Get the full record (state, health, device, times) for one job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral transparency. It indicates a read operation (getting a record) and mentions included fields, but does not disclose any side effects, authorization requirements, rate limits, or error handling. For a simple read tool, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the key action and scope. Every word adds value with no 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 simplicity of the tool (one required parameter, no output schema, no annotations), the description provides sufficient context for an agent to understand what the tool does. It does not elaborate on the response format, which is a minor gap.
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%, and the description adds no extra meaning to the single parameter job_id beyond what its name implies. The description should describe the parameter's purpose or format, but it does not.
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 action ('Get the full record') and the specific fields included ('state, health, device, times'). This distinguishes it from siblings like get_job_logs or get_job_results, which retrieve only partial data.
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 this is the comprehensive getter for a single job, but it does not explicitly state when to use it versus alternatives like get_job_logs or get_job_definition. No usage constraints or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_definitionA
Get the original submitted YAML job definition for a job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | 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 must disclose behavioral traits. It states the tool returns the 'original submitted YAML job definition,' implying a read operation, but lacks details about error conditions (e.g., nonexistent job), authentication needs, or the exact format of the returned YAML. For a simple retrieval, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. It has no unnecessary words or details, making it easy to parse quickly.
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 low complexity (one parameter, output schema exists), the description is nearly complete. It specifies the output is the original submitted YAML job definition. However, it lacks any context about when to use this tool versus other siblings, which slightly reduces completeness.
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 does not clarify the job_id parameter beyond what the schema provides (integer, required). It does not explain where to obtain the job_id or any constraints on its value (e.g., must be an existing job). The description should compensate for low coverage but fails to do so.
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 it retrieves the original submitted YAML job definition for a job. It uses a specific verb ('Get') and specifies the exact resource ('original submitted YAML job definition'), which distinguishes it from sibling tools like get_job (which likely returns metadata) and get_job_logs.
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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, conditions, or when not to use it. Given siblings like get_job, get_job_logs, and get_job_results, explicit differentiation would be helpful but is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_logsA
Get a job's logs (YAML). Optionally limit to the [start, end) line range.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| start | No | ||
| end | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the action (get logs, YAML format) and optional range, but lacks details on authorization needs, error handling, or side effects. Basic transparency but incomplete.
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?
Single sentence that is front-loaded with primary action and includes optional detail. No redundant words.
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 presence of an output schema, return value details are not needed. However, context about error cases, synchronous behavior, or access requirements is missing. Adequate for a simple read tool but not 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?
Schema description coverage is 0%, but the description adds meaning for start and end parameters using [start, end) notation. job_id is not explained but is self-explanatory. Coverage is partial; description compensates for 2 of 3 params.
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 uses specific verb 'Get' and resource 'job's logs' with format 'YAML', clearly distinguishing from sibling tools like get_job (metadata) and get_job_results (results). The optional line range is also mentioned.
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?
No guidance on when to use this tool versus alternatives or prerequisites. User must infer from context that this is for logs only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_resultsC
Get a job's test-case results (pass/fail per case).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| limit | No |
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 of behavioral disclosure. It only states the basic purpose but does not describe return format, pagination, error handling, or 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 a single sentence of 9 words with no filler, front-loading the verb and resource.
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 simplicity of the tool (2 parameters, no output schema), the description lacks important context such as what fields are returned, how pagination works, and how this tool relates to siblings like 'get_job_logs'.
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%, meaning parameters have no descriptions in the schema. The description does not explain the meaning of 'job_id' or 'limit', nor does it clarify what 'limit' controls (likely number of test cases).
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 uses a specific verb 'Get' and clearly identifies the resource as 'a job's test-case results' with the clarifying parenthetical '(pass/fail per case)'. This distinguishes it from siblings like 'get_job' (metadata) and 'get_job_logs' (logs).
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 sibling tools like 'get_job' or 'get_job_logs', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lab_healthB
Get per-device health across the lab.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., read-only, impact on system, error conditions) beyond the minimal purpose.
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?
Extremely concise single sentence, front-loaded with purpose, but lacks any additional details that might be necessary for clarity.
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 no parameters and no output schema, the description is adequate for a simple health retrieval, but fails to specify what health metrics are returned or how to interpret results.
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?
No parameters exist, so the description adds no parameter info, which is acceptable given 100% schema coverage and zero params; baseline is 4.
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 clearly states verb 'get' and resource 'per-device health across the lab', distinguishing from sibling tools like 'get_device' (single device) and 'list_devices' (listing only).
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?
No guidance on when to use this tool versus alternatives; missing context about prerequisites or when it is appropriate to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qdl_infoA
Summarise a device's QDL/flash capability (qdl/fastboot deploy + boot params).
Useful before flashing a Qualcomm board: reports whether the device supports qdl, the qdl deploy/boot method parameters, and all available deploy/boot methods, derived from the device's rendered configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool derives information from 'the device's rendered configuration' and specifies the nature of returned data. While it does not explicitly state read-only behavior, this is implied by the 'summarise' verb and lack of destructive hints.
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?
Two sentences with no filler. The first sentence states the purpose, and the second elaborates on when and what. Every word adds value.
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 single-parameter tool with no output schema, the description sufficiently covers inputs and outputs. It could optionally note that the tool is read-only, but that is implied.
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 sole parameter 'hostname' is not described in the description. However, the tool name and context ('device') strongly imply that hostname identifies a device, providing partial meaning. Explicit clarification would improve clarity.
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 uses a specific verb 'Summarise' and clearly identifies the resource as 'a device's QDL/flash capability'. It lists concrete outputs: whether qdl is supported, deploy/boot method parameters, and available methods. This distinguishes it from siblings like get_device which gives generic device info.
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 explicitly states 'Useful before flashing a Qualcomm board' which provides clear context for when to invoke the tool. It does not list when not to use or alternative tools, but the guidance is strong and scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_queueB
Get the queue of submitted jobs waiting for a device.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 lacks disclosure of behavioral traits such as read-only nature, permissions required, or whether the queue is system-wide or per-device.
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 a single, efficient sentence with no wasted words, front-loading the key action and resource.
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 tool has no output schema and the description does not indicate what the response contains, leaving agents without enough context to process results correctly.
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?
No parameters exist, and schema coverage is 100%. The baseline is 3; no additional parameter information is 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 gets the queue of submitted jobs waiting for a device, with a specific verb and resource that distinguishes it from siblings like list_jobs or get_job.
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 for retrieving the job queue but provides no explicit guidance on when to use this tool versus alternatives like list_jobs, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runningB
Get per-device-type running/reserved counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits like read-only nature, authentication requirements, rate limits, or whether counts are current or historical. With no annotations, the description should compensate.
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?
Single sentence that is concise and front-loaded with the key action and resource. No wasted words.
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 is minimal. While the tool is simple (no params, no output schema), it lacks details about the output format (e.g., map versus list) and whether counts are real-time. Given no annotations, more context would improve usability.
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?
No parameters exist, so schema coverage is 100% by default. The description adds value by specifying the grouping ('per-device-type') and the nature ('running/reserved counts'), which is clear and helpful.
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 retrieves running/reserved counts per device type. The verb 'get' and resource 'running/reserved counts' are specific, but lacks differentiation from siblings like get_queue or list_devices.
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?
No guidance on when to use this tool versus alternatives such as get_queue or list_devices. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_devicesA
List devices, optionally filtered by device_type, health or state.
Returns {count, results}. health is e.g. Good/Bad/Maintenance/Unknown; state is Idle/Reserved/Running.
| Name | Required | Description | Default |
|---|---|---|---|
| device_type | No | ||
| health | No | ||
| state | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description adds return format and example values for health/state, but omits pagination behavior despite limit parameter. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and filters, no wasted words. Efficiently conveys key information.
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?
Covers purpose, filters, and return format, but lacks pagination details and default behavior. Missing info for limit parameter is a gap for a list 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 has 0% description coverage; description explains 3 out of 4 parameters (device_type, health, state) with example values, but omits limit parameter and its default. Partial compensation.
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?
Clearly states verb 'List' and resource 'devices', distinguishes from siblings like get_device and list_device_types. Includes optional filters and return format.
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?
Implies usage via 'optionally filtered' but no explicit when-not or alternatives. Siblings exist but no guidance on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_device_typesC
List the device types known to this LAVA instance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it only says 'list' which implies a read operation, but lacks details about behavior such as whether results are paginated or 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 a single sentence, which is concise, but it is too brief to cover necessary information, leaving several gaps.
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 simplicity of the tool (1 optional param, no required params, no output schema), the description is minimally adequate but lacks details like default behavior or output format.
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 adds no meaning to the 'limit' parameter beyond its existence; it does not explain what limit affects or any constraints.
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 with a specific verb ('List') and resource ('device types'), and it implicitly distinguishes from 'list_devices' sibling by naming the resource differently.
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?
No guidance is provided on when to use this tool vs alternatives like 'list_devices', nor any prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsB
List test jobs, newest first, with optional filters.
state is e.g. Submitted/Scheduling/Scheduled/Running/Canceling/Finished; health is Unknown/Complete/Incomplete/Canceled.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| health | No | ||
| submitter | No | ||
| device_type | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully communicate behavioral traits. It only states 'List test jobs, newest first, with optional filters' and gives example filter values. It does not explain pagination, rate limits, scope (user-specific?), or what 'test jobs' means. This is insufficient for a tool with 5 parameters.
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 at three lines, with the purpose front-loaded. The list of filter examples is somewhat extended but necessary for clarity. Could be slightly more structured, but no wasted words.
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 tool with 5 optional parameters, no output schema, and no annotations, the description is too brief. It lacks explanation of response format, pagination behavior, and the meaning of 'test jobs'. The limit parameter is not described, and overall completeness is low given the complexity.
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%. The description adds value by listing example values for 'state' and 'health', but does not explain 'submitter', 'device_type', or 'limit' beyond their names. It partially compensates for low coverage but leaves major parameters undocumented.
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 verb 'List', the resource 'test jobs', and the ordering 'newest first'. It also mentions optional filters, which distinguishes it from sibling tools like 'get_job' (single job) and 'get_queue' (queue-level info).
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 for listing jobs with optional filters but does not explicitly state when to use this tool versus alternatives like 'get_queue' or 'get_running'. No contrasting guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workersA
List the dispatcher workers and their health/state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states that the tool lists workers and their health/state, but does not mention side effects, authorization needs, or any safety considerations. The behavioral insight is minimal.
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?
A single, direct sentence that efficiently conveys the tool's function. Every word serves a purpose; no unnecessary text.
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 no parameters, no output schema, and a straightforward purpose, the description is largely complete. However, it could briefly mention if authentication is required, but it's not a major gap.
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?
There are no parameters, so schema coverage is trivially 100%. The description adds no parameter information because none is needed. Baseline 4 is appropriate.
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 action (list), the specific resource (dispatcher workers), and the returned information (health/state). It distinguishes the tool from siblings like list_devices and list_jobs by focusing on a unique resource type.
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?
No guidelines are provided about when to use this tool versus alternatives, nor any prerequisites or exclusions. The agent is given no context to decide between this and other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resubmit_jobC
Resubmit a finished job with the same definition.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Resubmit a finished job' but does not disclose what happens (e.g., creates a new job, modifies existing), permissions needed, or side effects. Minimal behavioral insight.
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 very short (one sentence) but lacks necessary details. It is concise in word count but under-specified, missing critical information. Efficiency is offset by incompleteness.
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's simplicity (1 param, no output schema), the description should cover prerequisites and outcome. It hints at 'finished job' as a condition but does not explicitly state it. No mention of return values or error cases. Incomplete for an agent.
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 fails to explain the sole parameter 'job_id'. It adds no meaning beyond the schema's type and requirement. The description does not mention job_id at all.
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 action 'Resubmit' and the resource 'a finished job', and specifies 'with the same definition'. It effectively distinguishes from sibling tools like submit_job (which creates a new job) and cancel_job (which stops a job).
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?
No guidance on when to use this tool versus alternatives. It does not mention that it only applies to finished jobs, nor does it advise against use on running jobs. Lacks context for decision making among siblings like submit_job or get_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_job_priorityB
Set a job's queue priority (0-100, higher runs sooner).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| priority | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the basic operation. It does not disclose what happens on invalid input (e.g., out-of-range priority, nonexistent job_id), whether the change is immediate or queued, or if any authentication or authorization is required.
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 a single concise sentence that communicates the essential purpose and constraint. No unnecessary words or details.
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's simplicity (2 required params, no output schema, no annotations), the description is minimally adequate. It misses context on error behavior, return value, and side effects, but covers the core intent.
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 add meaning. It does so for the priority parameter by specifying the range 0-100 and the order of execution. However, the job_id parameter receives no additional semantics beyond its name.
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 verb 'Set' and the resource 'job's queue priority', including the valid range and direction (higher runs sooner). It distinguishes from siblings like get_job, cancel_job, which do not modify priority.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., job state), whether to check current priority first, or any conditions under which setting priority is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_jobC
Submit a YAML job definition. Returns the new job id(s).
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It mentions returning new job id(s) but omits critical details: whether submission is synchronous or asynchronous, what happens on failure, if validation occurs, or any required permissions. The description is insufficient for safe agent invocation.
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 very concise: two sentences communicate the core action and return value. No extra words. However, it is perhaps too terse, sacrificing completeness for brevity. Still, it is well-structured and 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?
Given the importance of a submit action in a job lifecycle and the presence of many related siblings, the description fails to provide essential context. It does not explain where this tool fits in the workflow, what happens after submission, or how it interacts with other tools like get_job or cancel_job.
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% (no description on the 'definition' parameter). The description says 'YAML job definition' but does not elaborate on format, constraints, or examples. With no schema documentation, the description should provide more parameter context to aid correct input.
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 action (submit) and the resource (YAML job definition). It uses a specific verb and identifies what is being submitted. However, it does not distinguish from closely related siblings like validate_job or resubmit_job, which limits clarity for tool selection.
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?
No guidance is provided on when to use this tool versus alternatives such as validate_job or resubmit_job. The description does not include any context about prerequisites, conditions, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_jobB
Validate a YAML job definition without submitting it.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden of behavioral disclosure. It does not explain what validation checks are performed, what happens on success or failure, or any side effects, leaving the agent with minimal behavioral context.
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 a single concise sentence that conveys the core purpose without any unnecessary words, earning its place.
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's simplicity (1 param, no output schema, no annotations), the description omits critical information such as the return format (e.g., boolean, list of errors), usage constraints, and how it complements related siblings like get_job_definition.
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 adds minimal value by specifying the parameter is a 'YAML job definition', but it lacks details on format, constraints, or examples, which are needed for proper parameter understanding.
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 verb 'Validate' and the resource 'a YAML job definition', and adds the qualifier 'without submitting it', which distinguishes it from sibling tool submit_job.
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 'without submitting it' implies a dry-run use case, but there is no explicit guidance on when to use validate_job over alternatives like submit_job or how it relates to other validation-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
versionA
Return the version of the connected LAVA server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description accurately conveys that the tool performs a read-only operation to retrieve version information. It explicitly states the return value, which is sufficient transparency given the tool's simplicity.
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 a single, complete sentence with no redundant words. Every word contributes to the purpose, making it highly 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 has no parameters, no output schema, and a straightforward function, the description is largely complete. It could optionally mention use cases like verifying connectivity, but this is not essential.
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 tool has no parameters, and the schema coverage is 100%. The description does not need to add parameter information, and the baseline for zero parameters is 4.
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 uses a specific verb ('Return') and resource ('version of the connected LAVA server'), clearly stating the tool's function. It is distinct from sibling tools like get_lab_health or get_qdl_info, which serve different purposes.
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?
No guidance is provided on when to use this tool versus alternatives. While the tool is simple, the description does not indicate scenarios or prerequisites, leaving the agent to infer its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiA
Return the LAVA user your token authenticates as.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 does not disclose that the tool is read-only or idempotent, but given its trivial nature, the single sentence provides adequate transparency for a simple query.
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 a single sentence with no wasted words. It is concise and front-loaded with the key action and result.
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 tool with no parameters and no output schema, the description is complete enough. It could mention that the operation is safe and has no side effects, but the current text 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?
There are no parameters, so the description does not need to add parameter information. Schema coverage is 100%, and the description adds no additional meaning, which is acceptable.
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 verb 'Return' and the specific resource 'the LAVA user your token authenticates as', making the purpose unambiguous. It is distinct from sibling tools, which are job/file management focused.
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 tool's purpose is self-evident for authentication checks, but no explicit guidance on when to use it versus alternatives is provided. Since there are no similar auth tools among siblings, this is acceptable.
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.
21 tool updates
v0.1.0- First observed
cancel_job - First observed
get_device - First observed
get_device_dictionary - First observed
get_job - First observed
get_job_definition - First observed
get_job_logs - First observed
get_job_results - First observed
get_lab_health - First observed
get_qdl_info - First observed
get_queue - First observed
get_running - First observed
list_device_types - First observed
list_devices - First observed
list_jobs - First observed
list_workers - First observed
resubmit_job - First observed
set_job_priority - First observed
submit_job - First observed
validate_job - First observed
version - First observed
whoami
TDQS
Scored across 21 tools
Each tool targets a distinct resource or action: device queries (get_device, get_device_dictionary, get_qdl_info) are clearly separated from job operations (submit, cancel, resubmit, set_priority, validate) and listings (list_devices, list_jobs, etc.). No two tools appear to overlap in purpose.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_device, submit_job, list_devices). There are no deviations or mixed conventions.
With 21 tools, the count falls in the 'borderline heavy' range (16-25). While each tool appears necessary, the set could potentially be trimmed by combining some closely related functions, but overall it remains functional.
The tool set covers core LAVA workflows: device inspection, job lifecycle (submit, validate, resubmit, cancel, priority), queue/worker status, and lab health. Minor gaps exist (e.g., no device CRUD, no test definition management), but the essential user-facing operations 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
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP Server for an Agent Task Marketplace
MCP server for Appcircle mobile CI/CD platform.
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that enables LLMs to interact with Agent-to-Agent (A2A) protocol compatible agents, allowing for sending messages, tracking tasks, and receiving streaming responses.528-
- AlicenseNot gradedqualityAmaintenanceAn MCP server that exposes Language Server Protocol features to external clients, allowing access to hover information, definitions, completions, references, and rename functionalities.1240MIT
- AlicenseAqualityFmaintenanceAn MCP server that acts as a proxy to connect MCP clients to agent frameworks like Mastra and LangGraph, enabling agent discovery, dynamic server connections, and recursive agent networks.5810MIT
- AlicenseAqualityCmaintenanceAn MCP server that connects AI agents to TestOps, enabling test case management, launches, defects, and analytics through natural language.4815MIT