Cstannahill_mcp-server-nestjs
If you are the rightful owner of Cstannahill_mcp-server-nestjs and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This document provides a comprehensive overview of a Model Context Protocol (MCP) server built using NestJS, highlighting its architecture, features, and usage.
MCP Server (NestJS)
A robust, scalable, and extensible server-side application built with NestJS. This project provides a Model Context Protocol (MCP) server implementation, file management, authentication, and modular REST APIs for posts and users.
Table of Contents
- Features
- Architecture
- Getting Started
- Development
- Testing
- Deployment
- API Reference
- Project Structure
- Contributing
- License
Features
- MCP Server: Implements Model Context Protocol for file operations and more.
- File Management: Upload, download, list, and delete files via REST endpoints.
- Authentication: JWT-based authentication with local strategy.
- User & Post Modules: Modular structure for users and posts with DTOs and entities.
- Swagger Integration: API documentation out-of-the-box.
- Extensible: Easily add new modules and features.
Architecture
- NestJS: Progressive Node.js framework for building efficient, reliable, and scalable server-side applications.
- MCP Integration: Uses a custom FileBrowserMCP for file operations.
- Modular Design: Each feature is encapsulated in its own module.
Getting Started
Prerequisites
Installation
# Clone the repository
$ git clone https://github.com/Cstannahill/mcp-server-nestjs.git
$ cd nestjs-mcp-server
# Install dependencies
$ npm install
Environment Variables
Create a .env
file in the root directory for any secrets or configuration overrides (optional).
Development
Running the Server
# Start in development mode (with hot reload)
$ npm run start:dev
# Start in production mode
$ npm run start:prod
Useful Commands
# Compile TypeScript
$ npm run build
# Lint code
$ npm run lint
Testing
Run Unit Tests
$ npm run test
Run End-to-End (e2e) Tests
$ npm run test:e2e
Test Coverage
$ npm run test:cov
Deployment
- Build the project:
$ npm run build
- Start the server:
$ npm run start:prod
- For advanced deployment (Docker, cloud, etc.), see NestJS Deployment Docs.
API Reference
- Swagger UI is available (if enabled) at
/api
when the server is running. - Main endpoints:
POST /auth/login
— Authenticate and receive JWTPOST /files/upload
— Upload a fileGET /files/:id
— Download a fileDELETE /files/:id
— Delete a fileGET /files
— List filesPOST /users
— Create a userPOST /posts
— Create a post
See controller files in src/
for more details.
Project Structure
src/
app.module.ts # Root module
main.ts # Entry point
auth/ # Authentication (JWT, guards, strategies)
file/ # File management (upload, download, delete)
mcps/ # Model Context Protocol integration
posts/ # Posts module
users/ # Users module
database/ # Database connection (if used)
uploads/ # Uploaded files (local dev)
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a pull request
Coding Standards
- Follow the existing code style (see ESLint config)
- Write unit and e2e tests for new features
- Document your code and update the README as needed
Git Setup
This project uses Git for version control. The remote origin is set to:
https://github.com/Cstannahill/mcp-server-nestjs.git
License
Nest is MIT licensed.
Resources & Support
For any questions, issues, or feature requests, please open an issue or contact the maintainer.