cloudflare-mcp-smart-proxy 1.0.0 → 1.0.1

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/index.js CHANGED
@@ -7,6 +7,7 @@
7
7
 
8
8
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
9
9
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
10
+ import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
10
11
  import { SmartRouter } from './src/router.js';
11
12
  import { LocalToolExecutor } from './src/local-tools.js';
12
13
 
@@ -42,7 +43,7 @@ const server = new Server(
42
43
  );
43
44
 
44
45
  // 工具列表处理器
45
- server.setRequestHandler('tools/list', async () => {
46
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
46
47
  try {
47
48
  const tools = await router.getAllTools();
48
49
  return { tools };
@@ -53,7 +54,7 @@ server.setRequestHandler('tools/list', async () => {
53
54
  });
54
55
 
55
56
  // 工具调用处理器
56
- server.setRequestHandler('tools/call', async (request) => {
57
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
57
58
  const { name, arguments: args } = request.params;
58
59
 
59
60
  if (!name) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudflare-mcp-smart-proxy",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Smart proxy for Cloudflare MCP - routes tools to cloud or local execution",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudflare-mcp-smart-proxy",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Smart proxy for Cloudflare MCP - routes tools to cloud or local execution",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -26,4 +26,3 @@
26
26
  "node": ">=18.0.0"
27
27
  }
28
28
  }
29
-
package/publish-now.sh CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- # 快速发布脚本
3
+ # 快速发布脚本 - 自动版本管理
4
4
 
5
5
  set -e
6
6
 
@@ -10,6 +10,101 @@ echo "📦 发布 Cloudflare MCP Smart Proxy"
10
10
  echo "=================================="
11
11
  echo ""
12
12
 
13
+ # 读取当前版本
14
+ CURRENT_VERSION=$(node -p "require('./package.json').version" 2>/dev/null || echo "1.0.0")
15
+ echo "当前版本: $CURRENT_VERSION"
16
+
17
+ # 检查 npm 上已发布的版本
18
+ PUBLISHED_VERSION=$(npm view cloudflare-mcp-smart-proxy version 2>/dev/null || echo "0.0.0")
19
+ echo "npm 上最新版本: $PUBLISHED_VERSION"
20
+
21
+ # 如果当前版本已发布,自动递增
22
+ if [ "$CURRENT_VERSION" == "$PUBLISHED_VERSION" ]; then
23
+ echo ""
24
+ echo "⚠️ 当前版本 $CURRENT_VERSION 已发布,需要升级版本"
25
+ echo ""
26
+ echo "选择版本升级类型:"
27
+ echo "1. patch (1.0.0 -> 1.0.1) - 修复 bug"
28
+ echo "2. minor (1.0.0 -> 1.1.0) - 新功能"
29
+ echo "3. major (1.0.0 -> 2.0.0) - 重大变更"
30
+ echo "4. 手动指定版本号"
31
+ echo ""
32
+ read -p "请选择 (1/2/3/4) [默认: 1]: " version_choice
33
+ version_choice=${version_choice:-1}
34
+
35
+ case $version_choice in
36
+ 1)
37
+ NEW_VERSION=$(node -e "
38
+ const v = '$CURRENT_VERSION'.split('.');
39
+ v[2] = parseInt(v[2] || 0) + 1;
40
+ console.log(v.join('.'));
41
+ ")
42
+ ;;
43
+ 2)
44
+ NEW_VERSION=$(node -e "
45
+ const v = '$CURRENT_VERSION'.split('.');
46
+ v[1] = parseInt(v[1] || 0) + 1;
47
+ v[2] = 0;
48
+ console.log(v.join('.'));
49
+ ")
50
+ ;;
51
+ 3)
52
+ NEW_VERSION=$(node -e "
53
+ const v = '$CURRENT_VERSION'.split('.');
54
+ v[0] = parseInt(v[0] || 0) + 1;
55
+ v[1] = 0;
56
+ v[2] = 0;
57
+ console.log(v.join('.'));
58
+ ")
59
+ ;;
60
+ 4)
61
+ read -p "请输入新版本号 (例如: 1.0.2): " NEW_VERSION
62
+ if [ -z "$NEW_VERSION" ]; then
63
+ echo "❌ 版本号不能为空"
64
+ exit 1
65
+ fi
66
+ ;;
67
+ *)
68
+ echo "❌ 无效选择"
69
+ exit 1
70
+ ;;
71
+ esac
72
+
73
+ echo ""
74
+ echo "将升级版本: $CURRENT_VERSION -> $NEW_VERSION"
75
+ read -p "确认升级?(y/n) " -n 1 -r
76
+ echo ""
77
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
78
+ echo "❌ 取消"
79
+ exit 1
80
+ fi
81
+
82
+ # 更新所有 package 文件的版本号
83
+ echo "更新版本号..."
84
+
85
+ # 更新 package.json
86
+ node -e "
87
+ const fs = require('fs');
88
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf-8'));
89
+ pkg.version = '$NEW_VERSION';
90
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
91
+ "
92
+
93
+ # 更新 package-personal.json
94
+ if [ -f "package-personal.json" ]; then
95
+ node -e "
96
+ const fs = require('fs');
97
+ const pkg = JSON.parse(fs.readFileSync('package-personal.json', 'utf-8'));
98
+ pkg.version = '$NEW_VERSION';
99
+ fs.writeFileSync('package-personal.json', JSON.stringify(pkg, null, 2) + '\n');
100
+ "
101
+ fi
102
+
103
+ echo "✅ 版本号已更新为: $NEW_VERSION"
104
+ CURRENT_VERSION=$NEW_VERSION
105
+ echo ""
106
+ fi
107
+
13
108
  # 检查登录
14
109
  if ! npm whoami &> /dev/null; then
15
110
  echo "⚠️ 需要先登录 npm"
@@ -51,9 +146,17 @@ else
51
146
  echo "✅ 已备份 package.json"
52
147
  fi
53
148
 
54
- # 使用个人包名
55
- cp package-personal.json package.json
56
- echo "✅ 已切换到个人包名"
149
+ # 使用个人包名,但保持当前版本号
150
+ node -e "
151
+ const fs = require('fs');
152
+ const currentPkg = JSON.parse(fs.readFileSync('package.json', 'utf-8'));
153
+ const personalPkg = JSON.parse(fs.readFileSync('package-personal.json', 'utf-8'));
154
+
155
+ // 使用个人包名,但保持当前版本号
156
+ personalPkg.version = currentPkg.version;
157
+ fs.writeFileSync('package.json', JSON.stringify(personalPkg, null, 2) + '\n');
158
+ "
159
+ echo "✅ 已切换到个人包名(版本: $CURRENT_VERSION)"
57
160
  fi
58
161
 
59
162
  echo ""
@@ -70,6 +173,13 @@ fi
70
173
 
71
174
  echo ""
72
175
  echo "🚀 发布中..."
176
+ echo ""
177
+ echo "📱 如果启用 2FA,npm 会自动打开浏览器进行认证"
178
+ echo " 请按 ENTER 键打开浏览器(如果提示)"
179
+ echo ""
180
+
181
+ # 尝试发布,如果需要 2FA,npm 会自动打开浏览器
182
+ # macOS 保存的 2FA 会通过浏览器自动完成认证
73
183
  npm publish --access public
74
184
 
75
185
  if [ $? -eq 0 ]; then
@@ -78,6 +188,20 @@ if [ $? -eq 0 ]; then
78
188
  echo "✅ 发布成功!"
79
189
  echo ""
80
190
  echo "包地址: https://www.npmjs.com/package/$PACKAGE_NAME"
191
+ echo "版本: $CURRENT_VERSION"
192
+ echo ""
193
+
194
+ # 如果版本已更新,同步到 package-personal.json
195
+ if [ -f "package-personal.json" ] && [ "$choice" == "2" ]; then
196
+ node -e "
197
+ const fs = require('fs');
198
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf-8'));
199
+ const personalPkg = JSON.parse(fs.readFileSync('package-personal.json', 'utf-8'));
200
+ personalPkg.version = pkg.version;
201
+ fs.writeFileSync('package-personal.json', JSON.stringify(personalPkg, null, 2) + '\n');
202
+ "
203
+ echo "✅ 已同步版本号到 package-personal.json"
204
+ fi
81
205
  echo ""
82
206
  echo "安装方式:"
83
207
  if [ "$choice" == "1" ]; then
@@ -0,0 +1,128 @@
1
+ #!/bin/bash
2
+
3
+ # 版本号管理脚本 - 自动同步所有 package 文件的版本号
4
+
5
+ set -e
6
+
7
+ cd "$(dirname "$0")"
8
+
9
+ echo "📦 版本号管理工具"
10
+ echo "=================="
11
+ echo ""
12
+
13
+ # 读取当前版本
14
+ CURRENT_VERSION=$(node -p "require('./package.json').version" 2>/dev/null || echo "1.0.0")
15
+ echo "当前版本: $CURRENT_VERSION"
16
+
17
+ # 检查 npm 上已发布的版本
18
+ PUBLISHED_VERSION=$(npm view cloudflare-mcp-smart-proxy version 2>/dev/null || echo "0.0.0")
19
+ echo "npm 上最新版本: $PUBLISHED_VERSION"
20
+ echo ""
21
+
22
+ # 选择操作
23
+ echo "选择操作:"
24
+ echo "1. 自动递增版本(patch: 1.0.0 -> 1.0.1)"
25
+ echo "2. 递增 minor 版本(1.0.0 -> 1.1.0)"
26
+ echo "3. 递增 major 版本(1.0.0 -> 2.0.0)"
27
+ echo "4. 手动指定版本号"
28
+ echo "5. 同步所有文件的版本号(不递增)"
29
+ echo ""
30
+ read -p "请选择 (1/2/3/4/5) [默认: 1]: " choice
31
+ choice=${choice:-1}
32
+
33
+ case $choice in
34
+ 1)
35
+ NEW_VERSION=$(node -e "
36
+ const v = '$CURRENT_VERSION'.split('.');
37
+ v[2] = parseInt(v[2] || 0) + 1;
38
+ console.log(v.join('.'));
39
+ ")
40
+ ;;
41
+ 2)
42
+ NEW_VERSION=$(node -e "
43
+ const v = '$CURRENT_VERSION'.split('.');
44
+ v[1] = parseInt(v[1] || 0) + 1;
45
+ v[2] = 0;
46
+ console.log(v.join('.'));
47
+ ")
48
+ ;;
49
+ 3)
50
+ NEW_VERSION=$(node -e "
51
+ const v = '$CURRENT_VERSION'.split('.');
52
+ v[0] = parseInt(v[0] || 0) + 1;
53
+ v[1] = 0;
54
+ v[2] = 0;
55
+ console.log(v.join('.'));
56
+ ")
57
+ ;;
58
+ 4)
59
+ read -p "请输入新版本号 (例如: 1.0.2): " NEW_VERSION
60
+ if [ -z "$NEW_VERSION" ]; then
61
+ echo "❌ 版本号不能为空"
62
+ exit 1
63
+ fi
64
+ ;;
65
+ 5)
66
+ NEW_VERSION=$CURRENT_VERSION
67
+ echo "同步所有文件版本号为: $NEW_VERSION"
68
+ ;;
69
+ *)
70
+ echo "❌ 无效选择"
71
+ exit 1
72
+ ;;
73
+ esac
74
+
75
+ if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
76
+ echo ""
77
+ echo "将更新版本: $CURRENT_VERSION -> $NEW_VERSION"
78
+ read -p "确认更新?(y/n) " -n 1 -r
79
+ echo ""
80
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
81
+ echo "❌ 取消"
82
+ exit 1
83
+ fi
84
+ fi
85
+
86
+ # 更新所有 package 文件的版本号
87
+ echo ""
88
+ echo "更新版本号..."
89
+
90
+ # 更新 package.json
91
+ if [ -f "package.json" ]; then
92
+ node -e "
93
+ const fs = require('fs');
94
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf-8'));
95
+ pkg.version = '$NEW_VERSION';
96
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
97
+ "
98
+ echo "✅ package.json 已更新"
99
+ fi
100
+
101
+ # 更新 package-personal.json
102
+ if [ -f "package-personal.json" ]; then
103
+ node -e "
104
+ const fs = require('fs');
105
+ const pkg = JSON.parse(fs.readFileSync('package-personal.json', 'utf-8'));
106
+ pkg.version = '$NEW_VERSION';
107
+ fs.writeFileSync('package-personal.json', JSON.stringify(pkg, null, 2) + '\n');
108
+ "
109
+ echo "✅ package-personal.json 已更新"
110
+ fi
111
+
112
+ # 验证版本号
113
+ VERIFIED_VERSION=$(node -p "require('./package.json').version")
114
+ if [ "$VERIFIED_VERSION" == "$NEW_VERSION" ]; then
115
+ echo ""
116
+ echo "=================================="
117
+ echo "✅ 版本号更新成功!"
118
+ echo ""
119
+ echo "新版本: $NEW_VERSION"
120
+ echo ""
121
+ else
122
+ echo ""
123
+ echo "❌ 版本号更新失败"
124
+ echo "期望: $NEW_VERSION"
125
+ echo "实际: $VERIFIED_VERSION"
126
+ exit 1
127
+ fi
128
+