release: promote Petstore MCP HTTP agent example - #32
Conversation
Co-authored-by: sjungwon03 <>
* release: publish verified TypeChain and TypeMCP examples (#1) Co-authored-by: sjungwon03 <> * release: promote audited MCP SDK graph to production (#5) * ci: require verified dev-to-main promotions * fix: pin examples MCP SDK to audited graph (#3) Co-authored-by: sjungwon03 <> --------- Co-authored-by: sjungwon03 <> * fix: retain published TypeMCP dependency contract
# Conflicts: # README.md # test/dependency-security.test.ts
chore: preserve main ancestry in dev
* docs(planning): add Swagger Petstore agent plan * feat: add read-only Swagger Petstore client * feat: wrap read-only Petstore API in TypeMCP * feat: add TypeChain Petstore agent workflow * feat: add live Swagger Petstore demonstrations
chore(release): reconcile main history into dev
* docs(planning): define real Petstore agent delivery * feat: add real TypeChain Petstore agent factory * docs: explain application-owned Petstore agent runtime
chore(release): reconcile main history for agent promotion
* docs: design real Petstore MCP agent example * docs(planning): detail Petstore MCP agent rewrite * feat: add loopback Petstore MCP runtime and client * feat: add TypeChain Petstore MCP agent * refactor: center examples on Petstore MCP agent * ci: verify Petstore MCP fixtures
chore(release): reconcile main history for Petstore MCP release
sjungwon03-ai
left a comment
There was a problem hiding this comment.
Independent Release-Promotion Review — APPROVE
Reviewed head: 517af2a6dfb8601dea9514592a2225b9d2564e9f (exact, matches current dev HEAD)
1. Ancestry and source currency
main (3ef010f) is a verified ancestor of this head via reconciliation PR #30. Source branch is dev; head equals origin/dev tip.
2. Fixed-host GET-only Petstore contract
PetstoreClient pins https://petstore.swagger.io/v2; #getJson sends only GET. Three @McpTool methods exactly: search_available_pets, get_pet, get_petstore_inventory. No write path, credential, or host override.
3. Actual loopback Streamable HTTP MCP boundary
createMcpHandler/createMcpServer from @theorvane/type-mcp/http produce a session-safe Fetch handler. Node createServer binds 127.0.0.1:0 and serves only /mcp (404 otherwise). Official MCP SDK Client + StreamableHTTPClientTransport own protocol init/list/call. TypeChain @Tool() façades delegate exclusively to that SDK client — never to PetstoreClient or PetstoreServer directly.
4. Deterministic lifecycle proof
CI fixture output confirms http://127.0.0.1:40555/mcp, 404 route boundary, three discovered tools, and fixture data. FakeToolCallingModel drives buildAgent() through the MCP client; ToolMessage assertion proves end-to-end execution. Cleanup uses nested finally for client-then-runtime.
5. Catalog cleanup
All generic/in-process examples and their tests are deleted. verify.yml runs the two new fixture scripts; verify-workflow.test.ts guards against regression to removed script names. package.json scripts are Petstore-only. No stale imports remain.
6. Documentation honesty
README carries explicit "Example-only runtime boundary" and "Application-owned model runtime" sections disclaiming production hosting, auth, provider selection, credentials, and live LLM execution.
7. CI and thread state
verify (×2) and release-promotion all pass at this exact head. No unresolved review threads. Label release present.
Observation (non-blocking, pre-existing): actions/checkout@v5 / actions/setup-node@v5 use mutable tags rather than full SHA pins. This predates the PR (unchanged from main) and is out of scope for this promotion, but a follow-up to pin per AGENTS.md policy would be prudent.
Summary
Closes #31.
Promote the reviewed Petstore MCP HTTP agent rewrite from
devto release-onlymain.517af2a6dfb8601dea9514592a2225b9d2564e9fmainis a verified ancestor of this source after reconciliation PR chore(release): reconcile main history for Petstore MCP release #30.Included runtime path
The committed deterministic fixture demonstrates MCP initialize,
tools/list, andtools/call, then proves aFakeToolCallingModeldrives the annotated TypeChain façade through the MCP client.Boundaries retained
Required release evidence
devhead.verifyandrelease-promotionmust succeed at this head.