arcade-mcp/libs/arcade-mcp-server/arcade_mcp_server
Eric Gustin 9bbdbe2b46
Fix outputSchema to conform to MCP spec's object type requirement (#799)
When a stdio server had a tool that didn't return a dict, then:
```
  {
    "code": "invalid_value",
    "values": [
      "object"
    ],
    "path": [
      "tools",
      2,
      "outputSchema",
      "type"
    ],
    "message": "Invalid input: expected \"object\""
  }
```

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes the generated `outputSchema` shape for all non-`json` return
types by wrapping them under a `result` property, which may affect
clients/tests expecting primitive/array schemas despite being
spec-correct.
> 
> **Overview**
> Adjusts MCP tool `outputSchema` generation to **always** emit an
object schema, per the MCP spec that `structuredContent` must be a JSON
object.
> 
> `json` outputs remain a direct object schema, while primitive/array
outputs are now wrapped as `{ "type": "object", "properties": {
"result": <inner> } }` (preserving `enum`/`items`), and tests are
expanded to cover these cases. Bumps `arcade-mcp-server` version to
`1.18.0`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
7dd13bd33d6fdf6ebb778e1a3d9167ca89806f55. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2026-03-20 15:50:54 -07:00
..
auth [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
fastapi Front-Door Auth (#696) 2025-12-11 12:51:20 -08:00
managers Add Tool Metadata (#766) 2026-02-17 14:31:45 -08:00
middleware MCP Local (#563) 2025-09-25 15:28:15 -07:00
resource_server Support Ed25519 Algorithm (#742) 2026-01-16 15:55:05 -08:00
transports [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
usage Front-Door Auth (#696) 2025-12-11 12:51:20 -08:00
__init__.py Front-Door Auth (#696) 2025-12-11 12:51:20 -08:00
__main__.py Fix runtime warning (#771) 2026-02-25 09:55:37 -08:00
_validation.py [TOO-518] Enforce semver for MCPApp Versioning (#793) 2026-03-16 16:06:25 -07:00
context.py Front-Door Auth (#696) 2025-12-11 12:51:20 -08:00
convert.py Fix outputSchema to conform to MCP spec's object type requirement (#799) 2026-03-20 15:50:54 -07:00
exceptions.py Re-import arcade_core errors into arcade_mcp_server (#620) 2025-10-13 17:48:54 -07:00
lifespan.py MCP Local (#563) 2025-09-25 15:28:15 -07:00
logging_utils.py Fix runtime warning (#771) 2026-02-25 09:55:37 -08:00
mcp_app.py [TOO-518] Enforce semver for MCPApp Versioning (#793) 2026-03-16 16:06:25 -07:00
metadata.py Add Tool Metadata (#766) 2026-02-17 14:31:45 -08:00
py.typed Inform type checkers that arcade_mcp_server has inline type annotations (#720) 2025-12-09 15:35:15 -08:00
server.py Fix broken links (#738) 2026-01-05 13:27:16 -08:00
session.py Front-Door Auth (#696) 2025-12-11 12:51:20 -08:00
settings.py [TOO-518] Enforce semver for MCPApp Versioning (#793) 2026-03-16 16:06:25 -07:00
stdio_runner.py Fix runtime warning (#771) 2026-02-25 09:55:37 -08:00
types.py Front-Door Auth (#696) 2025-12-11 12:51:20 -08:00
worker.py Fix runtime warning (#771) 2026-02-25 09:55:37 -08:00