最小模板
最小模板提供了最简化的MCP服务器,适合快速原型和简单项目。
特性
- ✅ 最简化的MCP服务器
- ✅ 单个问候工具
- ✅ 最小依赖
- ✅ 快速启动
项目结构
project/
├── src/
│ └── index.ts # 主入口文件
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
└── README.md # 项目说明创建项目
bash
gm-mcp init my-project --template minimal核心代码
主入口文件
typescript
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import {
CallToolRequestSchema,
ListToolsRequestSchema,
} from '@modelcontextprotocol/sdk/types.js';
// 创建MCP服务器
const server = new Server({
name: 'my-project',
version: '1.0.0',
capabilities: {
tools: {},
},
});
// 列出可用工具
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'hello',
description: '简单的问候工具',
inputSchema: {
type: 'object',
properties: {
name: {
type: 'string',
description: '要问候的人的名字',
},
},
required: ['name'],
},
},
],
};
});
// 处理工具调用
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === 'hello') {
const name = request.params.arguments?.name || 'World';
return {
content: [
{
type: 'text',
text: `Hello, ${name}!`,
},
],
};
}
throw new Error(`未知工具: ${request.params.name}`);
});
// 启动服务器
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('MCP服务器已启动');
}
main().catch(console.error);依赖
最小模板只包含必要的依赖:
json
{
"dependencies": {
"@modelcontextprotocol/sdk": "^0.4.0"
},
"devDependencies": {
"@types/node": "^20.10.0",
"typescript": "^5.3.0"
}
}开发流程
安装依赖
bashnpm install开发模式
bashnpm run dev构建项目
bashnpm run build运行项目
bashnpm start
使用场景
快速原型
最小模板非常适合快速验证想法:
bash
gm-mcp init prototype --template minimal --yes
cd prototype
npm install
npm run dev学习MCP
对于初学者,最小模板提供了最简单的MCP实现:
- 只有一个工具
- 代码结构清晰
- 易于理解和修改
简单工具
适合构建简单的MCP工具:
- 单一功能
- 不需要复杂架构
- 快速部署
扩展建议
如果需要更多功能,可以考虑:
添加更多工具
typescript// 在 ListToolsRequestSchema 处理器中添加更多工具添加错误处理
typescript// 在工具调用中添加 try-catch添加日志
typescript// 使用 console.log 或简单的日志库