MCP Server berbasis TypeScript untuk membaca dokumentasi Swagger/OpenAPI dari Superapp Golang dan mengeksposnya sebagai tools ke AI melalui stdio transport.
get_all_routes: Mengambil semua endpoint API dari Swaggerpaths.get_route_details: Mengambil detail endpoint tertentu (method + path) dan melakukan resolve$refkedefinitions.get_data_model: Mengambil schema model tertentu daridefinitions.- Error handling untuk kondisi Swagger tidak bisa diakses.
- Node.js 18+
- Superapp Golang aktif dan menyediakan Swagger JSON
Default Swagger URL:
http://localhost:8000/swagger/doc.json
npm install- Salin nilai dari file
.env.example. - Atur environment variable
SWAGGER_URLsesuai endpoint Swagger kamu.
Contoh (PowerShell):
$env:SWAGGER_URL="http://localhost:8000/swagger/doc.json"Build TypeScript:
npm run buildJalankan server MCP:
npm startTemplate konfigurasi MCP client sudah disediakan di:
examples/mcp-servers.template.json(jalankan server dengan Node lokal)examples/mcp-servers.docker.template.json(jalankan server dari Docker)
Template final siap copy per client:
examples/clients/claude-desktop.node.jsonexamples/clients/claude-desktop.docker.jsonexamples/clients/cursor.node.jsonexamples/clients/vscode-copilot.node.json
Langkah pakai:
- Salin template ke file konfigurasi MCP client yang kamu gunakan.
- Ubah path
argske lokasi project di mesin masing-masing developer. - Sesuaikan nilai
SWAGGER_URLper environment (dev/staging/prod).
Tips Windows:
- Gunakan path absolute dengan slash
/, contoh:C:/tools/superapp-mcp/build/index.js.
Build image:
npm run docker:buildJalankan image secara lokal:
npm run docker:runCatatan:
- Opsi
-iwajib agar stdio MCP tetap terhubung ke client. host.docker.internaldipakai agar container bisa mengakses service Swagger di host machine.
Karena transport MCP kamu berbasis stdio, pola deploy yang disarankan adalah distribusi executable runtime, bukan expose HTTP endpoint terpisah.
Pilihan distribusi:
- Node distribution (paling sederhana)
- Simpan project di repo internal.
- Tiap developer:
npm ci,npm run build, lalu pakai template config MCP.
- Docker distribution (paling konsisten)
- Build image sekali di CI.
- Push ke private container registry.
- Tiap developer menjalankan MCP via command
docker run --rm -i ...dari config MCP client.
Checklist rollout tim:
- Tetapkan URL Swagger per environment.
- Lock versi package/image.
- Standarkan template config MCP client.
- Jalankan smoke test tool
get_all_routessetelah setup. - Dokumentasikan troubleshooting internal (network, URL, permission).
Pipeline CI sudah disiapkan di:
.github/workflows/ci.yml
Yang divalidasi otomatis:
- Install dependency (
npm ci). - Typecheck (
npm run typecheck). - Build TypeScript (
npm run build). - Build Docker image (
docker build ...).
Jika kamu pakai private registry, next step-nya tinggal tambah step login + push image di workflow yang sama.
npm run build: compile TypeScript ke folderbuild.npm start: jalankan MCP server daribuild/index.js.npm run typecheck: validasi TypeScript tanpa emit output.npm run docker:build: build Docker imagesuperapp-mcp:latest.npm run docker:run: jalankan MCP server dari Docker image.npm run test: placeholder script default.
index.ts- entry point MCP server.tsconfig.json- konfigurasi TypeScript..env.example- contoh konfigurasi environment..gitignore- file/folder yang diabaikan Git.Dockerfile- build image untuk distribusi tim..dockerignore- optimasi konteks build Docker.examples/mcp-servers.template.json- template config MCP client (Node).examples/mcp-servers.docker.template.json- template config MCP client (Docker).examples/clients/*.json- template config final untuk client populer..github/workflows/ci.yml- validasi build/deploy readiness di CI.
Server menggunakan stdio transport, jadi cocok dijalankan oleh MCP host/client yang mendukung komunikasi proses standard input/output.