Getting Started
Configuration
Configure the Nuxt MCP module to fit your needs.
Basic Configuration
Add the module to your nuxt.config.ts:
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:
enabled
boolean
Default:
trueEnable or disable the MCP server.route
string
Default:
'/mcp'The HTTP route where the MCP server will be accessible.browserRedirect
string
Default:
'/'URL to redirect browsers when they access the MCP endpoint.name
string
Default:
''The name of your MCP server (used in the MCP protocol handshake).version
string
Default:
'1.0.0'The version of your MCP server (semantic versioning).dir
string
Default:
'mcp'Base directory for MCP definitions (relative to server/). The module expects:{dir}/tools/- Tool definitions{dir}/resources/- Resource definitions{dir}/prompts/- Prompt definitions
sessions
boolean | object
Default:
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:
nuxt.config.ts
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
route: '/api/mcp', // Custom route
},
})
Custom Directory
Use a different directory for MCP definitions:
nuxt.config.ts
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:
nuxt.config.ts
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:
nuxt.config.ts
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.
See the Sessions guide for the full
useMcpSession() API, use cases, and examples.Disable the Module
Temporarily disable the MCP server:
nuxt.config.ts
export default defineNuxtConfig({
modules: ['@nuxtjs/mcp-toolkit'],
mcp: {
enabled: false, // Disable the MCP server
},
})
Runtime Configuration
Access configuration at runtime:
server/api/config.ts
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