Release 4.0.0-beta.2
· 2 minute read
这是全新的 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('应用停止');
}
});