@umbraco-cms/mcp-dev 18.0.1 → 18.1.0-rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-MVY77GF3.cjs → chunk-6QIKDT2P.cjs} +1930 -723
- package/dist/chunk-6QIKDT2P.cjs.map +1 -0
- package/dist/{chunk-KKNLEZQN.js → chunk-MMATLZNV.js} +4284 -3077
- package/dist/chunk-MMATLZNV.js.map +1 -0
- package/dist/collections.cjs +2 -2
- package/dist/collections.cjs.map +1 -1
- package/dist/collections.js +1 -1
- package/dist/collections.js.map +1 -1
- package/dist/index.cjs +148 -101
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +63 -16
- package/dist/index.js.map +1 -1
- package/dist/tool-types.d.ts +398 -5
- package/package.json +9 -4
- package/dist/chunk-KKNLEZQN.js.map +0 -1
- package/dist/chunk-MVY77GF3.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
availableCollections,
|
|
10
10
|
setAllowFilePathUploads,
|
|
11
11
|
setUmbracoVersion
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MMATLZNV.js";
|
|
13
13
|
|
|
14
14
|
// node_modules/ajv/dist/compile/codegen/code.js
|
|
15
15
|
var require_code = __commonJS({
|
|
@@ -3622,7 +3622,12 @@ var require_fast_uri = __commonJS({
|
|
|
3622
3622
|
}
|
|
3623
3623
|
function resolve(baseURI, relativeURI, options) {
|
|
3624
3624
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
3625
|
-
const
|
|
3625
|
+
const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
|
|
3626
|
+
const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
|
|
3627
|
+
if (baseMalformed || relativeMalformed) {
|
|
3628
|
+
throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
3629
|
+
}
|
|
3630
|
+
const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
|
|
3626
3631
|
schemelessOptions.skipEscape = true;
|
|
3627
3632
|
return serialize(resolved, schemelessOptions);
|
|
3628
3633
|
}
|
|
@@ -3747,6 +3752,8 @@ var require_fast_uri = __commonJS({
|
|
|
3747
3752
|
return uriTokens.join("");
|
|
3748
3753
|
}
|
|
3749
3754
|
var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
|
|
3755
|
+
var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
|
|
3756
|
+
var AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
|
|
3750
3757
|
function getParseError(parsed, matches) {
|
|
3751
3758
|
if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") {
|
|
3752
3759
|
return 'URI path must start with "/" when authority is present.';
|
|
@@ -3776,6 +3783,25 @@ var require_fast_uri = __commonJS({
|
|
|
3776
3783
|
uri = "//" + uri;
|
|
3777
3784
|
}
|
|
3778
3785
|
}
|
|
3786
|
+
const authorityMatch = uri.match(AUTHORITY_PREFIX);
|
|
3787
|
+
if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
|
|
3788
|
+
parsed.error = "URI authority must not contain a literal backslash.";
|
|
3789
|
+
malformedAuthorityOrPort = true;
|
|
3790
|
+
}
|
|
3791
|
+
const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
|
|
3792
|
+
if (introducerMatch !== null) {
|
|
3793
|
+
const region = introducerMatch[1];
|
|
3794
|
+
const normalizedRegion = region.replace(/[\t\n\r]/g, "");
|
|
3795
|
+
if (normalizedRegion.length >= 2) {
|
|
3796
|
+
if (normalizedRegion.slice(0, 2) !== "//") {
|
|
3797
|
+
parsed.error = parsed.error || "URI authority must not contain a literal backslash.";
|
|
3798
|
+
malformedAuthorityOrPort = true;
|
|
3799
|
+
} else if (region.length !== normalizedRegion.length) {
|
|
3800
|
+
parsed.error = parsed.error || "URI authority introducer must not contain whitespace.";
|
|
3801
|
+
malformedAuthorityOrPort = true;
|
|
3802
|
+
}
|
|
3803
|
+
}
|
|
3804
|
+
}
|
|
3779
3805
|
const matches = uri.match(URI_PARSE);
|
|
3780
3806
|
if (matches) {
|
|
3781
3807
|
parsed.scheme = matches[1];
|
|
@@ -3819,7 +3845,7 @@ var require_fast_uri = __commonJS({
|
|
|
3819
3845
|
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
|
|
3820
3846
|
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
3821
3847
|
try {
|
|
3822
|
-
parsed.host = URL
|
|
3848
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
3823
3849
|
} catch (e) {
|
|
3824
3850
|
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
3825
3851
|
}
|
|
@@ -12511,7 +12537,7 @@ var StdioServerTransport = class {
|
|
|
12511
12537
|
// package.json
|
|
12512
12538
|
var package_default = {
|
|
12513
12539
|
name: "@umbraco-cms/mcp-dev",
|
|
12514
|
-
version: "18.0
|
|
12540
|
+
version: "18.1.0-rc",
|
|
12515
12541
|
type: "module",
|
|
12516
12542
|
description: "A model context protocol (MCP) server for Umbraco CMS",
|
|
12517
12543
|
main: "dist/index.js",
|
|
@@ -12536,8 +12562,11 @@ var package_default = {
|
|
|
12536
12562
|
compile: "tsc --noEmit",
|
|
12537
12563
|
watch: "tsup --config tsup.config.ts --watch",
|
|
12538
12564
|
generate: "orval --config orval.config.ts",
|
|
12539
|
-
inspect: "npx @modelcontextprotocol/inspector node dist/index.js",
|
|
12565
|
+
inspect: "npx @modelcontextprotocol/inspector@1 node dist/index.js",
|
|
12540
12566
|
test: "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
12567
|
+
"test:all": "npm run build && npm run test && npm run test:evals",
|
|
12568
|
+
"test:one": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --forceExit",
|
|
12569
|
+
"test:changed": "node scripts/test-changed.mjs",
|
|
12541
12570
|
"test:rerun-failures": "grep '^FAIL ' test-failures.log 2>/dev/null | sed 's/^FAIL //' | tr '\\n' ' ' | xargs -r node --experimental-vm-modules node_modules/jest/bin/jest.js --no-coverage || echo 'No failures to rerun (test-failures.log not found or empty)'",
|
|
12542
12571
|
"test:evals": "node --experimental-vm-modules node_modules/jest/bin/jest.js --no-coverage --config tests/evals/jest.config.ts",
|
|
12543
12572
|
"patch-publish-alpha": "npm version prerelease --preid=alpha && npm publish --tag alpha --access public",
|
|
@@ -12547,6 +12576,7 @@ var package_default = {
|
|
|
12547
12576
|
"test:e2e": "npx playwright test --config tests/cms-hosted-e2e/playwright.config.ts",
|
|
12548
12577
|
"umbraco:bootstrap": "bash scripts/bootstrap-demo-site.sh",
|
|
12549
12578
|
"umbraco:start": "bash scripts/bootstrap-demo-site.sh && dotnet run --project demo-site",
|
|
12579
|
+
"start:umbraco": "npm run umbraco:start",
|
|
12550
12580
|
"umbraco:stop": "lsof -ti :44391 | xargs kill 2>/dev/null; lsof -ti :56472 | xargs kill 2>/dev/null",
|
|
12551
12581
|
"dev:hosted": "wrangler dev"
|
|
12552
12582
|
},
|
|
@@ -12579,8 +12609,8 @@ var package_default = {
|
|
|
12579
12609
|
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
12580
12610
|
"@types/uuid": "^10.0.0",
|
|
12581
12611
|
"@types/yargs": "^17.0.33",
|
|
12582
|
-
"@umbraco-cms/mcp-hosted": "^1.0.0-beta.
|
|
12583
|
-
"@umbraco-cms/mcp-server-sdk": "^1.0.0-beta.
|
|
12612
|
+
"@umbraco-cms/mcp-hosted": "^1.0.0-beta.35",
|
|
12613
|
+
"@umbraco-cms/mcp-server-sdk": "^1.0.0-beta.35",
|
|
12584
12614
|
dotenv: "^16.5.0",
|
|
12585
12615
|
"form-data": "^4.0.4",
|
|
12586
12616
|
"mime-types": "^3.0.1",
|
|
@@ -12593,6 +12623,7 @@ var package_default = {
|
|
|
12593
12623
|
"@anthropic-ai/claude-agent-sdk": "0.2.39",
|
|
12594
12624
|
"@cloudflare/workers-oauth-provider": "^0.2.3",
|
|
12595
12625
|
"@jest/types": "^29.6.3",
|
|
12626
|
+
"@modelcontextprotocol/inspector": "^1.0.1",
|
|
12596
12627
|
"@playwright/test": "^1.58.2",
|
|
12597
12628
|
"@types/dotenv": "^6.1.1",
|
|
12598
12629
|
"@types/jest": "^29.5.14",
|
|
@@ -12614,7 +12645,7 @@ var package_default = {
|
|
|
12614
12645
|
}
|
|
12615
12646
|
};
|
|
12616
12647
|
|
|
12617
|
-
// src/
|
|
12648
|
+
// src/umbraco-api/tools/tool-factory.ts
|
|
12618
12649
|
import { createCollectionConfigLoader } from "@umbraco-cms/mcp-server-sdk";
|
|
12619
12650
|
|
|
12620
12651
|
// src/config/server-config.ts
|
|
@@ -12648,7 +12679,7 @@ function clearConfigCache() {
|
|
|
12648
12679
|
cachedConfig = null;
|
|
12649
12680
|
}
|
|
12650
12681
|
|
|
12651
|
-
// src/
|
|
12682
|
+
// src/umbraco-api/tools/collection-resolver.ts
|
|
12652
12683
|
var CollectionResolver = {
|
|
12653
12684
|
/**
|
|
12654
12685
|
* Validates that all referenced collection names exist in the available collections.
|
|
@@ -12704,7 +12735,7 @@ var CollectionResolver = {
|
|
|
12704
12735
|
}
|
|
12705
12736
|
};
|
|
12706
12737
|
|
|
12707
|
-
// src/
|
|
12738
|
+
// src/umbraco-api/tools/tool-registrar.ts
|
|
12708
12739
|
import {
|
|
12709
12740
|
createToolAnnotations
|
|
12710
12741
|
} from "@umbraco-cms/mcp-server-sdk";
|
|
@@ -12755,7 +12786,7 @@ var ToolRegistrar = {
|
|
|
12755
12786
|
}
|
|
12756
12787
|
};
|
|
12757
12788
|
|
|
12758
|
-
// src/
|
|
12789
|
+
// src/umbraco-api/tools/tool-factory.ts
|
|
12759
12790
|
var configLoader = createCollectionConfigLoader({
|
|
12760
12791
|
modeRegistry: allModes,
|
|
12761
12792
|
allModeNames,
|
|
@@ -12779,7 +12810,12 @@ Readonly mode: Disabled ${filteredTools.length} write tools:`);
|
|
|
12779
12810
|
}
|
|
12780
12811
|
|
|
12781
12812
|
// src/index.ts
|
|
12782
|
-
import { checkUmbracoVersion, configureApiClient, initializeUmbracoFetch, getServerConfig as getServerConfig2, handleCliCommands, createCollectionConfigLoader as createCollectionConfigLoader2 } from "@umbraco-cms/mcp-server-sdk";
|
|
12813
|
+
import { checkUmbracoVersion, configureVersionCheckHook, getVersionCheckMessage, configureApiClient, initializeUmbracoFetch, getServerConfig as getServerConfig2, handleCliCommands, createCollectionConfigLoader as createCollectionConfigLoader2 } from "@umbraco-cms/mcp-server-sdk";
|
|
12814
|
+
|
|
12815
|
+
// src/config/umbraco-target.generated.ts
|
|
12816
|
+
var UMBRACO_TARGET_MAJOR = "18";
|
|
12817
|
+
|
|
12818
|
+
// src/index.ts
|
|
12783
12819
|
var main = async () => {
|
|
12784
12820
|
setAllowFilePathUploads(true);
|
|
12785
12821
|
clearConfigCache();
|
|
@@ -12787,10 +12823,6 @@ var main = async () => {
|
|
|
12787
12823
|
const config = serverConfig.umbraco;
|
|
12788
12824
|
initializeUmbracoFetch(config.auth);
|
|
12789
12825
|
configureApiClient(() => UmbracoManagementClient.getClient());
|
|
12790
|
-
const server = new McpServer({
|
|
12791
|
-
name: "Umbraco CMS Developer MCP Server",
|
|
12792
|
-
version: package_default.version
|
|
12793
|
-
});
|
|
12794
12826
|
const client = UmbracoManagementClient.getClient();
|
|
12795
12827
|
const user = await client.getUserCurrent();
|
|
12796
12828
|
const rawConfig = await getServerConfig2(true);
|
|
@@ -12812,8 +12844,23 @@ var main = async () => {
|
|
|
12812
12844
|
setUmbracoVersion(serverInfo.version);
|
|
12813
12845
|
await checkUmbracoVersion({
|
|
12814
12846
|
mcpVersion: package_default.version,
|
|
12847
|
+
// UMBRACO_TARGET_MAJOR is stamped into src/config/umbraco-target.generated.ts
|
|
12848
|
+
// by the orval target-major transformer, from the Umbraco instance the API
|
|
12849
|
+
// client was generated against. Override to point at a different major.
|
|
12850
|
+
// (`?.trim() ||`, not `??`: an env var set to an empty string must still
|
|
12851
|
+
// fall back, or the check silently no-ops with no log output at all.)
|
|
12852
|
+
expectedUmbracoMajor: process.env.UMBRACO_EXPECTED_MAJOR?.trim() || UMBRACO_TARGET_MAJOR,
|
|
12815
12853
|
client: { getServerInformation: async () => serverInfo }
|
|
12816
12854
|
});
|
|
12855
|
+
configureVersionCheckHook();
|
|
12856
|
+
const versionCheckMessage = getVersionCheckMessage();
|
|
12857
|
+
const server = new McpServer(
|
|
12858
|
+
{
|
|
12859
|
+
name: "Umbraco CMS Developer MCP Server",
|
|
12860
|
+
version: package_default.version
|
|
12861
|
+
},
|
|
12862
|
+
versionCheckMessage ? { instructions: versionCheckMessage } : void 0
|
|
12863
|
+
);
|
|
12817
12864
|
UmbracoToolFactory(server, user, config);
|
|
12818
12865
|
const transport = new StdioServerTransport();
|
|
12819
12866
|
await server.connect(transport);
|