lima-vm / lima-vm/lima

Handling of optional output fields in limactl-mcp

Open
#4,124 0 comments 0 reactions 0 assignees View on GitHub
area/mcp
Dominant language
Go
Stars
21.9k
Forks
957
Avg merge
2d 6h
Merged PRs (30d)
53

Description

When looking at the output schema, I find that all optional output fields (except strings) are defined as pointers. Looking at the `.outputSchema` property for the `run_shell_command` tool:

```json
{
"type": "object",
"required": [
"stdout",
"stderr"
],
"properties": {
"error": {
"type": "string",
"description": "Any error message reported by the subprocess."
},
"exit_code": {
"type": [
"null",
"integer"
],
"description": "Exit code of the command."
},
"stderr": {
"type": "string",
"description": "Output from the standard error stream."
},
"stdout": {
"type": "string",
"description": "Output from the standard output stream."
}
},
"additionalProperties": false
}
```

`exit_code` has a type of `null`, or `integer`, but that is kind of redundant because it is not a required output fields.

But `error` is not a required output field either, and it is just `string`, and not `null`, or `string`, which feels inconsistent.

But ignoring this, why is `exit_code` not a required output value? Does the tool ever return before the shell command exits? How can you not have an output value?

---

I think the description of `error` is also confusing, as it is not an error reported by the subprocess, but an error reported by the MCP because running the subprocess failed.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.