Skip to content

Commit fbd7b14

Browse files
chore(internal): codegen related update
1 parent 09e1385 commit fbd7b14

File tree

6 files changed

+423
-9
lines changed

6 files changed

+423
-9
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ dist
77
dist-deno
88
/*.tgz
99
.idea/
10-
10+
dist-bundle
11+
*.dxt

packages/mcp-server/build

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,27 @@ cp tsconfig.dist-src.json dist/src/tsconfig.json
3030
chmod +x dist/index.js
3131

3232
DIST_PATH=./dist PKG_IMPORT_PATH=cas-parser-node-mcp/ node ../../scripts/utils/postprocess-files.cjs
33+
34+
# mcp bundle
35+
rm -rf dist-bundle cas_parser_node_api.dxt; mkdir dist-bundle
36+
37+
# copy package.json
38+
PKG_JSON_PATH=../../packages/mcp-server/package.json node ../../scripts/utils/make-dist-package-json.cjs > dist-bundle/package.json
39+
40+
# copy files
41+
node scripts/copy-bundle-files.cjs
42+
43+
# install runtime deps
44+
cd dist-bundle
45+
npm install
46+
cd ..
47+
48+
# pack bundle
49+
cp manifest.json dist-bundle
50+
51+
npx dxt pack dist-bundle cas_parser_node_api.dxt
52+
53+
npx dxt sign cas_parser_node_api.dxt --self-signed
54+
55+
# clean up
56+
rm -rf dist-bundle

packages/mcp-server/manifest.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"dxt_version": "0.1",
3+
"name": "cas-parser-node-mcp",
4+
"version": "1.3.0",
5+
"description": "The official MCP Server for the Cas Parser API",
6+
"author": {
7+
"name": "Cas Parser",
8+
"email": "[email protected]"
9+
},
10+
"repository": {
11+
"type": "git",
12+
"url": "git+https://github.com/CASParser/cas-parser-node.git"
13+
},
14+
"homepage": "https://github.com/CASParser/cas-parser-node/tree/main/packages/mcp-server#readme",
15+
"documentation": "https://docs.casparser.in/reference",
16+
"server": {
17+
"type": "node",
18+
"entry_point": "${__dirname}/index.js",
19+
"mcp_config": {
20+
"command": "node",
21+
"args": ["${__dirname}/index.js"],
22+
"env": {
23+
"CAS_PARSER_API_KEY": "${user_config.CAS_PARSER_API_KEY}"
24+
}
25+
}
26+
},
27+
"user_config": {
28+
"CAS_PARSER_API_KEY": {
29+
"title": "api_key",
30+
"description": "Your API key for authentication.\nUse `sandbox-with-json-responses` as Sandbox key.\n",
31+
"required": true,
32+
"type": "string"
33+
}
34+
},
35+
"tools_generated": true,
36+
"compatibility": {
37+
"runtimes": {
38+
"node": ">=18.0.0"
39+
}
40+
},
41+
"keywords": ["api"]
42+
}

packages/mcp-server/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"mcp-server": "dist/index.js"
4848
},
4949
"devDependencies": {
50+
"@anthropic-ai/dxt": "^0.2.6",
5051
"@types/cors": "^2.8.19",
5152
"@types/express": "^5.0.3",
5253
"@types/jest": "^29.4.0",
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
const pkgJson = require('../dist-bundle/package.json');
4+
5+
const distDir = path.resolve(__dirname, '..', 'dist');
6+
const distBundleDir = path.resolve(__dirname, '..', 'dist-bundle');
7+
const distBundlePkgJson = path.join(distBundleDir, 'package.json');
8+
9+
async function* walk(dir) {
10+
for await (const d of await fs.promises.opendir(dir)) {
11+
const entry = path.join(dir, d.name);
12+
if (d.isDirectory()) yield* walk(entry);
13+
else if (d.isFile()) yield entry;
14+
}
15+
}
16+
17+
async function copyFiles() {
18+
// copy runtime files
19+
for await (const file of walk(distDir)) {
20+
if (!/[cm]?js$/.test(file)) continue;
21+
const dest = path.join(distBundleDir, path.relative(distDir, file));
22+
await fs.promises.mkdir(path.dirname(dest), { recursive: true });
23+
await fs.promises.copyFile(file, dest);
24+
}
25+
26+
// replace package.json reference with local reference
27+
for (const dep in pkgJson.dependencies) {
28+
if (dep === 'cas-parser-node') {
29+
pkgJson.dependencies[dep] = 'file:../../../dist/';
30+
}
31+
}
32+
33+
await fs.promises.writeFile(distBundlePkgJson, JSON.stringify(pkgJson, null, 2));
34+
}
35+
36+
copyFiles();

0 commit comments

Comments
 (0)