Skip to content

feat(openapi): serialize simple object path parameters - #433

Merged
punkpeye merged 2 commits into
punkpeye:mainfrom
remote-controlled-man:codex/fastmcp-418-simple-object-paths
Oct 17, 2026
Merged

punkpeye merged 2 commits into
punkpeye:mainfrom
remote-controlled-man:codex/fastmcp-418-simple-object-paths

Conversation

@remote-controlled-man

Copy link
Copy Markdown
Contributor

Generated MCP tools can now serialize flat object path parameters with OpenAPI's simple style, including omitted style/explode defaults. { R: 100, G: 200 } expands to R,100,G,200, or R=100,G=200 with explode: true, instead of [object Object].

Keys and values are escaped separately before adding separators. Scalar/array encoding, unsupported nested/style fallback, and the existing substituted-dot-segment guard are preserved. The documentation and parameter comments describe the new support and remaining limits. This extends the parameter serialization work in #414 and addresses #418.

Validation on Windows with Node 22.20.0 and pnpm 10.32.1:

  • All 261 offline OpenAPI tests pass, including generated MCP calls and 22 new cases. Before the fix, 12 new regression cases failed.
  • Prettier, ESLint, TypeScript checking, and the package build pass.
  • All 15 network OpenAPI tests pass, including both live Petstore checks. The upstream benchmark helper warned about an unstable PostHog spec hash and allowed the freshly fetched content; no fixture pins were changed.
  • The full suite reports 1067 passed, 2 skipped, and two DiskStore concurrent-rename failures. Both failures also occur on the unmodified base (1045 passed, 2 skipped); they are not reported as passing.
  • The combined pnpm lint command reaches and passes its first three checks, then fails in the existing Deno 1.41.3 JSR dry-run on dependency declaration files. The JSR entry points and their production inputs are unchanged. Linux/Node 24 CI has not been run locally.

AI assistance was used to prepare this change; the implementation and validation evidence received an independent agent review.

Copilot AI balanced review requested due to automatic review settings October 15, 2026 15:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@punkpeye
punkpeye merged commit 6bc2350 into punkpeye:main Oct 17, 2026
2 checks passed
@punkpeye

Copy link
Copy Markdown
Owner

Merged main into this branch to resolve a docs conflict with #442. No code changes. Thanks!

@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 4.23.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants