Skip to main content
Glama
Cstannahill

MCP Server NestJS

by Cstannahill

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


Related MCP server: Desktop Commander MCP Server

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

  1. Build the project:

    $ npm run build
  2. Start the server:

    $ npm run start:prod
  3. 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 JWT

    • POST /files/upload — Upload a file

    • GET /files/:id — Download a file

    • DELETE /files/:id — Delete a file

    • GET /files — List files

    • POST /users — Create a user

    • POST /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

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/YourFeature)

  3. Commit your changes (git commit -am 'Add some feature')

  4. Push to the branch (git push origin feature/YourFeature)

  5. 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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Node.js server implementing Model Context Protocol (MCP) for filesystem operations with comprehensive permission controls, allowing secure file and directory manipulation with granular access restrictions.
    21
    542,166 npm
    3
    -
  • -
    license
    B
    quality
    Not graded
    maintenance
    A comprehensive Model Context Protocol server for PocketBase that provides both user and administrative functionality, enabling authentication, collection/record management, file operations, and system administration through a standardized interface.
    38
    6 npm
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Node.js server implementing Model Context Protocol (MCP) for filesystem operations, enabling read/write files, directory management, search, and metadata retrieval via SSE transport.
    542,166 npm
    17
    MIT