NetADX AI-CORE MCP API Boilerplate
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NetADX AI-CORE MCP API Boilerplatelist all items"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NetADX AI-CORE - MCP API Boilerplate
A minimal, production-ready MCP (Model Context Protocol) API server boilerplate for building scalable AI-powered backend services.
Purpose: Simple, extensible foundation for building MCP-compliant API servers with TypeScript, MongoDB, and JWT authentication.
Architecture: Clean, minimal structure - easy to understand and extend for your specific use case.
Table of Contents
Related MCP server: MCP Server TypeScript
Overview
NetADX AI-CORE is a simple, clean boilerplate for building MCP API servers. It provides:
MCP Protocol Compliance - Official SDK v1.0.0
TypeScript - Type-safe development
MongoDB Integration - Database ready with connection pooling
JWT Authentication - Secure API access
Interactive API Documentation - Comprehensive Swagger/OpenAPI 3.0 docs
Direct TypeScript Execution - No build step with
tsxProduction Ready - Logging, error handling, graceful shutdown
Minimal and Clean - Easy to understand and extend
What's Included
Core Infrastructure:
MCP Server setup with stdio and HTTP transports
MongoDB connection manager
JWT authentication manager
Winston logging
Environment configuration
Example CRUD tool
Interactive Swagger documentation at
/docs
Deployment:
Quick deployment script (
deploy-quick.sh)PM2 ecosystem configuration
Docker support
Nginx reverse proxy with CORS
Comprehensive deployment documentation
Claude Desktop Integration:
Built-in stdio wrapper support
Local development with
development/mcp-stdio-wrapperProduction-ready npm package
@netadx1ai/mcp-stdio-wrapperComplete integration documentation
Features
Direct TypeScript Execution
No build step required! Uses tsx to run TypeScript directly:
# Traditional approach (NOT used here)
npm run build # Compile TS → JS
node dist/index.js # Run compiled code
# NetADX AI-CORE approach
npx tsx src/index.ts # Run TypeScript directlyBenefits:
Faster deployments - no compilation step required
Easier debugging - errors point to actual
.tssource filesLive updates - change code, restart, ready
Simpler CI/CD - just sync TypeScript files directly
Technology Stack
Runtime: Node.js 18+
Language: TypeScript 5.2+ (strict mode)
Framework: MCP Protocol (official SDK v1.0.0)
Database: MongoDB with connection pooling
Transport: HTTP/HTTPS + stdio
Authentication: JWT (HS256)
Logging: Winston
Execution: tsx (direct TypeScript execution)
Quick Start
Prerequisites
# Node.js 18+ required
node -v
# MongoDB (local or remote)
mongod --versionInstallation
# Clone or use this boilerplate
cd development/mcp_aicore_boilerplate
# Install dependencies
npm install
# Configure environment
cp .env.example .env
nano .env # Edit with your settingsConfiguration
Edit .env file:
# Server
NODE_ENV=development
PORT=8005
USE_HTTP=true
# MongoDB
MONGODB_URI=mongodb://localhost:27017/netadx_aicore
# JWT
JWT_SECRET=your-secure-random-secret-here
JWT_EXPIRES_IN=24h
# Logging
LOG_LEVEL=infoRun
# Development mode
npm run dev
# Production mode (with tsx)
npm start
# Or directly
npx tsx src/index.tsTest
# Health check
curl http://localhost:8005/health
# List tools (requires JWT token)
curl -H "x-access-token: YOUR_JWT_TOKEN" \
http://localhost:8005/tools
# Call example tool
curl -X POST \
-H "x-access-token: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"list_items"}' \
http://localhost:8005/tools/example_toolInteractive API Documentation
Swagger/OpenAPI 3.0 Documentation
The boilerplate includes comprehensive interactive API documentation powered by Swagger UI and OpenAPI 3.0 specification.
Access Documentation:
# Start the server
npm run dev
# Open documentation in browser
open http://localhost:8005/docsFeatures:
🚀 Interactive Testing - Test all endpoints directly from the browser
🔐 Built-in Authentication - JWT and API key authentication flows
📝 Comprehensive Examples - Real request/response examples for every endpoint
✅ Schema Validation - Request/response validation against OpenAPI schemas
📊 Error Documentation - Complete error codes and recovery suggestions
⚡ Performance Metrics - Response time tracking and optimization tips
Key Endpoints Documented:
GET /health- System health check with performance metricsGET /info- Server information and capabilitiesGET /tools- List all available MCP toolsPOST /tools/{name}- Execute specific MCP tools with validationPOST /rpc- JSON-RPC 2.0 endpoint for MCP communication
Authentication Methods:
JWT Bearer Token:
Authorization: Bearer <token>API Key:
X-API-Key: <key>
Quick Test Example:
# Test health endpoint (no auth required)
curl http://localhost:8005/health
# List tools (requires auth)
curl -H "Authorization: Bearer your-jwt-token" \
http://localhost:8005/tools
# Execute example tool
curl -X POST \
-H "Authorization: Bearer your-jwt-token" \
-H "Content-Type: application/json" \
-d '{"arguments": {"action": "list_items"}}' \
http://localhost:8005/tools/example-toolFor detailed documentation about the Swagger implementation, see: MCP AI-Core Swagger Documentation
Project Structure
mcp_aicore_boilerplate/
├── src/
│ ├── index.ts # Main entry point
│ ├── core/ # MCP core infrastructure
│ │ ├── server.ts # Base MCP server
│ │ └── index.ts
│ ├── tools/ # MCP tools (your business logic)
│ │ └── example-tool.ts # Example CRUD tool
│ ├── swagger/ # API documentation
│ │ ├── index.ts # Main Swagger/OpenAPI configuration
│ │ ├── tools.ts # Tool-specific documentation
│ │ └── endpoints.ts # Endpoint documentation
│ ├── transport/ # Transport layers
│ │ ├── http.ts # HTTP transport with Swagger integration
│ │ ├── http-server.ts # HTTP server wrapper
│ │ └── index.ts
│ ├── utils/ # Utilities
│ │ ├── auth.ts # JWT authentication
│ │ ├── config.ts # Configuration management
│ │ ├── logger.ts # Winston logging
│ │ ├── mongodb.ts # MongoDB manager
│ │ └── index.ts
│ └── types/ # TypeScript type definitions
│ └── index.ts
├── deployment/ # Deployment configurations
│ ├── deploy.sh # Full deployment script
│ ├── pm2/ # PM2 configs
│ ├── docker/ # Docker configs
│ ├── nginx/ # Nginx reverse proxy with CORS
│ └── README.md
├── docs/ # Documentation (cleaned)
├── .env.example # Environment template (simplified)
├── .env.deploy.example # Deployment config template
├── deploy-quick.sh # Quick TypeScript deployment
├── ecosystem.config.js # PM2 config (uses tsx)
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
└── README.md # This fileConfiguration
Environment Variables
All configuration in .env file:
# Server Configuration
NODE_ENV=development # development | staging | production
PORT=8005 # API server port
HOST=0.0.0.0 # Listen address
USE_HTTP=true # true = HTTP, false = stdio
# MongoDB
MONGODB_URI=mongodb://localhost:27017/netadx_aicore
MONGODB_MAX_POOL_SIZE=50
# JWT Authentication
JWT_SECRET=change-this-secret
JWT_EXPIRES_IN=24h
JWT_ALGORITHM=HS256
# CORS
CORS_ORIGIN=http://localhost:3000
CORS_CREDENTIALS=true
# Logging
LOG_LEVEL=info # error | warn | info | debug
LOG_FORMAT=json
LOG_FILE=/var/log/netadx-aicore/app.logMongoDB Collections
The example tool uses example_items collection. Add your own collections as needed.
Development
Adding a New Tool
Create tool file in
src/tools/:
// src/tools/my-tool.ts
import { z } from 'zod';
import type { MongoDBManager } from '../utils/mongodb';
import type { Logger } from '../utils/logger';
const MyToolInputSchema = z.object({
action: z.enum(['do_something']),
data: z.string(),
});
export function createMyTool(mongodb: MongoDBManager, logger: Logger) {
return {
name: 'my_tool',
description: 'My custom tool',
inputSchema: {
type: 'object',
properties: {
action: { type: 'string', enum: ['do_something'] },
data: { type: 'string' },
},
required: ['action'],
},
async execute(input: unknown) {
const { action, data } = MyToolInputSchema.parse(input);
// Your logic here
const result = { success: true, message: 'Done!' };
return {
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
};
},
};
}Register tool in
src/index.ts:
import { createMyTool } from './tools/my-tool';
// In registerTools() method:
const myTool = createMyTool(this.mongodb, this.logger);
// Add to tools list
this.server.setRequestHandler('tools/list', async () => {
return {
tools: [
{ name: exampleTool.name, description: exampleTool.description, inputSchema: exampleTool.inputSchema },
{ name: myTool.name, description: myTool.description, inputSchema: myTool.inputSchema },
],
};
});
// Add to tools/call handler
if (name === myTool.name) {
return await myTool.execute(args);
}Test your tool:
npx tsx src/index.ts
curl -X POST \
-H "x-access-token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"do_something","data":"test"}' \
http://localhost:8005/tools/my_toolRunning Tests
# Add tests in tests/ directory
npm testCode Quality
# Linting
npm run lint
# Format code
npm run format
# Type checking
npm run type-checkDeployment
Quick Deployment (Recommended)
Uses deploy-quick.sh to sync TypeScript files directly:
# Configure deployment
cp .env.deploy.example .env.deploy
nano .env.deploy # Set your server details
# Deploy all files
./deploy-quick.sh
# Deploy specific file
./deploy-quick.sh src/tools/my-tool.ts
# Deploy without restart
./deploy-quick.sh src/ truePM2 Deployment
# Start with PM2
pm2 start ecosystem.config.js --env production
# Monitor
pm2 status
pm2 logs netadx-aicore
pm2 monitDocker Deployment
cd deployment/docker
docker build -t netadx-aicore .
docker run -d -p 8005:8005 --env-file .env netadx-aicoreNginx Reverse Proxy
# Copy nginx config
sudo cp deployment/nginx/netadx-aicore-simple.conf /etc/nginx/sites-available/netadx-aicore
# Enable and reload
sudo ln -s /etc/nginx/sites-available/netadx-aicore /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxSee deployment/README.md and deployment/nginx/README.md for complete guides.
Claude Desktop Integration
Using Published Package (Production)
Configure Claude Desktop to connect to your deployed API:
File: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
{
"mcpServers": {
"netadx-aicore": {
"command": "npx",
"args": ["-y", "@netadx1ai/mcp-stdio-wrapper@latest"],
"env": {
"API_URL": "https://your-api-domain.com",
"JWT_TOKEN": "your-jwt-token-here",
"LOG_FILE": "/tmp/netadx-aicore-mcp.log",
"LOG_LEVEL": "info"
}
}
}
}Using Local Development Wrapper
For local development and testing:
{
"mcpServers": {
"netadx-aicore-dev": {
"command": "npx",
"args": [
"tsx",
"/Volumes/T72/Work2025AI/mongodb/netadx-workspace/development/mcp-stdio-wrapper/src/index.ts"
],
"env": {
"API_URL": "http://localhost:8005",
"JWT_TOKEN": "your-jwt-token-here",
"LOG_FILE": "/tmp/netadx-aicore-dev-mcp.log",
"LOG_LEVEL": "debug"
}
}
}
}See Claude Desktop Integration Guide for complete documentation.
API Documentation
Authentication
All API endpoints (except /health) require JWT authentication:
# Include JWT token in header
curl -H "x-access-token: YOUR_JWT_TOKEN" http://localhost:8005/toolsEndpoints
Endpoint | Method | Description | Documentation |
| GET | Health check (no auth) | |
| GET | Server information (no auth) | |
| GET | List available tools | |
| POST | Execute specific tool | |
| POST | JSON-RPC 2.0 endpoint | |
| GET | Swagger documentation | Direct browser access |
Example Tool Actions
List items:
curl -X POST \
-H "x-access-token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"list_items"}' \
http://localhost:8005/tools/example_toolCreate item:
curl -X POST \
-H "x-access-token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"create_item","data":{"name":"Test","value":123}}' \
http://localhost:8005/tools/example_toolGet item:
curl -X POST \
-H "x-access-token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"get_data","id":"item_id"}' \
http://localhost:8005/tools/example_toolContributing
This is a boilerplate template. Fork it and customize for your needs!
License
MIT License - NetADX AI-CORE Team
Learning Resources
Support
For questions or issues:
Check the
deployment/README.mdfor deployment helpCheck the
deployment/nginx/README.mdfor nginx/CORS helpReview the example tool in
src/tools/example-tool.tsSee Claude Desktop Integration for MCP client setup
Document Control
Created: 2025-10-31
Version: 1.0.0
Status: Boilerplate/Template
Developed by: NetADX AI-CORE Team
License: MIT
What is NetADX AI-CORE?
NetADX AI-CORE is a production-ready boilerplate for building MCP (Model Context Protocol) compliant API servers. It provides:
Complete MCP implementation with official SDK v1.0.0
Production-tested authentication and authorization
Scalable MongoDB integration
Comprehensive logging and error handling
Direct TypeScript execution (no build step)
Deployment scripts and configurations
Clean, minimal, easy to extend
Claude Desktop integration support
Use Cases:
Building AI-powered backend APIs
Creating MCP-compliant services
Rapid API prototyping
Learning MCP protocol implementation
Get Started:
Copy
.env.exampleto.envConfigure MongoDB and JWT settings
Run
npm install && npm startStart building your tools in
src/tools/Integrate with Claude Desktop using the stdio wrapper
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/netadx1ai/mcp_aicore_boilerplate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server