Skills Plugins MCP Prompt Model 博客 我的中心

mcp-server-skills

Pattern for building MCP servers in Next.js with mcp-handler, shared Zod schemas, and reusable server actions.

DeepseekModel 官方收录技能 质量 良好 · 64 v1.0.0

获取

https://deepseekmodel.com/api/download.php?id=gocallum-nextjs16-agent-skills-skills-mcp-server-skills-skill-md&format=skill
下载 .skill 标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name mcp-server-skills description Pattern for building MCP servers in Next.js with mcp-handler, shared Zod schemas, and reusable server actions. Links Model Context Protocol: https://modelcontextprotocol.io/ mcp-handler (HTTP): https://www.npmjs.com/package/mcp-handler Reference implementation (Roll Dice): https://github.com/gocallum/rolldice-mcpserver Claude Desktop + mcp-remote bridge: https://www.npmjs.com/package/mcp-remote Folder Structure (Next.js App Router) app/ api/[transport]/route.ts # One handler for all transports (e.g., /api/mcp) actions/mcp-actions.ts # Server actions reusing the same logic/schemas lib/ dice.ts | tools.ts # Zod schemas, tool definitions, pure logic components/ # UI that calls server actions for web testing Goal: Keep route.ts minimal. Put logic + Zod schemas in lib/* so both the MCP handler and server actions share a single source of truth. Shared Zod Schema + Tool Definition // lib/dice.ts import { z } from "zod" ; export const diceSchema = z. number (). int (). min ( 2 ); export function rollDice ( sides : number ) { const validated = diceSchema. parse (sides); const value = 1 + Math . floor ( Math . random () * validated); return { type : "text" as const , text : `🎲 You rolled a ${value} !` }; } export const rollDiceTool = { name : "roll_dice" , description : "Rolls an N-sided die" , schema : { sides : diceSchema }, } as const ; Reusable Server Actions (Web UI + Tests) // app/actions/mcp-actions.ts "use server" ; import { rollDice as rollDiceCore, rollDiceTool } from "@/lib/dice" ; export async function rollDice ( sides : number ) { try { const result = rollDiceCore (sides); return { success : true , result : { content : [result] } }; } catch { return { success : false , error : { code : - 32602 , message : "Invalid parameters: sides must be >= 2" }, }; } } export async function listTools ( ) { return { success : true , result : { tools : [ { name : rollDiceTool. name , description : rollDiceTool. description , inputSchema : { type : "object" , properties : { sides : { type : "number" , minimum : 2 } }, required : [ "sides" ], }, }, ], }, }; } Server actions call the same logic as the MCP handler and power the web UI, keeping responses aligned. Lightweight MCP Route // app/api/[transport]/route.ts import { createMcpHandler } from "mcp-handler" ; import { rollDice, rollDiceTool } from "@/lib/dice" ; const handler = createMcpHandler ( ( server ) => { server. tool ( rollDiceTool. name , rollDiceTool. description , rollDiceTool. schema , async ({ sides }) => ({ content : [ rollDice (sides)] }), ); }, {}, // server options { basePath : "/api" , // must match folder path maxDuration : 60 , verboseLogs : true , }, ); export { handler as GET , handler as POST }; Pattern highlights Route only wires createMcpHandler ; no business logic inline. server.tool consumes the shared tool schema/description and calls shared logic. basePath should align with the folder (e.g., /api/[transport] ). Works for SSE/HTTP transports; stdio can be added separately if needed. Claude Desktop Config (mcp-remote) { "mcpServers" : { "rolldice" : { "command" : "npx" , "args" : [ "-y" , "mcp-remote" , "http://localhost:3000/api/mcp" ] } } } Best Practices Single source of truth — schemas + logic in lib/* ; both MCP tools and server actions import them. Validation first — use Zod for inputs and reuse the same schema for UI + MCP. Keep route.ts light — only handler wiring, logging, and transport config. Shared responses — standardize { success, result | error } shapes for tools and UI. Vercel-friendly — avoid stateful globals; configure maxDuration and runtime if needed. Multiple transports — expose /api/[transport] for HTTP/SSE; add stdio entrypoint when required. Local testing — hit server actions from the web UI to ensure MCP responses stay in sync.
Agent 识别该技能的关键词,点击任意一个即可复制。

该技能未提供触发词。

下载的 .skill 包内含以下字段。
字段 说明
format格式标识(skill/v1)
skill_id技能唯一 ID
name技能名称
version版本号
description技能描述
category所属分类(数组)
trigger_words触发词列表
tags标签列表
source来源标识
source_url来源链接(本页地址)
exported_at导出时间(每次下载生成)
system_prompt系统提示词正文
model_config模型参数:provider / model / temperature / max_tokens / top_p
examples示例
install_guide各平台导入说明(Coze / Dify / Claude / 自定义框架)
同一份技能可按不同平台格式导出。
.skill 标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用 下载
.skillpro 增强格式,额外含脚本 / 工具 / 依赖 / 钩子占位 下载
.json 纯 JSON 导出,只含 system_prompt 与模型参数 下载
Coze 带 frontmatter 的 Markdown,Coze 平台导入用 下载
Dify Dify DSL,创建应用后直接导入 下载

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

验证码 --

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。