nitro-mcp-toolkit
v0.0.1
Published
Create MCP servers directly in your Nitro application. Define tools, resources, and prompts with a simple and intuitive API.
Readme
nitro-mcp-toolkit
Create MCP (Model Context Protocol) servers directly in your Nitro application. Define tools, resources, and prompts with a simple and intuitive API.
Installation
npm install nitro-mcp-toolkit
# or
pnpm add nitro-mcp-toolkit
# or
yarn add nitro-mcp-toolkitUsage
With Nitro Configuration
Add the module to your nitro.config.ts:
import { defineMcpNitroModule } from 'nitro-mcp-toolkit'
export default defineNitroConfig({
modules: [
defineMcpNitroModule({
route: '/mcp',
name: 'My MCP Server',
version: '1.0.0',
})
]
})Creating Tools
Create a file in server/mcp/tools/:
// server/mcp/tools/hello.ts
import { defineMcpTool, textResult } from 'nitro-mcp-toolkit/definitions'
import { z } from 'zod'
export default defineMcpTool({
description: 'Say hello to someone',
inputSchema: {
name: z.string().describe('The name to greet'),
},
handler: async ({ name }) => {
return textResult(`Hello, ${name}!`)
},
})Creating Resources
Create a file in server/mcp/resources/:
// server/mcp/resources/readme.ts
import { defineMcpResource } from 'nitro-mcp-toolkit/definitions'
export default defineMcpResource({
description: 'Project README file',
file: 'README.md',
})Creating Prompts
Create a file in server/mcp/prompts/:
// server/mcp/prompts/greeting.ts
import { defineMcpPrompt } from 'nitro-mcp-toolkit/definitions'
import { z } from 'zod'
export default defineMcpPrompt({
description: 'Generate a greeting message',
inputSchema: {
name: z.string(),
},
handler: async ({ name }) => ({
messages: [{
role: 'user',
content: { type: 'text', text: `Please greet ${name}` },
}],
}),
})Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| enabled | boolean | true | Enable or disable the MCP server |
| route | string | '/mcp' | The route path for the MCP server endpoint |
| browserRedirect | string | '/' | URL to redirect to when a browser accesses the MCP endpoint |
| name | string | 'MCP Server' | The name of the MCP server |
| version | string | '1.0.0' | The version of the MCP server |
| dir | string | 'mcp' | Base directory for MCP definitions relative to server directory |
For Nuxt Users
If you're using Nuxt, we recommend using @nuxtjs/mcp-toolkit instead, which provides:
- Nuxt DevTools integration
InstallButtonVue component- Nuxt layers support
- Automatic configuration
License
MIT
