Configuration
Basic Configuration
Add the module to your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
name: 'My MCP Server',
},
})
The module works with sensible defaults, so minimal configuration is required.
Configuration Options
All available configuration options:
trueEnable or disable the MCP server.'/mcp'The HTTP route where the MCP server will be accessible.'/'URL to redirect browsers when they access the MCP endpoint.''The name of your MCP server (used in the MCP protocol handshake).'1.0.0'The version of your MCP server (semantic versioning).'mcp'Base directory for MCP definitions (relative to server/). The module expects:{dir}/tools/- Tool definitions{dir}/resources/- Resource definitions{dir}/prompts/- Prompt definitions
trueAuto-import MCP helpers (defineMcpTool, defineMcpResource, etc.), types (McpToolExtra, …), composables (useMcpSession, useMcpServer), and the InstallButton component. Set to false to disable all auto-imports and require explicit imports from @nuxtjs/mcp-toolkit/server.falseEnable MCP session management (stateful transport). When enabled, the server assigns session IDs via the MCP-Session-Id header and maintains state across requests, enabling SSE streaming, server-to-client notifications, and resumability.Pass true for defaults or an object with:enabled- Enable or disable sessionsmaxDuration- Session timeout in milliseconds (default:1800000/ 30 minutes)
Common Configuration Scenarios
Custom Route
Change the MCP endpoint route:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
route: '/api/mcp', // Custom route
},
})
Custom Directory
Use a different directory for MCP definitions:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
dir: 'my-mcp', // Look in server/my-mcp/ instead of server/mcp/
},
})
This will look for definitions in:
server/my-mcp/tools/server/my-mcp/resources/server/my-mcp/prompts/
Browser Redirect
Redirect browsers to a custom URL:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
browserRedirect: '/docs/mcp', // Redirect browsers to documentation
},
})
Session Management
Enable stateful sessions to support SSE streaming, server-to-client notifications, and per-session state:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
sessions: true,
},
})
With sessions enabled, the server assigns an MCP-Session-Id during initialization. Clients include this ID in subsequent requests, allowing the server to maintain state across the session lifecycle.
useMcpSession() API, use cases, and examples.Disable Auto-Imports
If you prefer explicit imports over auto-imports:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
autoImports: false,
},
})
With auto-imports disabled, import helpers and types explicitly:
import { z } from 'zod'
import { defineMcpTool, type McpToolExtra } from '@nuxtjs/mcp-toolkit/server'
export default defineMcpTool({
description: 'Echo back a message',
inputSchema: { message: z.string() },
handler: async ({ message }, extra: McpToolExtra) => {
return `Echo: ${message}`
},
})
Disable the Module
Temporarily disable the MCP server:
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
enabled: false, // Disable the MCP server
},
})
Runtime Configuration
Access configuration at runtime:
export default defineEventHandler((event) => {
const config = useRuntimeConfig(event).mcp
return {
name: config.name,
version: config.version,
route: config.route,
}
})
Next Steps
- Tools - Learn how to create tools
- Resources - Create resources
- Prompts - Create prompts
- Sessions - Per-session state with
useMcpSession() - Custom Paths - Advanced path configuration