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:
+2
-2
@@ -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}"
|
||||||
|
|||||||
Vendored
+3
-3
@@ -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
|
||||||
|
|||||||
Vendored
+17
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user