Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
},
"metadata": {
"description": "Claude Code plugins for the Umbraco MCP Toolkit - professional skills for building MCP servers, testing, and API integration",
"version": "17.0.0-beta.13",
"version": "17.0.0-beta.14",
"homepage": "https://github.com/umbraco/Umbraco-MCP-Base"
},
"plugins": [
{
"name": "umbraco-mcp-skills",
"source": "./plugins",
"description": "Professional skills for building Umbraco MCP servers - tool creation, testing, API patterns, and eval testing",
"version": "17.0.0-beta.13",
"version": "17.0.0-beta.14",
"category": "development",
"author": {
"name": "Phil W",
Expand All @@ -35,7 +35,7 @@
"name": "umbraco-mcp-server",
"source": "./plugins-server",
"description": "Skills for CLI operation of Umbraco MCP servers - CLI setup, tool filtering, introspection, and runtime modes",
"version": "17.0.0-beta.13",
"version": "17.0.0-beta.14",
"category": "operations",
"author": {
"name": "Phil W",
Expand Down
26 changes: 26 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"hooks": {
"WorktreeCreate": [
{
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/worktree-create.sh",
"timeout": 120
}
]
}
],
"WorktreeRemove": [
{
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/worktree-remove.sh",
"timeout": 30
}
]
}
]
}
}
20 changes: 13 additions & 7 deletions .github/workflows/scheduled-daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ name: Scheduled — Daily CLI checks
# published-cli-smoke — exercises the currently-published npm artifact
# (catches bundle bugs, missing `files`, broken deps).
#
# cli-e2e — full 19-step deterministic CLI E2E
# (scaffold → init → Umbraco → discover → generate →
# compile → test → worker), same as runs on PRs but
# scheduled so regressions in dev dependencies or
# transitive tooling surface without waiting for a PR.
# cli-e2e — full 19-step new-instance CLI E2E
# (scaffold → init's "create new" branch → Umbraco →
# discover → generate → compile → test → worker),
# plus the existing-instance E2E suite. Same as runs
# on PRs but scheduled so regressions in dev
# dependencies or transitive tooling surface without
# waiting for a PR.
#
# Failure notifications: relies on GitHub's built-in emails for scheduled
# workflows — the user who last modified this file receives an email when a
Expand Down Expand Up @@ -84,7 +86,7 @@ jobs:
run: npm run compile

cli-e2e:
name: CLI full E2E (scheduled)
name: New-instance & Existing-instance E2E (scheduled)
runs-on: ubuntu-latest
timeout-minutes: 30

Expand Down Expand Up @@ -140,6 +142,10 @@ jobs:
- name: Build
run: npm run build && npm run build -w packages/hosted-mcp && npm run build -w packages/create-mcp-server

- name: Run CLI E2E tests
- name: Run new-instance E2E tests
run: npm run test:e2e -w packages/create-mcp-server
timeout-minutes: 20

- name: Run existing-instance E2E tests
run: npm run test:e2e:existing -w packages/create-mcp-server
timeout-minutes: 10
8 changes: 6 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ jobs:
retention-days: 7

cli-e2e:
name: CLI Scaffolding E2E
name: New-instance & Existing-instance E2E
runs-on: ubuntu-latest

services:
Expand Down Expand Up @@ -250,12 +250,16 @@ jobs:
- name: Build
run: npm run build && npm run build -w packages/hosted-mcp && npm run build -w packages/create-mcp-server

- name: Run CLI E2E tests
- name: Run new-instance E2E tests
run: npm run test:e2e -w packages/create-mcp-server
timeout-minutes: 15
env:
KEEP_E2E_ASSETS: 'true'

- name: Run existing-instance E2E tests
run: npm run test:e2e:existing -w packages/create-mcp-server
timeout-minutes: 10

- name: Skill E2E (build tool + integration test)
if: >-
github.event.pull_request.base.ref == 'main' &&
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ junit.xml
.DS_Store
settings.local.json
.claude/projects/
.claude/worktrees/
.worktrees/
**/.wrangler/
**/.dev.vars
Expand Down
5 changes: 5 additions & 0 deletions .worktreeinclude
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Files to copy into new worktrees
# Processed by the worktree-create.sh script

# Environment config (API credentials for MCP tools)
.env
5 changes: 3 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Monorepo for the Umbraco MCP (Model Context Protocol) Server SDK - infrastructur
| `packages/mcp-server-sdk/` | Core npm package `@umbraco-cms/mcp-server-sdk` | Yes |
| `packages/hosted-mcp/` | Hosted MCP on Cloudflare Workers `@umbraco-cms/mcp-hosted` | Yes |
| `packages/create-mcp-server/` | CLI scaffolding tool `@umbraco-cms/create-umbraco-mcp-server` | Yes |
| `template/` | Starter kit for new MCP server projects (copied by create-mcp-server) | No |
| `template/` | Starter kit for new MCP server projects (copied by create-mcp-server); ships with `.mcp.json` for Claude Code | No |
| `plugins/` | Claude Code plugins for SDK development (building, testing) | No |
| `tests/cli/` | CLI integration tests and LLM eval tests | No |
| `docs/` | CLI reference and planning docs | No |
Expand Down Expand Up @@ -75,7 +75,8 @@ Note: `USE_MOCK_API=true` enables MSW interception. Without it, tests hit the re

| Command | What it tests | Tests |
|---------|--------------|-------|
| `TEST_SQL_CONNECTION_STRING="..." npm run test:e2e -w packages/create-mcp-server` | Full CLI E2E — scaffold, init, Umbraco setup, discover, generate, compile, test | ~19 |
| `TEST_SQL_CONNECTION_STRING="..." npm run test:e2e -w packages/create-mcp-server` | New-instance CLI E2E — scaffold, init's "create new" branch (PSW), Umbraco setup, discover, generate, compile, test | ~19 |
| `TEST_SQL_CONNECTION_STRING="..." npm run test:e2e:existing -w packages/create-mcp-server` | Existing-instance CLI E2E — spawns a copy of `tests/umbraco-instance/` on a random port against a per-test SQL Server DB, runs scaffold + init's "use existing" branch, asserts `.env`, `orval.config.ts`, and a real API call | ~3 |

## SDK Package Exports

Expand Down
Loading
Loading