Release 4.0.0-beta.2
这是全新的 Midway 4.0 的第二个 beta 版本。
在这个版本中,我们带来了一些重要的新功能和改进,主要包括 MCP 组件的全面支持以及 mock 组件的测试体验优化。
🚀 主要新增功能
MCP (Model Context Protocol) 支持
我们正式加入了对 MCP 的完整支持。MCP 是由 Anthropic 开发的开放标准协议,用于将 AI 模型与外部数据源和工具安全连接。
Midway 现在提供了:
- 完整的 MCP 服务器框架封装
- 支持多种传输方式:stdio、stream-http、sse
- 基于装饰器的开发体验
- 与现有 HTTP 框架(Express、Koa、Egg.js)的无缝集成
使用 Midway 可以快速创建 MCP 服务,为 AI 应用程序提供标准化的数据访问和工具调用接口。
import { Tool, IMcpTool } from '@midwayjs/mcp';
import { z } from 'zod';
@Tool('databaes-tool', {
  description: 'A tool to query user information from the database',
  inputSchema: {
    name: z.string().describe('name to query'),
  }
})
export class DatabaseTool implements IMcpTool  {
  async execute(args: { name: string }) {
    // 模拟数据库查询
    return {
      content: [{
        type: 'text',
        text: [{ id: 1, name: args.name }]
      }],
    }
  }
}
更多关于 MCP 的详细使用方法和配置选项,请参考 MCP 组件文档。
Mock 组件测试改进
针对开发者测试体验的优化,我们为 mock 组件的 createApp 方法增加了完整的生命周期支持:
- 新增 onReady、onStop、onConfigLoad、onServerReady、onHealthCheck等生命周期钩子
这些改进让测试代码能够更准确地反映真实运行环境的行为,提升测试的可靠性。
const app = await createApp(join(__dirname, 'fixtures', 'base-app'), {
  onReady: async () => {
    console.log('应用准备就绪');
  },
  onStop: async () => {
    console.log('应用停止');
  }
});