入门指南
简介
了解模型上下文协议(Model Context Protocol),以及本模块如何让您轻松在 Nuxt 中创建 MCP 服务器。
什么是模型上下文协议(Model Context Protocol)?
模型上下文协议(MCP) 是一种开放协议,使 AI 助手能够安全地访问外部数据源和工具。它为 AI 应用程序提供了一种标准化的方式来:
- 访问工具:执行函数和操作
- 读取资源:访问文件、数据库、API 和其他数据源
- 使用提示词:利用预定义的提示词模板
MCP 服务器充当 AI 助手与外部系统之间的桥梁,使它们能够以安全、可控的方式与您的应用程序数据和功能进行交互。
什么是 Nuxt MCP Toolkit?
Nuxt MCP Toolkit 让您能够极其轻松地在 Nuxt 应用程序中直接创建 MCP 服务器。无需构建独立的 MCP 服务器,您可以直接在 Nuxt 应用程序代码旁定义工具、资源和提示词。
核心优势
零配置
自动发现定义。只需在正确的目录中创建文件,它们就会被自动注册。
TypeScript 优先
完整的 TypeScript 支持,具备自动导入和全面的类型安全。所有辅助函数在您的服务器文件中均可全局使用。
简洁的 API
直观的 API,与 MCP SDK 结构保持一致,便于迁移现有代码或参考示例学习。
灵活的架构
支持在单个应用中使用多个 MCP 处理器、自定义路径以及用于高级用例的钩子。
工作原理
该模块会自动:
- 扫描您的
server/mcp/目录(或自定义路径)以查找定义 - 发现您文件中的工具、资源和提示词
- 将它们注册到 MCP 服务器
- 暴露一个 HTTP 端点供 MCP 客户端连接
server/
└── mcp/
├── tools/
│ ├── echo.ts
│ └── calculator.ts
├── resources/
│ ├── readme.ts
│ └── files.ts
└── prompts/
├── greeting.ts
└── summarize.ts
核心概念
工具(Tools)
工具是 AI 助手可以调用的函数。它们接受输入参数(使用 Zod 进行验证)并返回结果。
import { z } from 'zod'
import { defineMcpTool } from '@nuxtjs/mcp-toolkit/server'
export default defineMcpTool({
name: 'calculate-bmi',
inputSchema: {
weightKg: z.number(),
heightM: z.number(),
},
handler: async ({ weightKg, heightM }) => {
const bmi = weightKg / (heightM * heightM)
return `BMI: ${bmi}`
},
})
资源(Resources)
资源通过 URI 提供对数据的访问。它们可以是静态文件或动态数据源。
import { defineMcpResource } from '@nuxtjs/mcp-toolkit/server'
export default defineMcpResource({
name: 'readme',
uri: 'file:///README.md',
handler: async (uri: URL) => {
const content = await readFile(uri.pathname, 'utf-8')
return {
contents: [{ uri: uri.toString(), text: content }],
}
},
})
提示词(Prompts)
提示词是可复用的消息模板,可以包含动态参数。
import { defineMcpPrompt } from '@nuxtjs/mcp-toolkit/server'
export default defineMcpPrompt({
name: 'greeting',
inputSchema: {
name: z.string(),
},
handler: async ({ name }) => {
return {
messages: [{
role: 'user',
content: { type: 'text', text: `Hello, ${name}!` },
}],
}
},
})
下一步
准备好开始了吗?请查看: