server.ts
# Minimal MCP Server Scaffold
Generated for: Next.js
Stack notes: Next.js, TypeScript, React, CSS modules
## package.json
```json
{
"name": "next-js-mcp-server",
"version": "0.1.0",
"type": "module",
"private": true,
"scripts": {
"dev": "tsx src/server.ts",
"build": "tsc",
"start": "node dist/server.js"
},
"dependencies": {
"@modelcontextprotocol/sdk": "latest",
"zod": "latest"
},
"devDependencies": {
"tsx": "latest",
"typescript": "latest"
}
}
```
## src/server.ts
```ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "next-js-mcp-server",
version: "0.1.0"
});
server.registerTool(
"project_context",
{
title: "Project context",
description: "Return project-specific context for an AI coding tool.",
inputSchema: {
topic: z.string().describe("The context topic to retrieve")
}
},
async ({ topic }) => ({
content: [
{
type: "text",
text: `Context for ${topic}: replace this handler with a real lookup, API call, or local index.`
}
]
})
);
const transport = new StdioServerTransport();
await server.connect(transport);
```
## mcp.json
```json
{
"mcpServers": {
"next-js": {
"command": "node",
"args": ["dist/server.js"]
}
}
}
```
## Validation
- Build: `npm run build`
- Test: `npm test`
- Lint: `npm run lint`
## Implementation Notes
Before handoff, summarize changed files and mention any checks that could not be run.
当现有 marketplace server 没有覆盖你的私有数据、内部工具或团队工作流时,可以用 MCP Server 生成器创建一个小型自定义 server 起点。
会生成什么
起步输出包含 TypeScript package、stdio MCP server、一个示例 tool、mcp.json 片段和验证说明。先把它当作窄范围 MVP,再加入鉴权、持久化或写操作。
什么时候自建 Server
适合私有 API、内部文档、本地索引、产品专属流程,或需要稳定 schema 的工具。如果已有维护良好的 server 覆盖需求,优先使用现成方案。
上线检查
第一个 server 尽量保持只读,用环境变量放凭证,在仓库指令中记录命令,并在共享前从干净终端测试 mcp.json 里的完整命令。
常见问题
这和 MCP 配置生成器有什么区别?
配置生成器为已有 server 生成 mcp.json;这个页面生成可自行实现的 server 起步代码。
自定义 MCP server 应该用 stdio 还是 HTTP?
stdio 适合本地优先的简单起点。需要共享、部署或远程访问时再考虑 HTTP。
第一个 tool 应该做什么?
从一个只读工具开始,返回真正有用的上下文。写操作应等权限和审计行为清楚后再加。