@kya-os/create-mcpi-app 1.8.49 → 1.8.50

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.
@@ -1 +1 @@
1
- {"version":3,"file":"generate-cloudflare-files.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACpD,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAkN9B"}
1
+ {"version":3,"file":"generate-cloudflare-files.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACpD,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAmN9B"}
@@ -116,6 +116,7 @@ export async function generateCloudflareProjectFiles(options) {
116
116
  publicKey: identity.publicKey,
117
117
  agentShieldProjectId,
118
118
  agentShieldApiUrl,
119
+ template,
119
120
  }),
120
121
  encoding: "utf-8",
121
122
  });
@@ -247,7 +248,15 @@ function toPascalCase(str) {
247
248
  return className;
248
249
  }
249
250
  function generateWranglerToml(opts) {
250
- const { projectName, projectNameUpper, pascalCaseName, agentDid, publicKey, agentShieldProjectId, agentShieldApiUrl, } = opts;
251
+ const { projectName, projectNameUpper, pascalCaseName, agentDid, publicKey, agentShieldProjectId, agentShieldApiUrl, template, } = opts;
252
+ // Template-specific environment variables
253
+ let templateVars = "";
254
+ if (template === "hardware-world") {
255
+ templateVars = `
256
+ # Hardware World API Configuration
257
+ HARDWARE_WORLD_API_BASE_URL = "https://hardwareworld.com"
258
+ `;
259
+ }
251
260
  return `#:schema node_modules/wrangler/config-schema.json
252
261
  name = "${projectName}"
253
262
  main = "src/index.ts"
@@ -305,7 +314,7 @@ AGENTSHIELD_API_URL = "${agentShieldApiUrl}"
305
314
  ${agentShieldProjectId ? `AGENTSHIELD_PROJECT_ID = "${agentShieldProjectId}"` : '# AGENTSHIELD_PROJECT_ID = "your-project-id"'}
306
315
 
307
316
  MCPI_ENV = "development"
308
-
317
+ ${templateVars}
309
318
  # ═══════════════════════════════════════════════════════════════════════════════
310
319
  # SECRETS (managed via GitHub Secrets + wrangler secret)
311
320
  # ═══════════════════════════════════════════════════════════════════════════════
@@ -368,6 +377,10 @@ export class ${pascalCaseName}MCP extends MCPICloudflareAgent {
368
377
  `;
369
378
  }
370
379
  function generateRuntimeConfigTs(template) {
380
+ // Hardware World has different imports and tool protection
381
+ if (template === "hardware-world") {
382
+ return generateHardwareWorldRuntimeConfig();
383
+ }
371
384
  const imports = [`import { greetTool } from "./tools/greet";`];
372
385
  const tools = ["greetTool"];
373
386
  if (template === "ecommerce") {
@@ -376,13 +389,6 @@ function generateRuntimeConfigTs(template) {
376
389
  imports.push(`import { checkoutTool } from "./tools/checkout";`);
377
390
  tools.push("addToCartTool", "getCartTool", "checkoutTool");
378
391
  }
379
- else if (template === "hardware-world") {
380
- imports.push(`import { addToCartTool } from "./tools/add-to-cart";`);
381
- imports.push(`import { getCartTool } from "./tools/get-cart";`);
382
- imports.push(`import { removeFromCartTool } from "./tools/remove-from-cart";`);
383
- imports.push(`import { searchProductsTool } from "./tools/search-products";`);
384
- tools.push("addToCartTool", "getCartTool", "removeFromCartTool", "searchProductsTool");
385
- }
386
392
  return `import { defineConfig, type CloudflareRuntimeConfig } from "@kya-os/mcp-i-cloudflare";
387
393
  import type { CloudflareEnv } from "@kya-os/mcp-i-cloudflare";
388
394
  ${imports.join("\n")}
@@ -424,6 +430,143 @@ export function getTools() {
424
430
  }
425
431
  `;
426
432
  }
433
+ function generateHardwareWorldRuntimeConfig() {
434
+ return `/**
435
+ * MCP-I Runtime Configuration
436
+ *
437
+ * Defines tool protection, proofing, and other runtime settings.
438
+ * Uses inline config with correct scopes (no hyphens) to avoid
439
+ * AgentShield's auto-generated scope validation issues.
440
+ */
441
+
442
+ import {
443
+ defineConfig,
444
+ type CloudflareRuntimeConfig,
445
+ type CloudflareEnv,
446
+ } from "@kya-os/mcp-i-cloudflare";
447
+
448
+ // Import tools
449
+ import { greetTool } from "./tools/greet";
450
+ import { getProductsTool } from "./tools/get-products";
451
+ import { getBrandsTool } from "./tools/get-brands";
452
+ import { getBrandTool } from "./tools/get-brand";
453
+ import { addToCartTool } from "./tools/add-to-cart";
454
+ import { getCartTool } from "./tools/get-cart";
455
+ import { getCustomerTool } from "./tools/get-customer";
456
+
457
+ /**
458
+ * Tool Protection Configuration
459
+ *
460
+ * Using inline config because:
461
+ * 1. AgentShield auto-generates scopes like "ADD-TO-CART:EXECUTE" which fail validation
462
+ * 2. The scope regex /^[a-zA-Z0-9_]+:[a-zA-Z0-9_]+$/ doesn't allow hyphens
463
+ * 3. Inline config uses correct scopes like "cart:write"
464
+ */
465
+ const toolProtections = {
466
+ // Public tools - no delegation required
467
+ greet: {
468
+ requiresDelegation: false,
469
+ requiredScopes: [] as string[],
470
+ riskLevel: "low" as const,
471
+ },
472
+ "get-products": {
473
+ requiresDelegation: false,
474
+ requiredScopes: [] as string[],
475
+ riskLevel: "low" as const,
476
+ },
477
+ "get-brands": {
478
+ requiresDelegation: false,
479
+ requiredScopes: [] as string[],
480
+ riskLevel: "low" as const,
481
+ },
482
+ "get-brand": {
483
+ requiresDelegation: false,
484
+ requiredScopes: [] as string[],
485
+ riskLevel: "low" as const,
486
+ },
487
+
488
+ // Protected tools - require user delegation
489
+ "get-customer": {
490
+ requiresDelegation: true,
491
+ requiredScopes: ["customer:read"],
492
+ riskLevel: "low" as const,
493
+ },
494
+ "get-cart": {
495
+ requiresDelegation: true,
496
+ requiredScopes: ["cart:read"],
497
+ riskLevel: "low" as const,
498
+ },
499
+ "add-to-cart": {
500
+ requiresDelegation: true,
501
+ requiredScopes: ["cart:write"],
502
+ riskLevel: "medium" as const,
503
+ },
504
+ };
505
+
506
+ /**
507
+ * Get runtime configuration for MCP-I
508
+ */
509
+ export function getRuntimeConfig(env: CloudflareEnv): CloudflareRuntimeConfig {
510
+ const environment = (env.MCPI_ENV || "development") as
511
+ | "development"
512
+ | "production";
513
+
514
+ // Proofing config - sends execution proofs to AgentShield
515
+ const proofingConfig = env.AGENTSHIELD_API_KEY
516
+ ? {
517
+ enabled: true,
518
+ batchQueue: {
519
+ destinations: [
520
+ {
521
+ type: "agentshield" as const,
522
+ apiKey: env.AGENTSHIELD_API_KEY,
523
+ apiUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
524
+ },
525
+ ],
526
+ },
527
+ }
528
+ : undefined;
529
+
530
+ // Tool protection - using inline config with correct scopes
531
+ const toolProtectionConfig = {
532
+ source: "inline" as const,
533
+ toolProtections,
534
+ };
535
+
536
+ return defineConfig({
537
+ environment,
538
+ proofing: proofingConfig,
539
+ toolProtection: toolProtectionConfig,
540
+ vars: {
541
+ ENVIRONMENT: environment,
542
+ AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,
543
+ AGENTSHIELD_API_URL: env.AGENTSHIELD_API_URL,
544
+ AGENTSHIELD_PROJECT_ID: env.AGENTSHIELD_PROJECT_ID,
545
+ },
546
+ });
547
+ }
548
+
549
+ /**
550
+ * Get all tools for this agent
551
+ *
552
+ * Note: No login tool - users authenticate via the MCP-I consent flow,
553
+ * not by passing credentials through the agent.
554
+ */
555
+ export function getTools() {
556
+ return [
557
+ // Public tools
558
+ greetTool,
559
+ getProductsTool,
560
+ getBrandsTool,
561
+ getBrandTool,
562
+ // Protected tools (require delegation)
563
+ getCustomerTool,
564
+ getCartTool,
565
+ addToCartTool,
566
+ ];
567
+ }
568
+ `;
569
+ }
427
570
  function generateGreetToolTs(projectName) {
428
571
  return `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
429
572
 
@@ -542,130 +685,715 @@ export const checkoutTool: ToolDefinition = {
542
685
  }
543
686
  function generateHardwareWorldTools() {
544
687
  return [
688
+ // API Client - handles authentication and API calls
545
689
  {
546
- path: "src/tools/add-to-cart.ts",
547
- content: `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
690
+ path: "src/lib/api-client.ts",
691
+ content: `/**
692
+ * Hardware World API Client
693
+ *
694
+ * Utility functions for calling the Hardware World API.
695
+ * Handles authentication via ToolContext (idpHeaders from delegation flow).
696
+ */
548
697
 
549
- export const addToCartTool: ToolDefinition = {
550
- name: "add_to_cart",
551
- description: "Add a hardware product to the cart",
698
+ import type { ToolExecutionContext } from "@kya-os/mcp-i-cloudflare";
699
+
700
+ // Re-export for convenience
701
+ export type ToolContext = ToolExecutionContext;
702
+
703
+ export interface ApiResponse<T = unknown> {
704
+ status: number;
705
+ data: T;
706
+ ok: boolean;
707
+ }
708
+
709
+ export interface ApiOptions {
710
+ method?: "GET" | "POST" | "PUT" | "DELETE";
711
+ body?: Record<string, unknown> | null;
712
+ baseUrl?: string;
713
+ headers?: Record<string, string>;
714
+ }
715
+
716
+ const DEFAULT_BASE_URL = "https://hardwareworld.com";
717
+
718
+ /**
719
+ * Call the Hardware World API
720
+ *
721
+ * @param endpoint - API endpoint (e.g., "/products", "/cart/123")
722
+ * @param options - Request options
723
+ * @param context - Tool execution context with auth headers
724
+ */
725
+ export async function callHardwareWorldAPI<T = unknown>(
726
+ endpoint: string,
727
+ options: ApiOptions = {},
728
+ context?: ToolContext
729
+ ): Promise<ApiResponse<T>> {
730
+ const baseUrl = options.baseUrl || DEFAULT_BASE_URL;
731
+ const url = \`\${baseUrl}/api\${endpoint}\`;
732
+
733
+ const headers: Record<string, string> = {
734
+ "Content-Type": "application/json",
735
+ ...options.headers,
736
+ };
737
+
738
+ // Hardware World API uses ONLY Cookie authentication (not Authorization header)
739
+ // The idpToken from credential provider contains the customerCookie value
740
+ if (context?.idpToken) {
741
+ // Hardware World API expects BOTH CIX and customerCookie for compatibility
742
+ headers["Cookie"] =
743
+ \`CIX=\${context.idpToken}; customerCookie=\${context.idpToken}\`;
744
+ console.log("[API Client] Cookie auth set from idpToken");
745
+ } else if (context?.idpHeaders?.["Cookie"]) {
746
+ // Fallback: use Cookie from idpHeaders if present
747
+ headers["Cookie"] = context.idpHeaders["Cookie"];
748
+ console.log("[API Client] Cookie auth set from idpHeaders");
749
+ }
750
+
751
+ console.log("[API Client] Request:", {
752
+ url,
753
+ method: options.method || "GET",
754
+ hasAuth: !!headers["Cookie"],
755
+ });
756
+
757
+ const response = await fetch(url, {
758
+ method: options.method || "GET",
759
+ headers,
760
+ body: options.body ? JSON.stringify(options.body) : null,
761
+ });
762
+
763
+ const responseData = await response.text();
764
+ let parsedData: T;
765
+
766
+ try {
767
+ parsedData = JSON.parse(responseData) as T;
768
+ } catch {
769
+ parsedData = responseData as T;
770
+ }
771
+
772
+ console.log("[API Client] Response:", {
773
+ status: response.status,
774
+ ok: response.ok,
775
+ });
776
+
777
+ return {
778
+ status: response.status,
779
+ data: parsedData,
780
+ ok: response.ok,
781
+ };
782
+ }
783
+
784
+ /**
785
+ * Format error response for MCP tools
786
+ */
787
+ export function formatError(error: unknown): {
788
+ content: Array<{ type: "text"; text: string }>;
789
+ isError: true;
790
+ } {
791
+ const message = error instanceof Error ? error.message : String(error);
792
+ return {
793
+ content: [{ type: "text", text: \`Error: \${message}\` }],
794
+ isError: true,
795
+ };
796
+ }
797
+
798
+ /**
799
+ * Format success response for MCP tools
800
+ */
801
+ export function formatSuccess(data: unknown): {
802
+ content: Array<{ type: "text"; text: string }>;
803
+ } {
804
+ return {
805
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
806
+ };
807
+ }
808
+ `,
809
+ encoding: "utf-8",
810
+ },
811
+ // Get Products - Public tool
812
+ {
813
+ path: "src/tools/get-products.ts",
814
+ content: `/**
815
+ * Get Products Tool
816
+ *
817
+ * Retrieves products from the Hardware World catalog.
818
+ * Public tool - no authentication required.
819
+ */
820
+
821
+ import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
822
+ import {
823
+ callHardwareWorldAPI,
824
+ formatError,
825
+ formatSuccess,
826
+ } from "../lib/api-client";
827
+
828
+ interface Product {
829
+ productId: number;
830
+ name: string;
831
+ price: number;
832
+ description?: string;
833
+ [key: string]: unknown;
834
+ }
835
+
836
+ interface ProductsResponse {
837
+ products?: Product[];
838
+ [key: string]: unknown;
839
+ }
840
+
841
+ interface GetProductsArgs {
842
+ query?: string;
843
+ take?: number;
844
+ skip?: number;
845
+ baseUrl?: string;
846
+ }
847
+
848
+ export const getProductsTool: ToolDefinition = {
849
+ name: "get-products",
850
+ description:
851
+ "Search and browse Hardware World products. Supports filtering by search query and pagination.",
552
852
  inputSchema: {
553
853
  type: "object",
554
854
  properties: {
555
- productId: { type: "string", description: "Hardware product ID" },
556
- quantity: { type: "number", description: "Quantity", default: 1 },
855
+ query: {
856
+ type: "string",
857
+ description: "Search query to filter products (optional)",
858
+ },
859
+ take: {
860
+ type: "number",
861
+ description: "Number of products to return (default: 10)",
862
+ },
863
+ skip: {
864
+ type: "number",
865
+ description: "Number of products to skip for pagination (default: 0)",
866
+ },
867
+ baseUrl: {
868
+ type: "string",
869
+ description: "Override upstream base URL (optional)",
870
+ },
557
871
  },
558
- required: ["productId"],
872
+ required: [],
559
873
  },
560
- handler: async (args: { productId: string; quantity?: number }) => {
561
- const quantity = args.quantity || 1;
562
- return {
563
- content: [
874
+ handler: async (args: GetProductsArgs) => {
875
+ try {
876
+ const { query, take = 10, skip = 0, baseUrl } = args;
877
+
878
+ const endpoint = query
879
+ ? \`/products/search?query=\${encodeURIComponent(query)}&skip=\${skip}&take=\${take}\`
880
+ : \`/products?take=\${take}&skip=\${skip}\`;
881
+
882
+ const result = await callHardwareWorldAPI<ProductsResponse>(endpoint, {
883
+ method: "GET",
884
+ baseUrl,
885
+ });
886
+
887
+ if (!result.ok) {
888
+ return {
889
+ content: [
890
+ {
891
+ type: "text" as const,
892
+ text: JSON.stringify(
893
+ { error: "Failed to get products", details: result.data },
894
+ null,
895
+ 2
896
+ ),
897
+ },
898
+ ],
899
+ isError: true,
900
+ };
901
+ }
902
+
903
+ const products = result.data?.products || result.data || [];
904
+ return formatSuccess({
905
+ success: true,
906
+ products,
907
+ count: Array.isArray(products) ? products.length : 0,
908
+ });
909
+ } catch (error) {
910
+ return formatError(error);
911
+ }
912
+ },
913
+ };
914
+ `,
915
+ encoding: "utf-8",
916
+ },
917
+ // Get Brands - Public tool
564
918
  {
565
- type: "text",
566
- text: \`Added \${quantity}x \${args.productId} to your Hardware World cart.\`,
919
+ path: "src/tools/get-brands.ts",
920
+ content: `/**
921
+ * Get Brands Tool
922
+ *
923
+ * Retrieves all brands from Hardware World.
924
+ * Public tool - no authentication required.
925
+ */
926
+
927
+ import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
928
+ import {
929
+ callHardwareWorldAPI,
930
+ formatError,
931
+ formatSuccess,
932
+ } from "../lib/api-client";
933
+
934
+ interface Brand {
935
+ brandId: number;
936
+ name: string;
937
+ [key: string]: unknown;
938
+ }
939
+
940
+ interface BrandsResponse {
941
+ brands?: Brand[];
942
+ [key: string]: unknown;
943
+ }
944
+
945
+ interface GetBrandsArgs {
946
+ baseUrl?: string;
947
+ }
948
+
949
+ export const getBrandsTool: ToolDefinition = {
950
+ name: "get-brands",
951
+ description: "Get all available brands from Hardware World catalog.",
952
+ inputSchema: {
953
+ type: "object",
954
+ properties: {
955
+ baseUrl: {
956
+ type: "string",
957
+ description: "Override upstream base URL (optional)",
958
+ },
959
+ },
960
+ required: [],
961
+ },
962
+ handler: async (args: GetBrandsArgs) => {
963
+ try {
964
+ const { baseUrl } = args;
965
+
966
+ const result = await callHardwareWorldAPI<BrandsResponse>("/brands", {
967
+ method: "GET",
968
+ baseUrl,
969
+ });
970
+
971
+ if (!result.ok) {
972
+ return {
973
+ content: [
974
+ {
975
+ type: "text" as const,
976
+ text: JSON.stringify(
977
+ { error: "Failed to get brands", details: result.data },
978
+ null,
979
+ 2
980
+ ),
981
+ },
982
+ ],
983
+ isError: true,
984
+ };
985
+ }
986
+
987
+ const brands = result.data?.brands || result.data || [];
988
+ return formatSuccess({
989
+ success: true,
990
+ brands,
991
+ count: Array.isArray(brands) ? brands.length : 0,
992
+ });
993
+ } catch (error) {
994
+ return formatError(error);
995
+ }
996
+ },
997
+ };
998
+ `,
999
+ encoding: "utf-8",
567
1000
  },
568
- ],
569
- };
1001
+ // Get Brand - Public tool
1002
+ {
1003
+ path: "src/tools/get-brand.ts",
1004
+ content: `/**
1005
+ * Get Brand Tool
1006
+ *
1007
+ * Retrieves a specific brand by ID from Hardware World.
1008
+ * Public tool - no authentication required.
1009
+ */
1010
+
1011
+ import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1012
+ import {
1013
+ callHardwareWorldAPI,
1014
+ formatError,
1015
+ formatSuccess,
1016
+ } from "../lib/api-client";
1017
+
1018
+ interface Brand {
1019
+ brandId: number;
1020
+ name: string;
1021
+ description?: string;
1022
+ [key: string]: unknown;
1023
+ }
1024
+
1025
+ interface GetBrandArgs {
1026
+ brandId: number;
1027
+ baseUrl?: string;
1028
+ }
1029
+
1030
+ export const getBrandTool: ToolDefinition = {
1031
+ name: "get-brand",
1032
+ description: "Get details for a specific brand by its ID.",
1033
+ inputSchema: {
1034
+ type: "object",
1035
+ properties: {
1036
+ brandId: {
1037
+ type: "number",
1038
+ description: "The brand ID to look up",
1039
+ },
1040
+ baseUrl: {
1041
+ type: "string",
1042
+ description: "Override upstream base URL (optional)",
1043
+ },
1044
+ },
1045
+ required: ["brandId"],
1046
+ },
1047
+ handler: async (args: GetBrandArgs) => {
1048
+ try {
1049
+ const { brandId, baseUrl } = args;
1050
+
1051
+ if (!brandId) {
1052
+ return formatError("Brand ID is required");
1053
+ }
1054
+
1055
+ const result = await callHardwareWorldAPI<Brand>(\`/brands/\${brandId}\`, {
1056
+ method: "GET",
1057
+ baseUrl,
1058
+ });
1059
+
1060
+ if (!result.ok) {
1061
+ return {
1062
+ content: [
1063
+ {
1064
+ type: "text" as const,
1065
+ text: JSON.stringify(
1066
+ { error: "Failed to get brand", details: result.data },
1067
+ null,
1068
+ 2
1069
+ ),
1070
+ },
1071
+ ],
1072
+ isError: true,
1073
+ };
1074
+ }
1075
+
1076
+ return formatSuccess({
1077
+ success: true,
1078
+ brand: result.data,
1079
+ });
1080
+ } catch (error) {
1081
+ return formatError(error);
1082
+ }
570
1083
  },
571
1084
  };
572
1085
  `,
573
1086
  encoding: "utf-8",
574
1087
  },
1088
+ // Get Customer - Protected tool (requires delegation)
575
1089
  {
576
- path: "src/tools/get-cart.ts",
577
- content: `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1090
+ path: "src/tools/get-customer.ts",
1091
+ content: `/**
1092
+ * Get Customer Tool
1093
+ *
1094
+ * Retrieves the authenticated customer's information from Hardware World.
1095
+ *
1096
+ * PROTECTED OPERATION - requires delegation with 'customer:read' scope.
1097
+ * Authentication is handled via MCP-I delegation flow.
1098
+ */
578
1099
 
579
- export const getCartTool: ToolDefinition = {
580
- name: "get_cart",
581
- description: "View your Hardware World shopping cart",
1100
+ import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1101
+ import {
1102
+ callHardwareWorldAPI,
1103
+ formatError,
1104
+ formatSuccess,
1105
+ type ToolContext,
1106
+ } from "../lib/api-client";
1107
+
1108
+ interface CustomerData {
1109
+ customerId: number;
1110
+ email?: string;
1111
+ firstName?: string;
1112
+ lastName?: string;
1113
+ [key: string]: unknown;
1114
+ }
1115
+
1116
+ interface GetCustomerArgs {
1117
+ customerId?: number;
1118
+ baseUrl?: string;
1119
+ }
1120
+
1121
+ export const getCustomerTool: ToolDefinition = {
1122
+ name: "get-customer",
1123
+ description:
1124
+ "Get the authenticated customer's information. Requires user authorization (handled automatically via consent flow).",
582
1125
  inputSchema: {
583
1126
  type: "object",
584
- properties: {},
1127
+ properties: {
1128
+ customerId: {
1129
+ type: "number",
1130
+ description:
1131
+ "Customer ID (optional - automatically provided via authorization)",
1132
+ },
1133
+ baseUrl: {
1134
+ type: "string",
1135
+ description: "Override upstream base URL (optional)",
1136
+ },
1137
+ },
1138
+ required: [],
585
1139
  },
586
- handler: async () => {
587
- return {
588
- content: [
1140
+ handler: async (args: GetCustomerArgs, context?: ToolContext) => {
1141
+ try {
1142
+ const { baseUrl } = args;
1143
+
1144
+ // Get customerId from context or args
1145
+ const customerId = args.customerId || context?.userId;
1146
+
1147
+ if (!customerId) {
1148
+ return formatError(
1149
+ "Customer ID not available. Please ensure you have authorized this tool."
1150
+ );
1151
+ }
1152
+
1153
+ const result = await callHardwareWorldAPI<CustomerData>(
1154
+ \`/customers/\${customerId}\`,
589
1155
  {
590
- type: "text",
591
- text: JSON.stringify({
592
- items: [],
593
- total: 0,
594
- message: "Your Hardware World cart is empty!",
595
- }),
1156
+ method: "GET",
1157
+ baseUrl,
596
1158
  },
597
- ],
598
- };
1159
+ context
1160
+ );
1161
+
1162
+ if (!result.ok) {
1163
+ return {
1164
+ content: [
1165
+ {
1166
+ type: "text" as const,
1167
+ text: JSON.stringify(
1168
+ { error: "Failed to get customer", details: result.data },
1169
+ null,
1170
+ 2
1171
+ ),
1172
+ },
1173
+ ],
1174
+ isError: true,
1175
+ };
1176
+ }
1177
+
1178
+ return formatSuccess({
1179
+ success: true,
1180
+ customer: result.data,
1181
+ });
1182
+ } catch (error) {
1183
+ return formatError(error);
1184
+ }
599
1185
  },
600
1186
  };
601
1187
  `,
602
1188
  encoding: "utf-8",
603
1189
  },
1190
+ // Get Cart - Protected tool (requires delegation)
604
1191
  {
605
- path: "src/tools/remove-from-cart.ts",
606
- content: `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1192
+ path: "src/tools/get-cart.ts",
1193
+ content: `/**
1194
+ * Get Cart Tool
1195
+ *
1196
+ * Retrieves the customer's shopping cart contents and totals.
1197
+ *
1198
+ * PROTECTED OPERATION - requires delegation with 'cart:read' scope.
1199
+ * Authentication is handled via MCP-I delegation flow.
1200
+ */
1201
+
1202
+ import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1203
+ import {
1204
+ callHardwareWorldAPI,
1205
+ formatError,
1206
+ formatSuccess,
1207
+ type ToolContext,
1208
+ } from "../lib/api-client";
1209
+
1210
+ interface CartData {
1211
+ items?: unknown[];
1212
+ total?: number;
1213
+ [key: string]: unknown;
1214
+ }
1215
+
1216
+ interface GetCartArgs {
1217
+ customerId?: number;
1218
+ baseUrl?: string;
1219
+ }
607
1220
 
608
- export const removeFromCartTool: ToolDefinition = {
609
- name: "remove_from_cart",
610
- description: "Remove an item from the Hardware World cart",
1221
+ export const getCartTool: ToolDefinition = {
1222
+ name: "get-cart",
1223
+ description:
1224
+ "Get the current shopping cart contents and totals. Requires user authorization (handled automatically via consent flow).",
611
1225
  inputSchema: {
612
1226
  type: "object",
613
1227
  properties: {
614
- productId: { type: "string", description: "Product ID to remove" },
1228
+ customerId: {
1229
+ type: "number",
1230
+ description:
1231
+ "Customer ID (optional - automatically provided via authorization)",
1232
+ },
1233
+ baseUrl: {
1234
+ type: "string",
1235
+ description: "Override upstream base URL (optional)",
1236
+ },
615
1237
  },
616
- required: ["productId"],
1238
+ required: [],
617
1239
  },
618
- handler: async (args: { productId: string }) => {
619
- return {
620
- content: [
1240
+ handler: async (args: GetCartArgs, context?: ToolContext) => {
1241
+ try {
1242
+ const { baseUrl } = args;
1243
+
1244
+ // Verify we have authentication
1245
+ if (!context?.idpToken) {
1246
+ return formatError(
1247
+ "Authentication not available. Please ensure you have authorized this tool."
1248
+ );
1249
+ }
1250
+
1251
+ const result = await callHardwareWorldAPI<CartData>(
1252
+ "/cart",
621
1253
  {
622
- type: "text",
623
- text: \`Removed \${args.productId} from your cart.\`,
1254
+ method: "GET",
1255
+ baseUrl,
624
1256
  },
625
- ],
626
- };
1257
+ context
1258
+ );
1259
+
1260
+ if (!result.ok) {
1261
+ return {
1262
+ content: [
1263
+ {
1264
+ type: "text" as const,
1265
+ text: JSON.stringify(
1266
+ { error: "Failed to get cart", details: result.data },
1267
+ null,
1268
+ 2
1269
+ ),
1270
+ },
1271
+ ],
1272
+ isError: true,
1273
+ };
1274
+ }
1275
+
1276
+ return formatSuccess({
1277
+ success: true,
1278
+ cart: result.data,
1279
+ });
1280
+ } catch (error) {
1281
+ return formatError(error);
1282
+ }
627
1283
  },
628
1284
  };
629
1285
  `,
630
1286
  encoding: "utf-8",
631
1287
  },
1288
+ // Add to Cart - Protected tool (requires delegation)
632
1289
  {
633
- path: "src/tools/search-products.ts",
634
- content: `import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1290
+ path: "src/tools/add-to-cart.ts",
1291
+ content: `/**
1292
+ * Add to Cart Tool
1293
+ *
1294
+ * Adds a product to the customer's shopping cart.
1295
+ *
1296
+ * PROTECTED OPERATION - requires delegation with 'cart:write' scope.
1297
+ * Authentication is handled via MCP-I delegation flow.
1298
+ */
635
1299
 
636
- export const searchProductsTool: ToolDefinition = {
637
- name: "search_products",
638
- description: "Search Hardware World product catalog",
1300
+ import type { ToolDefinition } from "@kya-os/mcp-i-cloudflare";
1301
+ import {
1302
+ callHardwareWorldAPI,
1303
+ formatError,
1304
+ formatSuccess,
1305
+ type ToolContext,
1306
+ } from "../lib/api-client";
1307
+
1308
+ interface CartResponse {
1309
+ message?: string;
1310
+ customerId?: number;
1311
+ [key: string]: unknown;
1312
+ }
1313
+
1314
+ interface AddToCartArgs {
1315
+ productId: number;
1316
+ quantity?: number;
1317
+ customerId?: number;
1318
+ baseUrl?: string;
1319
+ }
1320
+
1321
+ export const addToCartTool: ToolDefinition = {
1322
+ name: "add-to-cart",
1323
+ description:
1324
+ "Add a product to the shopping cart. Requires user authorization (handled automatically via consent flow).",
639
1325
  inputSchema: {
640
1326
  type: "object",
641
1327
  properties: {
642
- query: { type: "string", description: "Search query" },
643
- category: {
1328
+ productId: {
1329
+ type: "number",
1330
+ description: "Product ID to add to cart",
1331
+ },
1332
+ quantity: {
1333
+ type: "number",
1334
+ description: "Quantity to add (default: 1)",
1335
+ },
1336
+ customerId: {
1337
+ type: "number",
1338
+ description:
1339
+ "Customer ID (optional - automatically provided via authorization)",
1340
+ },
1341
+ baseUrl: {
644
1342
  type: "string",
645
- description: "Product category (tools, lumber, plumbing, electrical)",
1343
+ description: "Override upstream base URL (optional)",
646
1344
  },
647
1345
  },
648
- required: ["query"],
1346
+ required: ["productId"],
649
1347
  },
650
- handler: async (args: { query: string; category?: string }) => {
651
- const categoryFilter = args.category ? \` in \${args.category}\` : "";
652
- return {
653
- content: [
1348
+ handler: async (args: AddToCartArgs, context?: ToolContext) => {
1349
+ try {
1350
+ const { productId, quantity = 1, baseUrl } = args;
1351
+
1352
+ if (!productId) {
1353
+ return formatError("Product ID is required");
1354
+ }
1355
+
1356
+ // Verify we have authentication
1357
+ if (!context?.idpToken) {
1358
+ return formatError(
1359
+ "Authentication not available. Please ensure you have authorized this tool."
1360
+ );
1361
+ }
1362
+
1363
+ const result = await callHardwareWorldAPI<CartResponse>(
1364
+ "/cart/add",
654
1365
  {
655
- type: "text",
656
- text: JSON.stringify({
657
- query: args.query,
658
- category: args.category,
659
- results: [
660
- { id: "hw-001", name: "Power Drill", price: 79.99 },
661
- { id: "hw-002", name: "Hammer", price: 24.99 },
662
- { id: "hw-003", name: "Screwdriver Set", price: 34.99 },
663
- ],
664
- message: \`Found 3 products matching "\${args.query}"\${categoryFilter}\`,
665
- }),
1366
+ method: "POST",
1367
+ body: { productId, quantity },
1368
+ baseUrl,
666
1369
  },
667
- ],
668
- };
1370
+ context
1371
+ );
1372
+
1373
+ if (!result.ok) {
1374
+ return {
1375
+ content: [
1376
+ {
1377
+ type: "text" as const,
1378
+ text: JSON.stringify(
1379
+ { error: "Failed to add to cart", details: result.data },
1380
+ null,
1381
+ 2
1382
+ ),
1383
+ },
1384
+ ],
1385
+ isError: true,
1386
+ };
1387
+ }
1388
+
1389
+ return formatSuccess({
1390
+ success: true,
1391
+ message: "Product added to cart",
1392
+ data: result.data,
1393
+ });
1394
+ } catch (error) {
1395
+ return formatError(error);
1396
+ }
669
1397
  },
670
1398
  };
671
1399
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"generate-cloudflare-files.js","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-cloudflare-files.js","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/create-mcpi-app",
3
- "version": "1.8.49",
3
+ "version": "1.8.50",
4
4
  "description": "Scaffold a new MCP-I application",
5
5
  "type": "module",
6
6
  "main": "./dist/helpers/index.js",