About Nestjs MCP
Nestjs MCP is an MCP server published by orbit-codes in the AI category: an opinionated MCP module for NestJS. It has been installed 0 times through Conduid.
The repository has 12 stars and 1 forks, with the last commit 10 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.
Install
npx nestjs-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Nestjs MCP
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
NestJS MCP Package
A NestJS integration for the Model Context Protocol (MCP), allowing you to easily create MCP servers with NestJS's dependency injection and decorator-based architecture.
Installation
npm i @orbit-codes/nestjs-mcp @modelcontextprotocol/sdk zod
Features
- 🚀 Seamless integration with NestJS using decorators
- 🛠️ Expose MCP resources, tools, and prompts with simple annotations
- 🔄 Support for both HTTP/SSE and stdio transports
- 📦 Compatible with both ESM and CommonJS
- 🧩 Dynamic module configuration
- ✅ Well-tested and production-ready
Quick Start
Register the Module
import { Module } from '@nestjs/common';
import { MCPModule } from '@orbit-codes/nestjs-mcp';
@Module({
imports: [
MCPModule.register({
name: 'MyMCPServer',
version: '1.0.0',
// Optional configuration
sseEndpoint: '/mcp/sse',
messagesEndpoint: '/mcp/messages',
globalApiPrefix: '/api',
capabilities: {
// Your server capabilities
},
}),
],
})
export class AppModule {}
Create Resources
import { Injectable } from '@nestjs/common';
import { Resource } from '@orbit-codes/nestjs-mcp';
@Injectable()
export class UsersService {
private users = [
{ id: '1', name: 'John Doe', email: 'john@example.com' },
{ id: '2', name: 'Jane Smith', email: 'jane@example.com' },
];
@Resource({
name: 'users',
description: 'Access user information',
parameters: {
id: 'string',
},
})
async getUser(uri, params) {
const { id } = params;
const user = this.users.find(u => u.id === id);
if (!user) {
throw new Error(`User with ID ${id} not found`);
}
return {
uri: uri.href,
text: JSON.stringify(user),
};
}
}
Create Tools
import { Injectable } from '@nestjs/common';
import { Tool } from '@orbit-codes/nestjs-mcp';
@Injectable()
export class CalculatorService {
@Tool({
name: 'add',
description: 'Add two numbers together',
parameters: {
a: 'number',
b: 'number',
},
})
async add(params) {
const { a, b } = params;
const result = a + b;
return result.toString();
}
}
Create Prompts
import { Injectable } from '@nestjs/common';
import { Prompt } from '@orbit-codes/nestjs-mcp';
@Injectable()
export class PromptService {
@Prompt({
name: 'greeting',
description: 'Generate a personalized greeting',
template: 'Hello, {{name}}! Welcome to {{application}}.',
parameters: {
name: 'string',
application: 'string',
},
})
async greetingParameters(params) {
// You can modify or add to the parameters here
return {
currentTime: new Date().toLocaleTimeString(),
};
}
}
Advanced Configuration
Async Configuration
You can also configure the MCP module asynchronously:
import { Module } from '@nestjs/common';
import { MCPModule } from '@orbit-codes/nestjs-mcp';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot(),
MCPModule.registerAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
name: configService.get('MCP_SERVER_NAME'),
version: configService.get('MCP_SERVER_VERSION'),
sseEndpoint: configService.get('MCP_SSE_ENDPOINT', '/mcp/sse'),
messagesEndpoint: configService.get('MCP_MESSAGES_ENDPOINT', '/mcp/messages'),
}),
inject: [ConfigService],
}),
],
})
export class AppModule {}
API Reference
Decorators
@Resource(options)
Marks a method as an MCP resource handler.
name: The name of the resourcedescription: Description of the resourceparameters: Parameter schema definition
@Tool(options)
Marks a method as an MCP tool handler.
name: The name of the tooldescription: Description of the toolparameters: Parameter schema definition
@Prompt(options)
Marks a method as an MCP prompt handler.
name: The name of the promptdescription: Description of the prompttemplate: The prompt template with placeholdersparameters: Parameter schema definition
Module Options
name: The name of the MCP serverversion: The version of the MCP serversseEndpoint: The endpoint for SSE (default: '/mcp/sse')messagesEndpoint: The endpoint for messages (default: '/mcp/messages')globalApiPrefix: Optional API prefix for all endpointscapabilities: Optional capabilities object
Formatting and Linting
# Format the codebase
pnpm format
# Check formatting
pnpm format:check
# Lint the codebase
pnpm lint
# Run all checks
pnpm check
License
MIT
README mirrored from the source repository yesterday. The original is authoritative.