Install
$ agentstack add mcp-ts-oas-nest-openapi ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
@nest-openapi
OpenAPI‑first utilities for NestJS
Single source of truth · Drop‑in for NestJS · Fast by design
Features
- 🎯 Single Source of Truth — Your OpenAPI spec drives validation, serialization, mocking, and MCP tools.
- ⚡ Fast by Design — AJV validation and
fast-json-stringifyserialization with caching and precompilation. - 🔌 Drop-in Integration — Works with existing NestJS controllers and routes
- 🎛️ Fine-Grained Control — Per-route opt-out and custom schema overrides
- 🚀 Platform Agnostic — Supports both Express and Fastify adapters
Packages
| Package | Description | Version | | ------------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | | @nest-openapi/validator | Automatic request/response validation using your OpenAPI spec | [](https://www.npmjs.com/package/@nest-openapi/validator) | | @nest-openapi/serializer | High-performance response serialization based on your OpenAPI spec | [](https://www.npmjs.com/package/@nest-openapi/serializer) | | @nest-openapi/mock | Spec-driven mock server for generating realistic mock responses | [](https://www.npmjs.com/package/@nest-openapi/mock) | | @nest-openapi/mcp | Spec-driven MCP server for exposing OpenAPI operations as tools | [](https://www.npmjs.com/package/@nest-openapi/mcp) |
Quick Start
Validator
npm i @nest-openapi/validator
import { Module } from "@nestjs/common";
import { OpenAPIValidatorModule } from "@nest-openapi/validator";
import * as openApiSpec from "./openapi.json";
@Module({
imports: [
OpenAPIValidatorModule.forRoot({
specSource: { type: "object", spec: openApiSpec },
}),
],
})
export class AppModule {}
All routes are automatically validated. See full documentation for advanced configuration.
Serializer
npm i @nest-openapi/serializer
import { Module } from "@nestjs/common";
import { OpenAPISerializerModule } from "@nest-openapi/serializer";
import * as openApiSpec from "./openapi.json";
@Module({
imports: [
OpenAPISerializerModule.forRoot({
specSource: { type: "object", spec: openApiSpec },
responseSerialization: { enable: true, skipErrorResponses: true },
}),
],
})
export class AppModule {}
Responses are automatically serialized. See full documentation for advanced configuration.
Mock
npm i @nest-openapi/mock
import { Module } from "@nestjs/common";
import { OpenAPIMockModule } from "@nest-openapi/mock";
import * as openApiSpec from "./openapi.json";
@Module({
imports: [
OpenAPIMockModule.forRoot({
specSource: { type: "object", spec: openApiSpec },
enable: process.env.NODE_ENV === "development",
mockByDefault: true,
}),
],
})
export class AppModule {}
Routes return mocked responses when enabled. See full documentation for advanced configuration.
MCP
npm i @nest-openapi/mcp
import { Module } from "@nestjs/common";
import { OpenAPIMcpModule } from "@nest-openapi/mcp";
import * as openApiSpec from "./openapi.json";
@Module({
imports: [
OpenAPIMcpModule.forRoot({
specSource: { type: "object", spec: openApiSpec },
http: { path: "/mcp" },
executor: { baseUrl: "http://127.0.0.1:3000" },
}),
],
})
export class AppModule {}
Expose OpenAPI operations as MCP tools. See full documentation for advanced configuration.
Usage Examples
Manual Validation
import { Inject, Injectable } from "@nestjs/common";
import {
OPENAPI_VALIDATOR,
OpenAPIValidatorService,
} from "@nest-openapi/validator";
@Injectable()
export class MyService {
constructor(
@Inject(OPENAPI_VALIDATOR)
private readonly validator: OpenAPIValidatorService,
) {}
validate(ctx: HttpArgumentsHost) {
const errors = this.validator.validateRequest(ctx, { body: true });
if (errors.length > 0) {
// Handle validation errors
}
}
}
Per-Route Overrides
import { Controller, Post } from "@nestjs/common";
import { Validate } from "@nest-openapi/validator";
import { Serialize } from "@nest-openapi/serializer";
@Controller("books")
export class BooksController {
@Post()
@Validate({ request: { query: false }, response: true })
@Serialize({ disable: true })
create(@Body() dto: CreateBookDto): Book {
return this.booksService.create(dto);
}
}
Compatibility
- Works with NestJS v9+
- Supports Express and Fastify adapters
Contributing
Issues and PRs are welcome. Please check the package folders and docs before opening an issue.
License
MIT © @nest-openapi
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ts-oas
- Source: ts-oas/nest-openapi
- License: MIT
- Homepage: https://nest-openapi.github.io/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.