Skip to content

Offer a preliminary tool only to a server started with --preliminary - #2113

Merged
Rafael-SOWNet merged 2 commits into
masterfrom
list-a-preliminary-tool-only-when-asked
Oct 24, 2026
Merged

Rafael-SOWNet merged 2 commits into
masterfrom
list-a-preliminary-tool-only-when-asked

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

A way to ship an MCP tool before its interface is settled, marked as such.

  • What preliminary means. The tool works as described, but its arguments and answers may change in a minor release, without an entry in BREAKING-CHANGES.md.
  • Opt-in. amcli mcp leaves preliminary tools out of tools/list. A call to one answers failed and names the flag. amcli mcp --preliminary lists them as well.
  • Marked where a model reads it. The description begins Preliminary:, and every answer carries "preliminary": true. amcli mcp --help names the preliminary tools.
  • am_classify is the first. It guesses a formula's field from the names of its symbols. The source calls that "inference from naming convention, not mathematics", the one answer the library doesn't compute. Its tables change whenever a field is added, and no test pinned it. It has one now.

A tool is preliminary while its name is in Tools.Preliminary. Taking it out makes it stable. Moving another tool in, or am_classify back out, is a one-line change.

Measured through amcli itself, on the published 2.6.0 and on this branch:

2.6.0 this branch
amcli mcp, tools/list 23 tools 22, without am_classify
amcli mcp, am_classify on G*M*m/r^2 solved, Newtonian gravitation failed: 'am_classify' is preliminary, and is served only when the server is started as 'amcli mcp --preliminary'
amcli mcp --preliminary, tools/list 23 (the flag is ignored) 23, am_classify's description starting Preliminary:
amcli mcp --preliminary, the same call solved solved, with "preliminary": true

PreliminaryTest covers both lists, the call with and without the flag, a stable tool's answer under the flag (unmarked), and the help. MCP tests pass (333), as do the terminal tests (67). The library is untouched. A second commit adds the BREAKING-CHANGES.md entry, which cites this PR.

The library has no equivalent here. Marking MathS.ExperimentalFeatures with .NET's [Experimental] would turn every caller's build into an error until they suppress it. Packaging.md §6 leaves what happens to that class to the maintainer, so it isn't in this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

A preliminary tool works as described, but its arguments and answers may
change in a minor release. `amcli mcp` leaves such tools out of tools/list
and answers a call to one with `failed`, naming the flag; `amcli mcp
--preliminary` lists them with a description beginning "Preliminary:", and
each of their answers carries "preliminary": true, so a model reading
either knows. The help names the preliminary tools.

am_classify is the first. It guesses a formula's field from the names of
its symbols, which is the one answer here the library does not compute,
whose tables change whenever a field is added, and which no test pinned.
It has a test now, under the flag.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Measured through amcli on the published 2.6.0 and on this branch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet
Rafael-SOWNet merged commit 075d41c into master Oct 24, 2026
27 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 24, 2026
@Rafael-SOWNet
Rafael-SOWNet deleted the list-a-preliminary-tool-only-when-asked branch October 24, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant