@kya-os/create-mcpi-app 1.2.15 ā 1.2.17
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/.tsbuildinfo +1 -1
- package/dist/helpers/create.d.ts +1 -0
- package/dist/helpers/create.d.ts.map +1 -1
- package/dist/helpers/create.js +32 -18
- package/dist/helpers/create.js.map +1 -1
- package/dist/helpers/fetch-cloudflare-template.d.ts +11 -0
- package/dist/helpers/fetch-cloudflare-template.d.ts.map +1 -0
- package/dist/helpers/fetch-cloudflare-template.js +332 -0
- package/dist/helpers/fetch-cloudflare-template.js.map +1 -0
- package/dist/helpers/fetch-mcpi-template.d.ts.map +1 -1
- package/dist/helpers/fetch-mcpi-template.js +2 -0
- package/dist/helpers/fetch-mcpi-template.js.map +1 -1
- package/dist/index.js +79 -44
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/helpers/create.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4CrD,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAiI3B"}
|
package/dist/helpers/create.js
CHANGED
|
@@ -2,6 +2,7 @@ import path from "path";
|
|
|
2
2
|
import fs from "fs-extra";
|
|
3
3
|
import { fileURLToPath } from "url";
|
|
4
4
|
import { fetchMCPITemplate } from "./fetch-mcpi-template.js";
|
|
5
|
+
import { fetchCloudflareTemplate } from "./fetch-cloudflare-template.js";
|
|
5
6
|
import { renameFiles } from "./rename.js";
|
|
6
7
|
import { install } from "./install.js";
|
|
7
8
|
import { validateProjectStructure, ensureLockfile, } from "./validate-project-structure.js";
|
|
@@ -50,18 +51,27 @@ function createProjectDirectories(projectPath) {
|
|
|
50
51
|
* Create a new MCP-I project with identity features
|
|
51
52
|
*/
|
|
52
53
|
export async function createProject(options) {
|
|
53
|
-
const { projectPath, projectName, packageManager, transports, packageVersion, useLocalXmcp, mcpiVersion, deployToVercel, skipInstall, agentName = projectName, agentDescription = "MCP-I server with identity features", agentRepository = "", skipIdentity = false, skipAnimation = false, fastAnimation = false, } = options;
|
|
54
|
+
const { projectPath, projectName, packageManager, transports, packageVersion, useLocalXmcp, mcpiVersion, deployToVercel, skipInstall, agentName = projectName, agentDescription = "MCP-I server with identity features", agentRepository = "", skipIdentity = false, skipAnimation = false, fastAnimation = false, template = "default", } = options;
|
|
54
55
|
const warnings = [];
|
|
55
56
|
let resolvedMcpiVersion = mcpiVersion;
|
|
56
57
|
try {
|
|
57
58
|
// Ensure the project directory exists
|
|
58
59
|
fs.ensureDirSync(projectPath);
|
|
59
|
-
// Scaffold
|
|
60
|
-
console.log(chalk.blue("\nš Scaffolding
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
// Scaffold project based on template
|
|
61
|
+
console.log(chalk.blue("\nš Scaffolding project..."));
|
|
62
|
+
if (template === "cloudflare") {
|
|
63
|
+
// Cloudflare Worker verifier template
|
|
64
|
+
await fetchCloudflareTemplate(projectPath, {
|
|
65
|
+
packageManager,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// Default MCP-I server template
|
|
70
|
+
await fetchMCPITemplate(projectPath, {
|
|
71
|
+
mcpiVersion,
|
|
72
|
+
packageManager,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
65
75
|
// Capture the resolved version for the result
|
|
66
76
|
const packageJsonPath = path.join(projectPath, "package.json");
|
|
67
77
|
if (fs.existsSync(packageJsonPath)) {
|
|
@@ -92,25 +102,29 @@ export async function createProject(options) {
|
|
|
92
102
|
spaces: 2,
|
|
93
103
|
});
|
|
94
104
|
}
|
|
95
|
-
// Create necessary project directories
|
|
96
|
-
|
|
105
|
+
// Create necessary project directories (skip for cloudflare template)
|
|
106
|
+
if (template !== "cloudflare") {
|
|
107
|
+
createProjectDirectories(projectPath);
|
|
108
|
+
}
|
|
97
109
|
// Install project dependencies
|
|
98
110
|
if (!skipInstall) {
|
|
99
111
|
install(projectPath, packageManager, packageVersion);
|
|
100
112
|
// Ensure lockfile is properly created
|
|
101
113
|
ensureLockfile(projectPath, packageManager);
|
|
102
114
|
}
|
|
103
|
-
// Validate project structure meets requirements
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
// Validate project structure meets requirements (skip for cloudflare)
|
|
116
|
+
if (template !== "cloudflare") {
|
|
117
|
+
const validation = validateProjectStructure(projectPath, !skipIdentity);
|
|
118
|
+
if (!validation.valid) {
|
|
119
|
+
console.warn(chalk.yellow("ā ļø Project structure validation issues:"));
|
|
120
|
+
for (const issue of validation.issues) {
|
|
121
|
+
console.warn(chalk.yellow(` - ${issue}`));
|
|
122
|
+
warnings.push(...validation.issues);
|
|
123
|
+
}
|
|
110
124
|
}
|
|
111
125
|
}
|
|
112
|
-
// Identity setup is now handled by the CLI after scaffolding
|
|
113
|
-
if (!skipIdentity) {
|
|
126
|
+
// Identity setup is now handled by the CLI after scaffolding (not for cloudflare)
|
|
127
|
+
if (!skipIdentity && template !== "cloudflare") {
|
|
114
128
|
console.log(chalk.blue("\nš Identity setup will be handled by the CLI"));
|
|
115
129
|
console.log(chalk.gray(" Run 'mcpi init' after scaffolding to set up identity"));
|
|
116
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,cAAc,GACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,iCAAiC;AACjC,SAAS,gBAAgB,CAAC,GAAW,EAAE,gBAAwB;IAC7D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAEtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACjE,MAAM,eAAe,GACnB,gBAAgB,CAAC,MAAM,KAAK,EAAE;YAC5B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;YAClC,CAAC,CAAC,gBAAgB,CAAC;QAEvB,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACzC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC;gBACtD,eAAe;aAChB,CAAC;YACF,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,GAAG,EAAE,GAAG;YACR,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC/B,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAC;QAEH,OAAO,oCAAoC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface CloudflareTemplateOptions {
|
|
2
|
+
verifierVersion?: string;
|
|
3
|
+
packageManager?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Scaffold Cloudflare Worker verifier project
|
|
7
|
+
* This creates a standalone Worker verifier with KV nonce caching
|
|
8
|
+
*/
|
|
9
|
+
export declare function fetchCloudflareTemplate(projectPath: string, options?: CloudflareTemplateOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=fetch-cloudflare-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-cloudflare-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-template.ts"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CA2Uf"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
/**
|
|
8
|
+
* Scaffold Cloudflare Worker verifier project
|
|
9
|
+
* This creates a standalone Worker verifier with KV nonce caching
|
|
10
|
+
*/
|
|
11
|
+
export async function fetchCloudflareTemplate(projectPath, options = {}) {
|
|
12
|
+
const { verifierVersion = "^1.3.0", packageManager = "npm" } = options;
|
|
13
|
+
try {
|
|
14
|
+
console.log(chalk.blue(`š¦ Setting up Cloudflare Worker verifier with @kya-os/verifier@${verifierVersion}...`));
|
|
15
|
+
// Create package.json for Cloudflare Worker
|
|
16
|
+
const packageJson = {
|
|
17
|
+
name: path.basename(projectPath),
|
|
18
|
+
version: "1.0.0",
|
|
19
|
+
type: "module",
|
|
20
|
+
private: true,
|
|
21
|
+
scripts: {
|
|
22
|
+
dev: "wrangler dev",
|
|
23
|
+
deploy: "wrangler deploy",
|
|
24
|
+
"deploy:production": "wrangler deploy --env production",
|
|
25
|
+
"kv:create": "wrangler kv:namespace create NONCE_CACHE",
|
|
26
|
+
"kv:create:preview": "wrangler kv:namespace create NONCE_CACHE --preview",
|
|
27
|
+
tail: "wrangler tail",
|
|
28
|
+
test: "vitest",
|
|
29
|
+
},
|
|
30
|
+
dependencies: {
|
|
31
|
+
"@kya-os/verifier": verifierVersion,
|
|
32
|
+
},
|
|
33
|
+
devDependencies: {
|
|
34
|
+
"@cloudflare/workers-types": "^4.20240925.0",
|
|
35
|
+
"@cloudflare/vitest-pool-workers": "^0.5.0",
|
|
36
|
+
typescript: "^5.6.2",
|
|
37
|
+
vitest: "^2.1.1",
|
|
38
|
+
wrangler: "^3.78.12",
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
// Write package.json
|
|
42
|
+
fs.ensureDirSync(projectPath);
|
|
43
|
+
fs.writeJsonSync(path.join(projectPath, "package.json"), packageJson, { spaces: 2 });
|
|
44
|
+
// Create src directory
|
|
45
|
+
const srcDir = path.join(projectPath, "src");
|
|
46
|
+
fs.ensureDirSync(srcDir);
|
|
47
|
+
// Create Worker implementation
|
|
48
|
+
const workerContent = `import {
|
|
49
|
+
verifyWorker,
|
|
50
|
+
applyVerificationToResponse,
|
|
51
|
+
createConfigFromEnv,
|
|
52
|
+
type WorkerEnv,
|
|
53
|
+
} from "@kya-os/verifier/worker";
|
|
54
|
+
|
|
55
|
+
export default {
|
|
56
|
+
async fetch(request: Request, env: WorkerEnv): Promise<Response> {
|
|
57
|
+
const url = new URL(request.url);
|
|
58
|
+
|
|
59
|
+
// Health check endpoint
|
|
60
|
+
if (url.pathname === "/health") {
|
|
61
|
+
return new Response(
|
|
62
|
+
JSON.stringify({
|
|
63
|
+
status: "healthy",
|
|
64
|
+
timestamp: new Date().toISOString(),
|
|
65
|
+
}),
|
|
66
|
+
{
|
|
67
|
+
headers: { "Content-Type": "application/json" },
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Verification endpoint
|
|
73
|
+
if (url.pathname === "/verify") {
|
|
74
|
+
// Create config from environment variables
|
|
75
|
+
const config = createConfigFromEnv(env, {
|
|
76
|
+
allowMockData: false,
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Verify the proof
|
|
80
|
+
const result = await verifyWorker(request, config);
|
|
81
|
+
|
|
82
|
+
// If verification failed, return error response
|
|
83
|
+
if (!result.success) {
|
|
84
|
+
return applyVerificationToResponse(result);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Check required scopes (example)
|
|
88
|
+
const requiredScopes = ["cart:add", "checkout"];
|
|
89
|
+
const hasRequiredScope = requiredScopes.some((scope) =>
|
|
90
|
+
result.proof?.scope?.includes(scope)
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
if (!hasRequiredScope) {
|
|
94
|
+
return new Response(
|
|
95
|
+
JSON.stringify({
|
|
96
|
+
verified: false,
|
|
97
|
+
error: "Insufficient permissions",
|
|
98
|
+
requiredScopes,
|
|
99
|
+
}),
|
|
100
|
+
{
|
|
101
|
+
status: 403,
|
|
102
|
+
headers: { "Content-Type": "application/json" },
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Success response with agent context
|
|
108
|
+
return new Response(
|
|
109
|
+
JSON.stringify({
|
|
110
|
+
verified: true,
|
|
111
|
+
agentDid: result.proof?.agentDid,
|
|
112
|
+
timestamp: new Date().toISOString(),
|
|
113
|
+
}),
|
|
114
|
+
{
|
|
115
|
+
headers: { "Content-Type": "application/json" },
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return new Response("Not Found", { status: 404 });
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
`;
|
|
124
|
+
fs.writeFileSync(path.join(srcDir, "index.ts"), workerContent);
|
|
125
|
+
// Create wrangler.toml
|
|
126
|
+
const wranglerContent = `#:schema node_modules/wrangler/config-schema.json
|
|
127
|
+
name = "${path.basename(projectPath)}"
|
|
128
|
+
main = "src/index.ts"
|
|
129
|
+
compatibility_date = "2024-09-25"
|
|
130
|
+
node_compat = true
|
|
131
|
+
|
|
132
|
+
# KV Namespace for nonce cache
|
|
133
|
+
# Run: wrangler kv:namespace create NONCE_CACHE
|
|
134
|
+
# Then replace the id below with the output
|
|
135
|
+
[[kv_namespaces]]
|
|
136
|
+
binding = "NONCE_CACHE"
|
|
137
|
+
id = "YOUR_KV_NAMESPACE_ID"
|
|
138
|
+
|
|
139
|
+
# Environment variables (non-sensitive)
|
|
140
|
+
[vars]
|
|
141
|
+
KYA_API_URL = "https://knowthat.ai"
|
|
142
|
+
XMCP_I_TS_SKEW_SEC = "120"
|
|
143
|
+
XMCP_I_SESSION_TTL = "1800"
|
|
144
|
+
|
|
145
|
+
# Production environment
|
|
146
|
+
[env.production]
|
|
147
|
+
name = "${path.basename(projectPath)}-production"
|
|
148
|
+
vars = { KYA_API_URL = "https://knowthat.ai", XMCP_I_TS_SKEW_SEC = "60" }
|
|
149
|
+
|
|
150
|
+
[[env.production.kv_namespaces]]
|
|
151
|
+
binding = "NONCE_CACHE"
|
|
152
|
+
id = "YOUR_PRODUCTION_KV_NAMESPACE_ID"
|
|
153
|
+
`;
|
|
154
|
+
fs.writeFileSync(path.join(projectPath, "wrangler.toml"), wranglerContent);
|
|
155
|
+
// Create tsconfig.json
|
|
156
|
+
const tsconfigContent = {
|
|
157
|
+
compilerOptions: {
|
|
158
|
+
target: "ES2022",
|
|
159
|
+
module: "ES2022",
|
|
160
|
+
lib: ["ES2022"],
|
|
161
|
+
types: ["@cloudflare/workers-types"],
|
|
162
|
+
moduleResolution: "bundler",
|
|
163
|
+
resolveJsonModule: true,
|
|
164
|
+
allowSyntheticDefaultImports: true,
|
|
165
|
+
esModuleInterop: true,
|
|
166
|
+
strict: true,
|
|
167
|
+
skipLibCheck: true,
|
|
168
|
+
forceConsistentCasingInFileNames: true,
|
|
169
|
+
},
|
|
170
|
+
include: ["src/**/*"],
|
|
171
|
+
};
|
|
172
|
+
fs.writeJsonSync(path.join(projectPath, "tsconfig.json"), tsconfigContent, { spaces: 2 });
|
|
173
|
+
// Create .gitignore
|
|
174
|
+
const gitignoreContent = `node_modules/
|
|
175
|
+
dist/
|
|
176
|
+
.wrangler/
|
|
177
|
+
.dev.vars
|
|
178
|
+
.env
|
|
179
|
+
.env.local
|
|
180
|
+
*.log
|
|
181
|
+
`;
|
|
182
|
+
fs.writeFileSync(path.join(projectPath, ".gitignore"), gitignoreContent);
|
|
183
|
+
// Create README.md
|
|
184
|
+
const readmeContent = `# ${path.basename(projectPath)}
|
|
185
|
+
|
|
186
|
+
MCP-I proof verifier deployed on Cloudflare Workers with KV nonce caching.
|
|
187
|
+
|
|
188
|
+
## Quick Start
|
|
189
|
+
|
|
190
|
+
### 1. Install Dependencies
|
|
191
|
+
|
|
192
|
+
\`\`\`bash
|
|
193
|
+
${packageManager} install
|
|
194
|
+
\`\`\`
|
|
195
|
+
|
|
196
|
+
### 2. Create KV Namespace
|
|
197
|
+
|
|
198
|
+
\`\`\`bash
|
|
199
|
+
${packageManager === "npm" ? "npm run" : packageManager} kv:create
|
|
200
|
+
\`\`\`
|
|
201
|
+
|
|
202
|
+
Copy the \`id\` from the output and update \`wrangler.toml\`:
|
|
203
|
+
|
|
204
|
+
\`\`\`toml
|
|
205
|
+
[[kv_namespaces]]
|
|
206
|
+
binding = "NONCE_CACHE"
|
|
207
|
+
id = "your-kv-namespace-id-here" # ā Update this
|
|
208
|
+
\`\`\`
|
|
209
|
+
|
|
210
|
+
### 3. Test Locally
|
|
211
|
+
|
|
212
|
+
\`\`\`bash
|
|
213
|
+
${packageManager === "npm" ? "npm run" : packageManager} dev
|
|
214
|
+
\`\`\`
|
|
215
|
+
|
|
216
|
+
Visit http://localhost:8787/health to verify it's running.
|
|
217
|
+
|
|
218
|
+
### 4. Deploy to Cloudflare
|
|
219
|
+
|
|
220
|
+
\`\`\`bash
|
|
221
|
+
# Login to Cloudflare (first time only)
|
|
222
|
+
npx wrangler login
|
|
223
|
+
|
|
224
|
+
# Deploy to development
|
|
225
|
+
${packageManager === "npm" ? "npm run" : packageManager} deploy
|
|
226
|
+
|
|
227
|
+
# Deploy to production
|
|
228
|
+
${packageManager === "npm" ? "npm run" : packageManager} deploy:production
|
|
229
|
+
\`\`\`
|
|
230
|
+
|
|
231
|
+
## API Endpoints
|
|
232
|
+
|
|
233
|
+
### \`GET /health\`
|
|
234
|
+
Health check endpoint.
|
|
235
|
+
|
|
236
|
+
**Response:**
|
|
237
|
+
\`\`\`json
|
|
238
|
+
{
|
|
239
|
+
"status": "healthy",
|
|
240
|
+
"timestamp": "2024-10-09T12:00:00.000Z"
|
|
241
|
+
}
|
|
242
|
+
\`\`\`
|
|
243
|
+
|
|
244
|
+
### \`POST /verify\`
|
|
245
|
+
Verify MCP-I cryptographic proof.
|
|
246
|
+
|
|
247
|
+
**Request:**
|
|
248
|
+
\`\`\`json
|
|
249
|
+
{
|
|
250
|
+
"proof": {
|
|
251
|
+
"agentDid": "did:web:example.com",
|
|
252
|
+
"timestamp": 1234567890,
|
|
253
|
+
"nonce": "abc123",
|
|
254
|
+
"signature": "...",
|
|
255
|
+
"publicKey": "..."
|
|
256
|
+
},
|
|
257
|
+
"requiredScopes": ["cart:add"]
|
|
258
|
+
}
|
|
259
|
+
\`\`\`
|
|
260
|
+
|
|
261
|
+
**Response (Success):**
|
|
262
|
+
\`\`\`json
|
|
263
|
+
{
|
|
264
|
+
"verified": true,
|
|
265
|
+
"agentDid": "did:web:example.com",
|
|
266
|
+
"timestamp": "2024-10-09T12:00:00.000Z"
|
|
267
|
+
}
|
|
268
|
+
\`\`\`
|
|
269
|
+
|
|
270
|
+
**Response (Failed):**
|
|
271
|
+
\`\`\`json
|
|
272
|
+
{
|
|
273
|
+
"verified": false,
|
|
274
|
+
"error": "Invalid signature"
|
|
275
|
+
}
|
|
276
|
+
\`\`\`
|
|
277
|
+
|
|
278
|
+
## Configuration
|
|
279
|
+
|
|
280
|
+
### Environment Variables (wrangler.toml)
|
|
281
|
+
|
|
282
|
+
- \`KYA_API_URL\` - KYA API endpoint (default: https://knowthat.ai)
|
|
283
|
+
- \`XMCP_I_TS_SKEW_SEC\` - Clock skew tolerance in seconds (default: 120)
|
|
284
|
+
- \`XMCP_I_SESSION_TTL\` - Session timeout in seconds (default: 1800)
|
|
285
|
+
|
|
286
|
+
### KV Namespace
|
|
287
|
+
|
|
288
|
+
The Worker uses Cloudflare KV for distributed nonce caching to prevent replay attacks.
|
|
289
|
+
|
|
290
|
+
Create separate namespaces for development and production:
|
|
291
|
+
|
|
292
|
+
\`\`\`bash
|
|
293
|
+
# Development
|
|
294
|
+
${packageManager === "npm" ? "npm run" : packageManager} kv:create
|
|
295
|
+
|
|
296
|
+
# Production (after deploying once)
|
|
297
|
+
wrangler kv:namespace create NONCE_CACHE --env production
|
|
298
|
+
\`\`\`
|
|
299
|
+
|
|
300
|
+
## Testing
|
|
301
|
+
|
|
302
|
+
Send a test request:
|
|
303
|
+
|
|
304
|
+
\`\`\`bash
|
|
305
|
+
curl -X POST https://your-worker.workers.dev/verify \\
|
|
306
|
+
-H "Content-Type: application/json" \\
|
|
307
|
+
-d '{
|
|
308
|
+
"proof": {
|
|
309
|
+
"agentDid": "did:web:example.com",
|
|
310
|
+
"timestamp": 1234567890,
|
|
311
|
+
"nonce": "test123",
|
|
312
|
+
"signature": "...",
|
|
313
|
+
"publicKey": "..."
|
|
314
|
+
}
|
|
315
|
+
}'
|
|
316
|
+
\`\`\`
|
|
317
|
+
|
|
318
|
+
## Learn More
|
|
319
|
+
|
|
320
|
+
- [MCP-I Documentation](https://github.com/kya-os/xmcp-i)
|
|
321
|
+
- [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
|
|
322
|
+
- [Cloudflare KV Docs](https://developers.cloudflare.com/kv/)
|
|
323
|
+
`;
|
|
324
|
+
fs.writeFileSync(path.join(projectPath, "README.md"), readmeContent);
|
|
325
|
+
console.log(chalk.green("ā
Cloudflare Worker verifier structure created"));
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
console.error(chalk.red("Failed to set up Cloudflare Worker verifier:"), error);
|
|
329
|
+
throw error;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=fetch-cloudflare-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-cloudflare-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"fetch-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAmKf"}
|
|
@@ -16,6 +16,7 @@ export async function fetchMCPITemplate(projectPath, options = {}) {
|
|
|
16
16
|
dependencies: {
|
|
17
17
|
"@kya-os/cli": "^1.2.7",
|
|
18
18
|
"@kya-os/mcp-i": mcpiVersion,
|
|
19
|
+
"zod": "^3.24.4",
|
|
19
20
|
},
|
|
20
21
|
scripts: {
|
|
21
22
|
dev: "mcpi dev",
|
|
@@ -29,6 +30,7 @@ export async function fetchMCPITemplate(projectPath, options = {}) {
|
|
|
29
30
|
},
|
|
30
31
|
devDependencies: {
|
|
31
32
|
"@modelcontextprotocol/inspector": "^0.16.6",
|
|
33
|
+
"swc-loader": "^0.2.6",
|
|
32
34
|
},
|
|
33
35
|
};
|
|
34
36
|
// Write package.json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,UAAmC,EAAE;IAErC,MAAM,EAAE,WAAW,GAAG,QAAQ,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEnE,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,kDAAkD,WAAW,KAAK,CAAC,CAC/E,CAAC;QAEF,+DAA+D;QAC/D,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAChC,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE;gBACZ,aAAa,EAAE,QAAQ;gBACvB,eAAe,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"fetch-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"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"}
|