Back to News/MCP: Protokol yang Bikin AI Bisa Ngobrol Langsung dengan Database, Firebase, dan Grafana Anda

MCP: Protokol yang Bikin AI Bisa Ngobrol Langsung dengan Database, Firebase, dan Grafana Anda

Model Context Protocol (MCP) adalah standar terbuka yang menghubungkan LLM dengan data dan tools eksternal — seperti USB-C untuk AI. Pelajari arsitektur, cara kerja, dan real-world setup saya: 11 MCP server dari MySQL, Firebase, Grafana LGTM, hingga Lighthouse.

Faisal Affan
3/9/2026
MCP: Protokol yang Bikin AI Bisa Ngobrol Langsung dengan Database, Firebase, dan Grafana Anda — 1 / 4
1 / 4

MCP: "USB-C" untuk AI

"The best interface is one that disappears." — Don Norman

TL;DR

Model Context Protocol (MCP) adalah open protocol buatan Anthropic yang menstandardisasi cara AI terhubung ke data dan tools eksternal. Bayangkan seperti USB-C untuk AI — satu standar koneksi untuk semua.


Masalah yang Diselesaikan MCP

Sebelum MCP, setiap integrasi AI dengan tools eksternal harus dibuat custom satu per satu. Mau koneksi ke MySQL? Bikin sendiri. Mau akses Firebase? Bikin lagi. Grafana? Satu lagi.

Hasilnya? M x N integration problem — di mana M adalah jumlah AI apps dan N adalah jumlah tools.

Dengan MCP, masalah M x N menjadi M + N — setiap AI app hanya perlu satu MCP client, dan setiap tool hanya perlu satu MCP server.


Arsitektur MCP

MCP mengikuti arsitektur client-server yang terinspirasi dari Language Server Protocol (LSP). Tiga komponen utamanya:

MCP Host

Aplikasi AI yang mengoordinasi satu atau lebih MCP client. Contoh: Claude Desktop, Cursor, Claude Code.

MCP Client

Komponen yang menjaga koneksi ke MCP server. Setiap client punya koneksi 1:1 dengan satu server.

MCP Server

Program yang menyediakan konteks dan kemampuan ke AI. Bisa jalan lokal (stdio) atau remote (HTTP/SSE).


Tiga Primitif Utama

MCP server mengekspos tiga jenis kemampuan:

Prop

Type

Analogi Sederhana

MCP PrimitiveAnalogi REST APIContoh
ToolsPOST /actionKirim pesan Slack, buat GitHub issue
ResourcesGET /dataBaca file, lihat schema database
PromptsSwagger/OpenAPI docsTemplate cara optimal gunakan tools

Transport Layer

MCP mendukung dua metode transport:

Standard I/O — untuk MCP server yang jalan di mesin yang sama.

  • Komunikasi via stdin/stdout
  • Cepat dan synchronous
  • Cocok untuk: Firebase, MySQL, Lighthouse, custom LGTM stack
{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    },
    "mysql": {
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--transport", "stdio",
               "--dsn", "mysql://user:pass@127.0.0.1:3306/mydb"]
    },
    "lighthouse": {
      "command": "npx",
      "args": ["lighthouse-mcp"]
    }
  }
}

HTTP + Server-Sent Events — untuk MCP server yang jalan remote.

  • Komunikasi via HTTP request + SSE stream
  • Mendukung real-time streaming
  • Cocok untuk: SaaS documentation, Google APIs, cloud services
{
  "mcpServers": {
    "context7": {
      "serverUrl": "https://mcp.context7.com/mcp"
    },
    "mintlify": {
      "serverUrl": "https://docs.yourdomain.com/mcp"
    },
    "stitch": {
      "serverUrl": "https://stitch.googleapis.com/mcp",
      "headers": {
        "X-Goog-Api-Key": "YOUR_API_KEY"
      }
    }
  }
}

Lifecycle: Dari Handshake ke Operasi

Initialization

Client mengirim initialize request dengan protocol version dan capabilities. Server merespons dengan capabilities yang didukung.

// Client -> Server
{
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-11-25",
    "capabilities": { "roots": { "listChanged": true } }
  }
}

Discovery

Client meminta daftar tools, resources, dan prompts yang tersedia.

// Client -> Server
{ "method": "tools/list" }

// Server -> Client
{
  "tools": [
    {
      "name": "query_database",
      "description": "Execute SQL query",
      "inputSchema": { "type": "object", "properties": { "sql": { "type": "string" } } }
    }
  ]
}

Operation

LLM memanggil tools berdasarkan konteks percakapan.

// Client -> Server
{
  "method": "tools/call",
  "params": {
    "name": "query_database",
    "arguments": { "sql": "SELECT COUNT(*) FROM users WHERE active = true" }
  }
}

Membuat MCP Server Sendiri

Berikut contoh minimal MCP server menggunakan TypeScript dan Python:

npm init -y
npm install @modelcontextprotocol/sdk zod
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "weather-server",
  version: "1.0.0",
});

// Definisikan tool
server.tool(
  "get_weather",
  "Get current weather for a city",
  { city: z.string().describe("City name") },
  async ({ city }) => {
    // Panggil weather API
    const weather = await fetch(
      `https://api.weather.example.com/${city}`
    ).then((r) => r.json());

    return {
      content: [
        {
          type: "text",
          text: `Weather in ${city}: ${weather.temp}°C, ${weather.condition}`,
        },
      ],
    };
  }
);

// Jalankan server via stdio
const transport = new StdioServerTransport();
await server.connect(transport);
pip install mcp[cli] httpx
from mcp.server.fastmcp import FastMCP
import httpx

mcp = FastMCP("weather-server")

@mcp.tool()
async def get_weather(city: str) -> str:
    """Get current weather for a city."""
    async with httpx.AsyncClient() as client:
        response = await client.get(
            f"https://api.weather.example.com/{city}"
        )
        data = response.json()
        return f"Weather in {city}: {data['temp']}°C, {data['condition']}"

if __name__ == "__main__":
    mcp.run(transport="stdio")

Jangan Pakai console.log!

Untuk server berbasis stdio, jangan gunakan console.log() karena akan menulis ke stdout dan merusak JSON-RPC messages. Gunakan console.error() atau logging library yang menulis ke stderr.


Real-World Setup: 11 MCP Server Saya

Ini bukan teori — berikut konfigurasi MCP yang saya pakai sehari-hari di Gemini CLI dan Claude Code:

Pelajaran dari Setup Ini

Perhatikan pola-nya: ada 3 tipe transport yang saya pakai:

  • npx/uvx via stdio — untuk tools yang jalan lokal (Firebase, MySQL, Lighthouse)
  • node custom script — untuk MCP server yang saya build sendiri (LGTM)
  • Remote serverUrl — untuk SaaS services (Context7, Mintlify, Google Stitch)

Ketiganya bisa jalan bersamaan di satu AI host. Itulah kekuatan standar MCP.


Siapa yang Sudah Adopsi?

MCP bukan hanya standar Anthropic — ini sudah jadi industri standard:

CompanyAdopsi
AnthropicCreator, Claude Desktop & Claude Code native support
OpenAIAdopsi resmi Maret 2025, terintegrasi di ChatGPT Desktop
CursorIDE AI pertama yang full support MCP
BlockGoose AI agent dengan MCP apps
Linux FoundationMCP didonasikan ke Agentic AI Foundation (AAIF)

97 Juta Downloads

Per Desember 2025, MCP SDK sudah mencapai 97 juta monthly downloads di semua bahasa pemrograman. Ini bukan eksperimen — ini production-grade protocol.


Kapan Harus Pakai MCP?

Pakai MCP Ketika...

Anda ingin AI mengakses data/tools eksternal secara standar, reusable, dan aman. Contoh: coding assistant yang bisa query MySQL, deploy Firebase, dan audit Lighthouse sekaligus.

Jangan Pakai MCP Ketika...

Anda hanya butuh simple API call satu kali, atau data sudah bisa di-embed langsung ke prompt tanpa perlu real-time access.


Security Considerations

Keamanan MCP

MCP bukan berarti "buka semua akses". Beberapa prinsip keamanan penting:

  • Principle of Least Privilege — Hanya expose tools yang benar-benar dibutuhkan
  • Input Validation — Selalu validasi input dari LLM sebelum eksekusi
  • Access Control — Batasi direktori, database, dan API yang bisa diakses
  • User Confirmation — Untuk aksi destructive, minta konfirmasi user
  • Audit Logging — Catat semua tool calls untuk accountability

Kesimpulan

MCP mengubah cara kita mengintegrasikan AI dengan dunia nyata. Dari yang sebelumnya harus membuat custom integration untuk setiap kombinasi AI app dan tool, sekarang cukup satu standar protokol.

Sebagai engineer, ini adalah momen yang mirip dengan kemunculan REST API — standar yang membuat ekosistem berkembang jauh lebih cepat karena semua berbicara dalam bahasa yang sama.

MCP bukan tentang membuat AI lebih pintar — tapi membuat AI lebih berguna.


Referensi


Related Articles

MCP: Protokol yang Bikin AI Bisa Ngobrol Langsung dengan ... | Faisal Affan