Skip to content

最小模板

最小模板提供了最简化的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"
  }
}

开发流程

  1. 安装依赖

    bash
    npm install
  2. 开发模式

    bash
    npm run dev
  3. 构建项目

    bash
    npm run build
  4. 运行项目

    bash
    npm start

使用场景

快速原型

最小模板非常适合快速验证想法:

bash
gm-mcp init prototype --template minimal --yes
cd prototype
npm install
npm run dev

学习MCP

对于初学者,最小模板提供了最简单的MCP实现:

  • 只有一个工具
  • 代码结构清晰
  • 易于理解和修改

简单工具

适合构建简单的MCP工具:

  • 单一功能
  • 不需要复杂架构
  • 快速部署

扩展建议

如果需要更多功能,可以考虑:

  1. 添加更多工具

    typescript
    // 在 ListToolsRequestSchema 处理器中添加更多工具
  2. 添加错误处理

    typescript
    // 在工具调用中添加 try-catch
  3. 添加日志

    typescript
    // 使用 console.log 或简单的日志库

下一步

基于 MIT 许可证发布