Skip to content

Complete MCP validation, defaults, and self-correction #46

Description

@sebawebber

Parent

#43

What to build

Complete the MCP Tuning Request contract so an AI agent can safely normalize a
valid request, expose every fallback as a Tuning Assumption, and self-correct
missing or invalid facts from actionable tool execution errors.

Acceptance criteria

  • total_ram, total_cpu, and postgres_version are required and missing values return actionable MCP tool execution errors rather than transport errors.
  • Total RAM accepts a positive integer with a mandatory case-insensitive B, KB, MB, GB, or TB unit; decimals, missing units, unknown units, zero, and negative values are rejected.
  • Total CPU accepts only a positive integer representing logical CPUs.
  • PostgreSQL Version remains a dotted numeric string, preserves the complete supplied value, derives PostgreSQL Major Version using PostgreSQL policy, and supports 9.1–9.6 and 10–18.
  • PostgreSQL Version syntax and supported major series are validated without attempting to validate the exact minor-release catalog.
  • Profile, disk type, operating system, architecture aliases, and maximum connections are normalized according to the parent specification.
  • Omitted optional fields use WEB, SSD, linux, amd64, and 100 respectively, with every fallback exposed as a Tuning Assumption.
  • Invalid optional values are rejected instead of silently receiving defaults.
  • Warnings are represented separately from Tuning Assumptions and do not turn a usable result into an error.
  • The normalized request echoes every supplied or defaulted field.
  • Table-driven domain tests and MCP handler tests cover valid variants, defaults, aliases, boundary values, and actionable errors.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentReady for an implementation agent

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions