Skip to content

docs: fix the synth command, and show the async tool the scaffold writes - #42

Merged
ciaransweet merged 1 commit into
mainfrom
docs/synth-command-and-async-example
Sep 14, 2026
Merged

ciaransweet merged 1 commit into
mainfrom
docs/synth-command-and-async-example

Conversation

@ciaransweet

Copy link
Copy Markdown
Contributor

Two things a reader copies that do not work. Found by checking every command and path in README.md and CLAUDE.md against the repo.

The AWS synth command fails as written

Both files documented it with one toolset in imageTags:

uv run --group infra python -m infra.cdk.app -c instance=dev \
  -c imagePrefix=ghcr.io/<owner>/<repo> -c imageTags='{"hello":"abc"}'

Every component needs a tag, index-aws and chat included, so that raises:

infra.cdk.config.ConfigError: no image tag for 'index-aws': the deploy writes
one per component to /mcp-toolsets/dev/<component>/image-tag and passes them
back as context

Both now build the map the way ci.yml already does, and say what happens if one is missing. Verified: the corrected command synthesises.

The tool example was sync

"Adding a toolset" showed def do_something(...) directly above prose telling the reader to write async def for I/O. The example is what gets copied. It is now async, which is also what the scaffold generates since #41.

The contract test refuses a sync tool that does blocking I/O since #40, so that is now listed with the other gates rather than left implicit.

What else was checked

  • every ./scripts/* reference exists
  • every backticked path exists, excluding URL paths, MCP method names and illustrative scaffold output
  • the Quickstart commands were run against a live mcp-serve-local: the hello call and the credential-demo call with its header both return what the README shows

Nothing else was wrong.

🤖 Generated with Claude Code

Two things a reader copies that do not work.

The AWS synth invocation passed one toolset in `imageTags`. Every
component needs a tag, `index-aws` and `chat` included, so the documented
command fails with `no image tag for 'index-aws'`. Both README and
CLAUDE.md now build the map the way CI does.

The example tool in "Adding a toolset" was sync, directly above prose
telling the reader to use async for I/O. The example is what gets copied.
The contract test now refuses a sync tool that does blocking I/O, so say
that where the other gates are listed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ciaransweet
ciaransweet merged commit 2a18ab1 into main Sep 14, 2026
9 checks passed
@ciaransweet
ciaransweet deleted the docs/synth-command-and-async-example branch September 14, 2026 10:46
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