Skip to content

release: promote Petstore MCP HTTP agent example - #32

Merged
sjungwon03 merged 16 commits into
mainfrom
dev
Jul 29, 2026
Merged

release: promote Petstore MCP HTTP agent example#32
sjungwon03 merged 16 commits into
mainfrom
dev

Conversation

@sjungwon03

Copy link
Copy Markdown
Member

Summary

Closes #31.

Promote the reviewed Petstore MCP HTTP agent rewrite from dev to release-only main.

Included runtime path

Petstore GET client
→ TypeMCP server / Streamable HTTP handler
→ local 127.0.0.1 ephemeral MCP runtime
→ official MCP SDK StreamableHTTPClientTransport
→ TypeChain @Agent / @Tool client façade
→ buildAgent() LangChain loop

The committed deterministic fixture demonstrates MCP initialize, tools/list, and tools/call, then proves a FakeToolCallingModel drives the annotated TypeChain façade through the MCP client.

Boundaries retained

  • Three read-only Petstore tools only; fixed host and GET-only REST behavior.
  • No provider SDK/configuration/credentials/live LLM execution.
  • No public host, auth, durable sessions, or deployment claim.

Required release evidence

  • Source head must remain the current dev head.
  • Fresh independent approval must target this exact source head.
  • verify and release-promotion must succeed at this head.
  • No unresolved review threads; squash is the required merge method.

sjungwon03 and others added 16 commits July 29, 2026 00:31
* 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 sjungwon03 added the release Dev-to-main release promotion label Jul 29, 2026
@sjungwon03 sjungwon03 self-assigned this Jul 29, 2026

@sjungwon03-ai sjungwon03-ai left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@sjungwon03
sjungwon03 merged commit 0fc09cc into main Jul 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release Dev-to-main release promotion

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants