处理器

默认与自定义处理器

覆盖默认的 `/mcp` 处理器并添加自定义 defineMcpHandler 端点。

默认处理器

默认情况下,模块会在 /mcp(或你配置的路由)处创建一个单一的 MCP 端点,其中包含 server/mcp/ 目录中的所有 tools、resources 和 prompts。

覆盖默认处理器

你可以通过在 server/mcp/ 中创建一个 index.ts 文件来覆盖默认处理器的配置:

server/mcp/index.ts
export default defineMcpHandler({
  version: '2.0.0',
  browserRedirect: '/docs',
  // 如果未指定 tools/resources/prompts,则使用全局定义
})

这允许你自定义:

  • version - 覆盖服务器版本
  • browserRedirect - 覆盖浏览器重定向 URL
  • name - 覆盖服务器名称(可选)
  • tools, resources, prompts - 使用特定定义而不是全局定义
  • middleware - 为认证、日志记录等添加请求拦截(了解更多
对于默认处理器,route 属性会被忽略。要更改路由,请在你的 nuxt.config.ts 中使用 mcp.route

示例:自定义版本和重定向

server/mcp/index.ts
export default defineMcpHandler({
  name: '我的文档 MCP',
  version: '1.2.0',
  browserRedirect: '/getting-started',
})

示例:限制暴露的 Tools

server/mcp/index.ts
import { myTool, anotherTool } from './tools/my-tools'

export default defineMcpHandler({
  // 仅暴露特定的 tools,而不是 server/mcp/tools/ 中的所有 tools
  tools: [myTool, anotherTool],
})

自定义处理器

使用 defineMcpHandler 创建自定义处理器:

server/mcp/migration.ts
import { z } from 'zod'
import { defineMcpTool, defineMcpHandler } from '@nuxtjs/mcp-toolkit/server'

const migrationTool = defineMcpTool({
  name: 'migrate-v3-to-v4',
  title: '将 v3 迁移到 v4',
  description: '将代码从版本 3 迁移到版本 4',
  inputSchema: {
    code: z.string().describe('要迁移的代码'),
  },
  handler: async ({ code }) => {
    return code.replace(/v3/g, 'v4')
  },
})

export default defineMcpHandler({
  name: 'migration',
  version: '0.1.0',
  route: '/mcp/migration',
  tools: [migrationTool],
  browserRedirect: '/',
})