8 poin oleh GN⁺ 2025-03-27 | 4 komentar | Bagikan ke WhatsApp
  • MCP(Model Context Protocol) adalah cara terstandarisasi untuk menyediakan alat dan konteks kepada LLM
  • Seperti port USB-C, ini berperan sebagai antarmuka standar yang menghubungkan berbagai sumber data atau alat dengan model AI
  • OpenAI Agents SDK mendukung MCP sehingga dapat terintegrasi dengan berbagai server MCP

Server MCP

  • Saat ini spesifikasi MCP mendefinisikan dua jenis server berdasarkan mekanisme transport yang digunakan:
    1. Server stdio dijalankan sebagai subprocess dari aplikasi, dan dapat dianggap berjalan secara "lokal".
    2. Server HTTP over SSE dijalankan dari jarak jauh dan dihubungkan melalui URL.
  • Anda dapat terhubung ke server-server ini menggunakan kelas MCPServerStdio dan MCPServerSse.
  • Sebagai contoh, berikut cara menggunakan server filesystem MCP resmi:
    async with MCPServerStdio(  
        params={  
            "command": "npx",  
            "args": ["-y", "@modelcontextprotocol/server-filesystem", samples_dir],  
        }  
    ) as server:  
        tools = await server.list_tools()  
    

Caching

  • Memanggil list_tools() pada server MCP setiap kali agen dijalankan dapat menyebabkan latensi. Ini terutama lebih terasa jika servernya adalah server jarak jauh.
  • Untuk melakukan cache daftar alat secara otomatis, Anda dapat meneruskan cache_tools_list=True ke MCPServerStdio dan MCPServerSse. Ini sebaiknya hanya dilakukan jika Anda yakin daftar alat tidak akan berubah.
  • Untuk membatalkan cache, Anda dapat memanggil invalidate_tools_cache() pada server.

4 komentar

 
GN⁺ 2025-03-27
Komentar Hacker News
  • Hari ini MCP menambahkan Streamable HTTP. Ini kemajuan besar karena tidak perlu selalu terhubung ke server HTTP jarak jauh

    • Tetapi jika melihat spesifikasinya, memasukkan paradigma bergaya LSP ke server HTTP jarak jauh menambah banyak kompleksitas
    • Secara tradisional, caranya adalah mengirim HTTP POST ke /get_weather dengan { "location": "New York" }
    • Ada usulan untuk mengurangi kompleksitas dan kembali ke server HTTP tradisional. Sesi dinegosiasikan dengan header Authorization dan memakai endpoint tradisional
    • Membangun server akan jauh lebih mudah dan framework web tidak perlu diperbarui agar sesuai dengan spesifikasi
  • Ada analogi yang mengatakan untuk menganggap MCP sebagai port USB-C untuk aplikasi AI

    • Sebagai software engineer, analogi itu tidak membantu
  • Saya penasaran apakah OpenAI akan mendukung ini secara resmi, dan sekarang sudah mendapat jawabannya

    • MCP telah menjadi standar industri untuk menghubungkan LLM ke alat eksternal
  • Saya berharap ada dukungan untuk OpenAPI. Saya sudah membuat beberapa server MCP, tetapi rasanya seperti API yang kurang fleksibel dan dokumentasinya kurang baik

    • Sulit menemukan hal yang lebih baik dari MCP dibanding OpenAPI. Kodenya memang sedikit berkurang, tetapi pilihan yang tersedia jadi jauh lebih sedikit
    • Seiring waktu, Swagger akan tertanam di dalamnya
  • Sulit memahami apa nilai MCP sebenarnya. Di tengah kekacauan teknologi AI modern, ini terasa seperti distraksi lain

    • MCP adalah protokol terbuka yang menstandarkan cara aplikasi menyediakan konteks ke LLM
    • Yang dipertanyakan adalah apa sebenarnya yang perlu distandarkan. Kita menggunakan transformer teks-ke-teks yang bekerja dengan string tokenisasi arbitrer
    • Hal seperti pemanggilan tool/fungsi juga hanyalah heuristik cerdas di atas teks biasa
  • Saya membuat arsitektur agar agen AI bisa menggunakan "tool" secara lokal. Ini bekerja dengan semua jenis LLM dan server LLM

    • Berfungsi sebagai middleware dan berjalan sebagai stream di antara server LLM dan klien chat
    • Ini proyek open source, tetapi repo-nya tidak diperbarui karena tidak ada yang menunjukkan minat pada kodenya
  • Masih kurang video tentang bagaimana MCP benar-benar digunakan. Masih kurang use case nyata untuk programmer

  • Ada analogi yang mengatakan untuk menganggap MCP sebagai port USB-C untuk aplikasi AI

    • Karena saya sering mendengar banyak penderitaan dalam implementasi USB, sebaiknya cari analogi lain
  • Sepertinya ini menargetkan HTTP+SSE, versi lama MCP, bukan versi Streaming HTTP yang baru

    • Ada juga dukungan OAuth 2.1, JSON-RPC batching, dan lain-lain
  • Jika ingin mencoba MCP dengan sederhana, saya membuat <a href="https://skeet.build/mcp" rel="nofollow">skeet.build/mcp</a>

    • Saya membuatnya karena pengaturan MCP rumit, dukungannya kurang, dan sulit membangun sendiri
    • Ini terutama digunakan untuk workflow seperti berikut
      • Menulis ringkasan saat memulai PR
      • Ringkasan Slack atau komentar ke Linear/Jira
      • Mengambil issue dari Sentry lalu memperbaikinya
      • Membuat issue Linear saat menemukan bug
      • Mengambil issue Linear lalu melakukan pass pertama
      • Mengambil dokumen Notion dan PRD lalu membuat referensi API berbasis codebase
      • Skema Postgres atau MySQL untuk pengembangan model cepat
    • Fokusnya pada kemudahan penggunaan, workflow developer yang praktis, dan server MCP berkualitas tinggi
 
samchon 2025-03-27

Saya juga merasa OpenAPI function calling mungkin lebih baik. Membuat ulang ini dengan protokol MCP juga butuh kerja.

 
mangoblue 2025-03-28

Bukankah bedanya ada pada push dan poll? Dibanding melakukan function calling untuk setiap model atau layanan, menurut saya bagi pihak ketiga lebih praktis jika spesifikasi MCP di-host lalu agen mengambilnya dengan cara poll.