Oleh: [Nama Kamu]
Dulu, setiap kali kita ingin AI mengakses data (misal: Google Drive), developer harus membuat integrasi khusus untuk setiap AI.
Developer cukup bikin satu Server MCP, bisa dipakai di mana saja.
AI bisa "melihat" data terbaru, bukan cuma data training lama.
Bukan cuma tanya jawab, AI bisa melakukan aksi (booking, kirim email, edit file).
Ada dua cara utama (Transport):
# 1. Install MCP SDK
npm install @modelcontextprotocol/sdk
# 2. (Opsional) Install Inspector untuk debugging
npm install -g @modelcontextprotocol/inspector
Requirements: Node.js v18+ atau Python 3.10+.
// 1. Inisialisasi Server
const server = new Server({
name: "my-mcp-server",
version: "1.0.0"
}, {
capabilities: { tools: {} }
});
// 2. Daftarkan Tool
server.setRequestHandler(
ListToolsRequestSchema,
async () => ({
tools: [/* toolDefinitions */]
})
);
Server: Menentukan identitas dan kemampuan server.
// 3. Handle Eksekusi
server.setRequestHandler(
CallToolRequestSchema,
async (request) => {
const { name, arguments: args } = request.params;
return await handleToolCall(name, args);
}
);
// 4. Connect Transport
const transport = new StdioServerTransport();
await server.connect(transport);
Execution: Menghubungkan request AI ke fungsi asli kita.
# Test via CLI (Stdio)
npx @modelcontextprotocol/inspector node dist/index.js
# Test via ChatGPT/Claude
# 1. Deploy ke URL (misal: Vercel)
# 2. Masukkan URL SSE ke konfigurasi Custom GPT / Claude Desktop
Gunakan MCP Inspector untuk mencoba tool secara manual sebelum dihubungkan ke AI.
// Server merespons 401 jika butuh login
return new NextResponse(JSON.stringify({
jsonrpc: "2.0",
error: {
code: 401,
message: "Unauthorized",
data: {
login_url: "https://myapp.com/oauth"
}
}
}), { status: 401 });
Flow: AI akan otomatis menampilkan tombol "Login" kepada user saat menerima error 401 ini.
// Verifikasi Token di Server
const authHeader = req.headers.get("authorization");
const userId = await getUserIdFromToken(authHeader);
if (isProtected(toolName) && !userId) {
return throw401();
}
Security: Memastikan data sensitif (seperti booking) hanya bisa diakses setelah user login.
Bukan di browser user, tapi di Server AI Host. User tidak bisa melihat token ini secara langsung.
Setiap kali GPT memanggil tool, ia menyisipkan token di Header Authorization secara otomatis.
GPT akan menggunakan refresh_token untuk meminta token baru tanpa mengganggu user (Background Refresh).
Seperti di Custom GPT biasa:
Kenapa Plexa bisa cuma input URL?
*Untuk project Travelan, kita menggunakan Standard OAuth karena kita membangun "Pintu" sendiri dari nol.
Mari kita lihat bagaimana ChatGPT menggunakan MCP yang kita buat di Travelan App.
Ada Pertanyaan?