mcp-dummy-server
Provides tools to query sample data (days of the week and postal codes) from a PostgreSQL database, including listing all records and searching by specific fields such as city or postal code.
Click 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., "@mcp-dummy-serverSearch postal codes for Surabaya"
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.
mcp-dummy-server
MCP server dengan data dari PostgreSQL, transport Streamable HTTP mode stateless — cocok untuk multi-instance/replica di Fly.io.
Struktur
src/
data/
db.js # koneksi pool PostgreSQL (pg)
hariRepository.js # query ke tabel `hari`
kodeposRepository.js # query ke tabel `kodepos`
apiKeysRepository.js # auth: bcrypt.compare ke tabel `api_keys`
tools/
index.js # definisi & registrasi semua MCP tools
server.js # express + StreamableHTTPServerTransport + auth middleware
db/
migrations/
001_create_tables.sql # schema: hari, kodepos, api_keys
seed.js # isi data awal (jalankan sekali setelah db:up)
docker-compose.yml # Postgres 16-alpine lokal, port 5435Pindah Provider DB (Dinamis): Cukup ganti nilai DATABASE_URL di .env (Docker Lokal ↔ Supabase ↔ Neon ↔ Fly Postgres) tanpa perlu mengubah kode sumber sama sekali.
Related MCP server: Homelab MCP starter
Tools yang tersedia
Tool | Input | Fungsi |
| - | Semua hari Senin-Minggu |
|
| Detail 1 hari |
| - | Semua data kodepos |
|
| Cari kodepos berdasarkan nama kota |
|
| Detail exact match kodepos |
Jalan lokal (dengan Postgres via Docker)
npm install
cp .env.example .env # isi MCP_API_KEY, sesuaikan DATABASE_URL dll.
# 1. Jalankan Postgres Docker (port 5435 — hindari conflict 5432/5433/5434)
npm run db:up
# 2. Seed: buat tabel + isi data awal + hash API key ke DB
npm run db:seed
# 3. Jalankan server
npm start
# server listen di http://localhost:8080/mcpTest cepat:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "x-api-key: $(grep MCP_API_KEY .env | cut -d= -f2)" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'Stop Postgres:
npm run db:downAuth
Server dilindungi API key berbasis database (tabel api_keys, key disimpan sebagai bcrypt hash — tidak pernah plaintext).
Kalau
DATABASE_URLtidak di-set → auth otomatis nonaktif (dev mode), muncul warning di log. Jangan biarkan di production.Kalau
DATABASE_URLdi-set → semua request ke/mcpwajib bawa headerx-api-keyyang cocok (diverifikasi via bcrypt.compare ke DB).last_used_atdi tabelapi_keysotomatis diupdate setiap kali key dipakai (fire-and-forget).
Jalankan lokal dengan auth aktif:
# Pastikan DATABASE_URL sudah di-.env dan db:seed sudah dijalankan
MCP_API_KEY=<your-key> npm startDeploy ke Fly.io
# install flyctl kalau belum: https://fly.io/docs/flyctl/install/
fly auth login
# dari folder project ini
fly launch --no-deploy # generate app, JANGAN overwrite fly.toml yang sudah ada
# WAJIB: set secrets (jangan taruh di fly.toml / git)
fly secrets set MCP_API_KEY="ganti-dengan-string-random-yang-panjang"
fly secrets set DATABASE_URL="postgresql://user:pass@host:5432/dbname"
fly deployCatatan: Untuk production, gunakan Postgres yang dihosting (mis. Fly Postgres, Supabase, Neon). Jalankan
npm run db:seedsekali saja terhadap DB production untuk inisialisasi tabel dan API key pertama.
Setelah deploy, endpoint MCP ada di:
https://<nama-app-kamu>.fly.dev/mcpKonek dari Antigravity IDE
{
"mcpServers": {
"dummy-data-mcp": {
"url": "https://<nama-app-kamu>.fly.dev/mcp",
"headers": {
"x-api-key": "ganti-dengan-string-random-yang-panjang"
}
}
}
}Kalau Antigravity IDE hanya mendukung MCP via stdio, pakai proxy mcp-remote:
{
"mcpServers": {
"dummy-data-mcp": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://<nama-app-kamu>.fly.dev/mcp",
"--header", "x-api-key:ganti-dengan-string-random-yang-panjang"
]
}
}
}Manajemen API Key
API key disimpan di tabel api_keys sebagai bcrypt hash. Untuk menambah key baru:
# Contoh: tambah key baru langsung ke DB
node -e "
import('bcrypt').then(async ({default: bcrypt}) => {
const hash = await bcrypt.hash('key-baru-kamu', 12);
console.log('INSERT INTO api_keys (key_hash, label) VALUES (\'' + hash + '\', \'nama-label\');');
});
"
# Salin output INSERT-nya, jalankan di psql atau DB clientCatatan keamanan
API key tidak pernah disimpan plaintext — hanya bcrypt hash di DB.
MCP_API_KEYdi.envhanya dipakai saatdb:seed(untuk generate hash pertama kali). Selebihnya tidak dipakai server.Untuk revoke key:
UPDATE api_keys SET is_active = false WHERE id = <id>;
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.
Related MCP Servers
- Flicense-qualityDmaintenanceA minimal, containerized MCP server that exposes a Streamable HTTP transport with API key authentication, allowing secure access to MCP endpoints.Last updated
- Flicense-qualityBmaintenanceA minimal MCP server for homelab environments, providing demo tools like ping and echo over Streamable HTTP for testing client-server integration.Last updated
- Flicense-qualityCmaintenanceA lightweight MCP server providing tools for adding integers, getting current time, and fetching weather forecasts via wttr.in.Last updated
- Flicense-qualityCmaintenanceA simple MCP server providing weather lookup and number addition tools.Last updated
Related MCP Connectors
A basic MCP server to operate on the Postman API.
MCP server for live, sourced Brazilian public data from the official IBGE APIs.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/mhdarifsetiawan01/semantic-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server