进阶主题
钩子
使用 Nuxt 钩子来扩展和自定义 MCP 模块。
可用钩子
Nuxt MCP 模块提供了用于扩展和自定义行为的钩子。
mcp:definitions:paths
此钩子允许你添加额外的目录以扫描 MCP 定义。
钩子签名
nuxt.hook('mcp:definitions:paths', (paths: {
tools: string[]
resources: string[]
prompts: string[]
handlers: string[]
}) => {
// 修改路径
})
在 nuxt.config.ts 中使用
nuxt.config.ts
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
hooks: {
'mcp:definitions:paths'(paths) {
// 添加额外的工具目录
paths.tools.push('shared/tools')
paths.tools.push('legacy/tools')
// 添加额外的资源目录
paths.resources.push('shared/resources')
// 添加额外的提示词目录
paths.prompts.push('shared/prompts')
// 添加额外的处理器目录
paths.handlers.push('custom/handlers')
},
},
})
在自定义模块中使用
my-module.ts
export default defineNuxtModule({
setup(options, nuxt) {
nuxt.hook('mcp:definitions:paths', (paths) => {
// 添加来自此模块的路径
paths.tools.push('my-module/tools')
paths.resources.push('my-module/resources')
paths.prompts.push('my-module/prompts')
})
},
})
路径结构
paths 对象包含目录路径数组:
{
tools: string[] // 扫描工具的目录
resources: string[] // 扫描资源的目录
prompts: string[] // 扫描提示词的目录
handlers: string[] // 扫描处理器的目录
}
所有路径均相对于每个 Nuxt 层的 server/ 目录。
路径解析
路径按以下顺序解析:
- 相对于
server/:如'tools'的路径将解析为server/tools/ - 绝对路径:以
/开头的路径将从项目根目录解析 - 特定于层:每个 Nuxt 层相对于其自身的
server/目录解析路径