跳到主要内容

Release 4.0.0-beta.2

· 阅读需 2 分钟
Harry Chen
Maintainer of Midway

这是全新的 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 方法增加了完整的生命周期支持:

  • 新增 onReadyonStoponConfigLoadonServerReadyonHealthCheck 等生命周期钩子

这些改进让测试代码能够更准确地反映真实运行环境的行为,提升测试的可靠性。

const app = await createApp(join(__dirname, 'fixtures', 'base-app'), {
onReady: async () => {
console.log('应用准备就绪');
},
onStop: async () => {
console.log('应用停止');
}
});