Skip to content

test(mcp): prove composite capability programs - #38

Merged
jmgilman merged 1 commit into
masterfrom
feat/issue-23-composition
Aug 25, 2026
Merged

jmgilman merged 1 commit into
masterfrom
feat/issue-23-composition

Conversation

@jmgilman

Copy link
Copy Markdown
Contributor

Summary

  • prove composite output discovery through the catalog and unchanged flat MCP schema
  • add a real same-binary MCP program that loops, filters, and aggregates []struct output
  • assert canonical authorization arguments, exact typed handler input, derived notation, and one native call
  • prove public registration and execution project unsupported outputs and resource limits safely
  • include both secure-loop and composite-loop cases in the MCP smoke gate

Part of #23. Documentation is the final increment.

End-to-end behavior

The actual MCP client/server transport describes list[{id: str, active: bool, score: float}], executes one records.search native call, filters inactive rows in Starlark, and returns only {count: 2, score: 3.75, ids: ["keep-a", "keep-c"]}. The optional label is absent from the canonical authorization map and nil in the exact typed Go handler input.

Validation

  • go test ./internal/catalog ./mcpserver .
  • moon run root:mcp-smoke
  • golangci-lint run --config .golangci.yml ./internal/catalog ./mcpserver . --show-stats=false

Review

Bounded persistent review found no issues. It verified actual transport and worker re-exec, canonical authorization, typed input, exact notation, digest-only output, public error projections, flat schema, catalog immutability/sorting, and the moon regex.

@jmgilman
jmgilman merged commit 57d8ad5 into master Aug 25, 2026
4 of 5 checks passed
@jmgilman
jmgilman deleted the feat/issue-23-composition branch August 25, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant