lmcp: 1.1.0 -> 1.1.1 (bug fix: empty inputSchema.properties)

Tracks upstream lmcp v1.1.1 (commit 9707f7a). Single-bug-fix
release: lmcp:tool() now normalises empty inputSchema.properties
by dropping the key, so Zod-strict MCP clients don't reject
tools/list with "expected: record, received: array".

Discovered live on a hertz-tools deployment where two custom
no-arg tools tripped the check and caused Claude Code to mark
the endpoint as disconnected.

New tarball sha256:
  80c2e815aa61a2d3baab051c51cd247bdefa9dd03d72c4867b99c49b6eae9cb9

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-17 22:47:21 +00:00
parent 8a49ac6061
commit 248bef5503
3 changed files with 22 additions and 5 deletions
+2 -2
View File
@@ -3,7 +3,7 @@
# Source of truth: git.reauktion.de/marfrit/lmcp # Source of truth: git.reauktion.de/marfrit/lmcp
pkgname=lmcp pkgname=lmcp
pkgver=1.1.0 pkgver=1.1.1
pkgrel=1 pkgrel=1
pkgdesc="Lightweight MCP (Model Context Protocol) server in pure Lua" pkgdesc="Lightweight MCP (Model Context Protocol) server in pure Lua"
arch=('any') arch=('any')
@@ -14,7 +14,7 @@ depends=('lua' 'lua-socket')
# pre-release pkgvers (e.g. 1.2.0_rc1 → v1.2.0-rc1). # pre-release pkgvers (e.g. 1.2.0_rc1 → v1.2.0-rc1).
_tag="v${pkgver//_/-}" _tag="v${pkgver//_/-}"
source=("${pkgname}-${pkgver}.tar.gz::https://git.reauktion.de/marfrit/lmcp/archive/${_tag}.tar.gz") source=("${pkgname}-${pkgver}.tar.gz::https://git.reauktion.de/marfrit/lmcp/archive/${_tag}.tar.gz")
sha256sums=('d758a9504389528cb8940ea81bc8cf47afad8c01166aef3484ac4f5752445532') sha256sums=('80c2e815aa61a2d3baab051c51cd247bdefa9dd03d72c4867b99c49b6eae9cb9')
package() { package() {
cd "${pkgname}" cd "${pkgname}"
+3 -3
View File
@@ -7,10 +7,10 @@
# package (Architecture: all, depends on lua + lua-socket). # package (Architecture: all, depends on lua + lua-socket).
set -euo pipefail set -euo pipefail
PKGVER=1.1.0 PKGVER=1.1.1
UPSTREAM_TAG=v1.1.0 UPSTREAM_TAG=v1.1.1
PKGREL=1 PKGREL=1
LMCP_TARBALL_SHA256=d758a9504389528cb8940ea81bc8cf47afad8c01166aef3484ac4f5752445532 LMCP_TARBALL_SHA256=80c2e815aa61a2d3baab051c51cd247bdefa9dd03d72c4867b99c49b6eae9cb9
HERE=$(dirname "$(readlink -f "$0")") HERE=$(dirname "$(readlink -f "$0")")
# Reproducible build: pin all file mtimes + ar member timestamps to a fixed # Reproducible build: pin all file mtimes + ar member timestamps to a fixed
+17
View File
@@ -1,3 +1,20 @@
lmcp (1.1.1-1) bookworm trixie; urgency=medium
* Bug fix: omit empty inputSchema.properties at tool registration.
The json.lua empty-table-as-array gotcha (same one that bit
`ping` in v1.0.0-rc1) was re-surfacing on tool inputSchemas
declared with `properties = {}` — spec-strict MCP clients (Zod)
rejected the tools/list with "expected: record, received: array".
lmcp:tool() now normalises empty properties tables by dropping
the key entirely (JSON Schema permits omitting `properties` on
`type:object`, meaning "any object — no constraints").
Discovered live on a hertz-tools deployment where two custom
no-arg tools (lxc_list, network_status) tripped the Zod check
and caused Claude Code to mark the entire MCP endpoint as
disconnected.
-- Markus Fritsche <mfritsche@reauktion.de> Mon, 18 May 2026 00:55:00 +0000
lmcp (1.1.0-1) bookworm trixie; urgency=medium lmcp (1.1.0-1) bookworm trixie; urgency=medium
* Concurrent handler dispatch (closes #20): tool handlers run in * Concurrent handler dispatch (closes #20): tool handlers run in