Skip to content

rust(feat): calculated channel MCP tools - #736

Draft
evan-sift wants to merge 4 commits into
mainfrom
rust/mcp-calculated-channels
Draft

rust(feat): calculated channel MCP tools#736
evan-sift wants to merge 4 commits into
mainfrom
rust/mcp-calculated-channels

Conversation

@evan-sift

@evan-sift evan-sift commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds a calculated_channels domain to the MCP server.

Tool surface: list_calculated_channels, list_calculated_channel_versions, create_calculated_channel, update_calculated_channel, archive_calculated_channel, unarchive_calculated_channel.

Nested channel references ride in expression_channel_references_json, a documented JSON string parameter, keeping every other parameter flat. Update pre-reads the channel before writing: the update mask paths cover whole configuration messages, so a mask-only write would clear sibling fields the caller never mentioned.

Surface note: there is no dedicated archive RPC. The public API archives a calculated channel by setting archived_date through the update mask. archive_calculated_channel and unarchive_calculated_channel are exposed as separate tools anyway, so an agent does not have to know that, and so each can carry a destructive write gate.

Verification

  • cargo test -p sift_mcp: 50 new mock-backed tests (pagination, limit clamp, mask construction, archive/unarchive request shape, write gates, JSON parameter validation), full crate green.
  • cargo build -p sift_mcp --no-default-features, cargo fmt --all -- --check, cargo test -p sift_cli cmd::agent: clean.
  • MCP protocol check against a development org: all six tools registered, live list_calculated_channels round trip, and all four write tools reject with the remediation message when the server runs without --allow-create / --allow-destructive.
  • Agent tool-selection gates (list, versions, create-blocked, create, archive) pass against the full stack binary.

@evan-sift evan-sift changed the title rust/mcp calculated channels rust(feat): calculated channel MCP tools Aug 19, 2026
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