๐— ๐—–๐—ฃ ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ๐˜€ ๐——๐—ฟ๐—ผ๐—ฝ ๐——๐—ฎ๐˜๐—ฎ

You built an MCP server. You used a passthrough tool. Your GET requests worked. Your POST requests failed. The body arrived empty.

The cause is the schema. Using z.unknown() makes an empty JSON schema. MCP clients drop properties with empty schemas. The error comes from the upstream service. It is hard to find.

The fix is simple. Give the body a real schema. Use a union of a record and a string. Parse the string body into an object before use. The schema is now non-empty. The data stays.

Two lessons for you:

The Hetzner MCP server is open source. Run it with: npx -y hetzner-mcp

What silent failure did you find in MCP tools?

Source: https://dev.to/mjmirza/your-mcp-servers-write-tools-are-silently-dropping-their-body-475j

Optional learning community: https://t.me/GyaanSetuAi