Skip to content

[BUG] [v0.0.7] cortex-mcp-types ServerCapabilities.experimental accepts scalar values even though MCP requires capability objects #53328

@marvinayisi

Description

@marvinayisi

Project

cortex

Description

A server capabilities object whose experimental entry is a scalar number deserializes successfully into ServerCapabilities, even though the 2024 MCP schema requires each experimental capability value to be an object.

Error Message

SERVER_EXPERIMENTAL_SCALAR_PARSE=Ok(ServerCapabilities { experimental: Some({"x": Number(1)}), logging: None, prompts: None, resources: None, tools: None })

Debug Logs

N/A

System Information

Cortex crate: cortex-mcp-types 0.0.7
Commit: 7954d02
Date: 2026-04-10
OS: macOS

Screenshots

https://github.com/marvinayisi/issue-images/blob/main/mcp-server-experimental-scalar-20260410-074112.png

Steps to Reproduce

  1. Create a tiny Rust crate depending on cortex-mcp-types from this workspace.
  2. Deserialize ServerCapabilities from { "experimental": { "x": 1 } }.
  3. Print the parse result.

Expected Behavior

The invalid scalar experimental capability should be rejected.

Actual Behavior

Deserialization succeeds and stores the scalar value under experimental.

Additional Context

  • Authoritative spec: https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/refs/heads/main/schema/2024-11-05/schema.ts
  • Code path: /Users/odeili/Projects/platform/cortex/src/cortex-mcp-types/src/capabilities.rs
  • Duplicate check on 2026-04-10:
  • cortex-mcp-types ServerCapabilities experimental scalar

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions