feishu-mcp 0.1.8 → 0.1.9-test.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/dist/index.js CHANGED
@@ -20,6 +20,9 @@ export async function startServer() {
20
20
  console.log(`isStdioMode:${isStdioMode}`);
21
21
  if (isStdioMode) {
22
22
  const transport = new StdioServerTransport();
23
+ // 在stdio模式下也需要启动HTTP服务器以提供callback接口
24
+ // 启动最小化的HTTP服务器(只提供callback接口)
25
+ await server.startCallbackServer(config.server.port);
23
26
  await server.connect(transport);
24
27
  }
25
28
  else {
package/dist/server.js CHANGED
@@ -8,6 +8,7 @@ import { SSEConnectionManager } from './manager/sseConnectionManager.js';
8
8
  import { FeishuMcp } from './mcp/feishuMcp.js';
9
9
  import { callback } from './services/callbackService.js';
10
10
  import { UserAuthManager, UserContextManager, getBaseUrl, TokenCacheManager, TokenRefreshManager } from './utils/auth/index.js';
11
+ import { Config } from './utils/config.js';
11
12
  export class FeishuMcpServer {
12
13
  constructor() {
13
14
  Object.defineProperty(this, "connectionManager", {
@@ -40,7 +41,15 @@ export class FeishuMcpServer {
40
41
  }
41
42
  async connect(transport) {
42
43
  const server = new FeishuMcp();
43
- await server.connect(transport);
44
+ // stdio模式只能本地运行,使用localhost + 配置的端口
45
+ const config = Config.getInstance();
46
+ const baseUrl = `http://localhost:${config.server.port}`;
47
+ await this.userContextManager.run({
48
+ userKey: 'stdio',
49
+ baseUrl: baseUrl
50
+ }, async () => {
51
+ await server.connect(transport);
52
+ });
44
53
  Logger.info = (...args) => {
45
54
  server.server.sendLoggingMessage({ level: 'info', data: args });
46
55
  };
@@ -228,4 +237,20 @@ export class FeishuMcpServer {
228
237
  Logger.info(`StreamableHTTP endpoint available at http://localhost:${port}/mcp`);
229
238
  });
230
239
  }
240
+ /**
241
+ * 启动最小化的HTTP服务器(仅提供callback接口)
242
+ * 用于stdio模式下提供OAuth回调功能
243
+ * @param port 服务器端口
244
+ */
245
+ async startCallbackServer(port) {
246
+ const app = express();
247
+ console.log(`[Callback Server] startCallbackServer`);
248
+ // 只注册callback接口
249
+ app.get('/callback', callback);
250
+ app.listen(port, '0.0.0.0', () => {
251
+ // 使用console.log确保在stdio模式下也能看到日志
252
+ Logger.info(`Callback server listening on port ${port}`);
253
+ Logger.info(`Callback endpoint available at http://localhost:${port}/callback`);
254
+ });
255
+ }
231
256
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feishu-mcp",
3
- "version": "0.1.8",
3
+ "version": "0.1.9-test.1",
4
4
  "description": "Model Context Protocol server for Feishu integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,7 +23,8 @@
23
23
  "format": "prettier --write \"src/**/*.ts\"",
24
24
  "inspect": "pnpx @modelcontextprotocol/inspector",
25
25
  "prepare": "pnpm run build",
26
- "pub:release": "pnpm build && npm publish"
26
+ "pub:release": "pnpm build && npm publish",
27
+ "pub:test": "pnpm build && npm publish --tag test"
27
28
  },
28
29
  "engines": {
29
30
  "node": "^20.17.0"