Gunakan aliyun mcp-proxy untuk menyederhanakan autentikasi dan panggilan API ke OpenAPI MCP Server.
Pengenalan aliyun mcp-proxy
aliyun mcp-proxy adalah tool proxy yang disertakan dalam Alibaba Cloud CLI. Tool ini menyederhanakan cara aplikasi seperti Dify dan LangChain berinteraksi dengan OpenAPI MCP Server. Anda harus menyelesaikan proses otorisasi OAuth secara manual saat pertama kali menjalankan tool ini. Setelah itu, layanan proxy akan secara otomatis menangani penyegaran token. Aplikasi dapat memanggil API layanan Alibaba Cloud melalui proxy tanpa perlu mengelola logika autentikasi.
Cara kerja
Aplikasi mengirim permintaan API ke aliyun mcp-proxy. Layanan proxy menambahkan kredensial yang diperlukan lalu meneruskan permintaan tersebut ke OpenAPI MCP Server.
[Application] -> [aliyun mcp-proxy] -> [OpenAPI MCP Server] -> [Alibaba Cloud Service API]
Setelah mcp-proxy dijalankan, semua pengguna pada mesin lokal dapat menggunakan port proxy untuk mengakses MCP Server yang telah dikonfigurasi dengan izin milik pengguna command-line interface (CLI) yang menjalankan proxy tersebut. Untuk mencegah penyalahgunaan izin, jalankan proxy hanya di lingkungan tepercaya dengan satu pengguna. Jangan membuka port proxy ke jaringan eksternal. Konfigurasikan akses hak istimewa minimal untuk MCP Server tersebut. Untuk informasi selengkapnya, lihat Risiko keamanan.
Konfigurasi dan jalankan proxy
Langkah 1: Konfigurasi Alibaba Cloud CLI
Instal atau tingkatkan Alibaba Cloud CLI ke versi
3.2.0atau yang lebih baru. Untuk petunjuk instalasi, lihat Instal CLI (Linux).Konfigurasikan CLI menggunakan kredensial Akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki izin untuk membuat aplikasi OAuth. Anda juga dapat menggunakan parameter
--oauth-app-namepada langkah berikutnya untuk menentukan aplikasi OAuth yang sudah ada.aliyun configure # Masukkan ID AccessKey, Rahasia AccessKey, dan wilayah default Anda sesuai permintaan.
Langkah 2: Jalankan proxy untuk pertama kali dan selesaikan otorisasi OAuth
Saat Anda menjalankan mcp-proxy untuk pertama kalinya, Anda harus menyelesaikan otorisasi OAuth sekali saja untuk mendapatkan izin penyegaran token.
Jalankan proses di latar depan.
Di lingkungan dengan antarmuka pengguna grafis (GUI), CLI secara otomatis membuka browser untuk proses otorisasi OAuth jika Anda tidak menyertakan parameter
--no-browser. Setelah otorisasi selesai, Anda tidak perlu memasukkan kode otorisasi secara manual. Anda dapat langsung melanjutkan ke Langkah 5.aliyun mcp-proxy --host 127.0.0.1 --port 8088Di lingkungan server tanpa GUI, tambahkan parameter
--no-browser. Proses tersebut akan memandu Anda untuk mendapatkan kode otorisasi.aliyun mcp-proxy --host 127.0.0.1 --port 8088 --no-browser
CatatanAnda dapat menggunakan parameter
--oauth-app-nameuntuk menentukan aplikasi OAuth kustom. Aplikasi tersebut harus memenuhi kondisi berikut:OAuth Scope: Harus
/acs/mcp-server.Redirect URI: Harus sama dengan Redirect URI yang digunakan untuk autentikasi
aliyun mcp-proxy.Application Type: Harus berupa aplikasi tipe
Native.
Terminal menampilkan URL otorisasi.
Setting up MCPOAuth profile 'default-mcp'... Opening browser for OAuth login... URL: https://signin.aliyun.com/oauth2/v1/auth?client_id=XXX8&response_type=code&scope=%2Facs%2Fmcp-server&redirect_uri=http://0.0.0.0:8088/callback&code_challenge=XXX&code_challenge_method=S256 Please open the authorization URL on a machine with a browser and complete the sign-in. After authorization, the browser will redirect to a callback URL. Even if the page fails to load (connection error), the authorization code is in the URL. Please copy the value of the `code` parameter from the browser's address bar. Example: If the URL is: http://127.0.0.1:8088/callback?code=abc123xyz&state=... Then copy only: abc123xyz Enter authorization code: <YOUR CODE>Buka URL tersebut di browser, login, lalu selesaikan otorisasi.
Setelah otorisasi berhasil, halaman akan dialihkan ke alamat yang berisi parameter
codeatau langsung menampilkan kode otorisasi. Salin nilaicode, tempelkan ke terminal, lalu tekan Enter.Saat terminal menampilkan
OAuth login successful!, berarti otorisasi telah berhasil.2025/12/04 19:11:49 Oauth authorization successfully, code received: XXXX 2025/12/04 19:11:49 Start to exchange code for token with PKCE 2025/12/04 19:11:49 Exchange code for token with PKCE successfully OAuth login successful!Saat terminal menampilkan
MCP Proxy Server Started, berarti proxy telah berhasil dijalankan.MCP Profile 'default-mcp' configured for oauth app 'aliyun-cli-mcp-proxy' successfully! MCP Proxy Server Started Listen: 127.0.0.1:8088
Langkah 3: Konfigurasi proxy sebagai layanan latar belakang systemd (contoh CentOS)
Untuk memastikan proxy berjalan stabil, Anda dapat mengonfigurasinya sebagai layanan systemd yang otomatis dijalankan saat startup.
Buat file layanan
systemdbernama `aliyun-mcp-proxy.service`.Catatan:
Ganti
your-userdalam perintah dengan username pengguna non-rootyang menjalankan perintah ini. Pengguna ini harus sama dengan pengguna yang telah mengonfigurasi kredensial menggunakanaliyun configure.ExecStartdalam$(which aliyun)secara otomatis menemukan path perintahaliyun. Jika path tidak ditemukan, gantilah secara manual dengan output dari perintahwhich aliyun, misalnya/usr/local/bin/aliyun.
sudo tee /etc/systemd/system/aliyun-mcp-proxy.service << 'EOF' [Unit] Description=Aliyun CLI MCP Proxy After=network.target [Service] Type=simple User=your-user ExecStart=$(which aliyun) mcp-proxy --host 127.0.0.1 --port 8088 --no-browser Restart=always RestartSec=10 Environment=HOME=/home/your-user [Install] WantedBy=multi-user.target EOFMuat ulang konfigurasi
systemddan mulai layanan tersebut.# Muat ulang konfigurasi sudo systemctl daemon-reload # Jalankan layanan sudo systemctl start aliyun-mcp-proxy # Aktifkan layanan agar otomatis dijalankan saat boot sudo systemctl enable aliyun-mcp-proxy
Langkah 4: Verifikasi layanan proxy
Anda dapat memverifikasi apakah layanan berjalan dengan benar melalui salah satu cara berikut.
Lihat status layanan
Jalankan perintah berikut untuk melihat status layanan.
sudo systemctl status aliyun-mcp-proxyJika output berisi
active (running), layanan telah berhasil dijalankan.Meminta port proxy
Jalankan perintah berikut untuk mengirim permintaan langsung ke port proxy.
curl http://127.0.0.1:8088/Jika proxy berfungsi dengan benar, Anda akan menerima respons error berformat XML dari MCP Server. Hal ini mengonfirmasi bahwa proxy telah terhubung ke layanan tersebut.
<?xml version='1.0' encoding='UTF-8'?><Error><RequestId>B3311876-XXXXX</RequestId><HostId>openapi-mcp.cn-hangzhou.aliyuncs.com</HostId><Code>InvalidAction.NotFound</Code><Message>Specified api is not found, please check your url and method.</Message><Recommend><![CDATA[https://api.aliyun.com/troubleshoot?q=InvalidAction.NotFound&product=OpenAPIExplorer&requestId=B3311876-XXX]]></Recommend></Error>
Kasus penggunaan: Integrasi Dify
Bagian ini menggunakan contoh Dify yang di-deploy dengan Docker Compose pada Instance ECS yang sama. Bagian ini menunjukkan cara mengonfigurasi dan menggunakan mcp-proxy.
Langkah 1: Dapatkan IP bridge Docker host dan mulai layanan mcp-proxy
Kontainer Dify harus mengakses layanan mcp-proxy melalui alamat IP bridge Docker host.
Jalankan perintah berikut untuk mendapatkan dan mencatat alamat IP tersebut.
ip addr show docker0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1Perintah tersebut mengembalikan alamat IP seperti
172.17.0.1.Jalankan layanan mcp-proxy di foreground. Atau, Anda dapat memodifikasi perintah start di
systemdlalu menjalankannya sebagai layanan.aliyun mcp-proxy --host 172.17.0.1 --port 8088 --no-browser
Langkah 2: Konfigurasi MCP Server di Dify
Buka halaman konfigurasi Tools > MCP di Dify.
Klik Add MCP Service (HTTP).
Pada bidang Server Endpoint URL, masukkan alamat proxy MCP Anda.
Dapatkan alamat Streamable HTTP Endpoint asli dari Konsol Layanan OpenAPI MCP Alibaba Cloud. Ganti bagian nama domain (host) dari alamat tersebut dengan alamat proxy lokal atau jaringan internal Anda.
Contoh konversi:
Endpoint Asli:
https://openapi-mcp.cn-hangzhou.aliyuncs.com/accounts/1234/custom/cli-proxy-test/id/1234/mcpGanti dengan alamat proxy (dengan asumsi proxy berjalan di
172.17.0.1:8088):http://172.17.0.1:8088/accounts/1234/custom/cli-proxy-test/id/1234/mcp
Masukkan informasi lain yang diperlukan, lalu klik Add and Authorize. Dify akan berkomunikasi dengan layanan MCP Anda melalui alamat proxy ini.
Risiko keamanan
Setelah mcp-proxy dijalankan, semua pengguna pada mesin lokal dapat menggunakan port proxy untuk mengakses MCP Server yang telah dikonfigurasi dengan izin milik pengguna CLI yang menjalankan proxy tersebut. Risiko utamanya meliputi:
Penyalahgunaan izin internal: Pengguna lain pada mesin yang sama dapat menggunakan port proxy untuk melakukan operasi yang tidak sah. Hal ini dapat menyebabkan penyalahgunaan izin atau kebocoran data.
Risiko paparan eksternal: Jika port proxy mendengarkan pada
0.0.0.0dan firewall internal tidak dikonfigurasi, siapa pun di jaringan dapat mengakses MCP Server melalui port tersebut.
Langkah perlindungan
Isolasi lingkungan: Jalankan proxy hanya di lingkungan tepercaya dengan satu pengguna. Hindari penggunaannya pada server bersama multi-pengguna.
Kontrol akses jaringan: Ikat alamat pendengar proxy (
--host) ke127.0.0.1(default) atau IP jaringan internal tertentu. Gunakan firewall atau aturan grup keamanan untuk membatasi akses ke port proxy. Misalnya, izinkan akses hanya dari IP server aplikasi tertentu. Jangan membuka port tersebut ke internet.Prinsip hak istimewa minimal: Konfigurasikan akses hak istimewa minimal untuk pengguna CLI yang digunakan oleh proxy dan MCP Server terkaitnya. Sebagai langkah awal, berikan hanya izin read-only.
Audit dan pemantauan: Tinjau secara berkala log akses layanan proxy dan pantau adanya permintaan yang tidak wajar.
Prinsip inti: MCP Proxy menggunakan identitas Alibaba Cloud dari pengguna CLI yang login untuk melakukan proxy terhadap permintaan. Lindungi akses ke MCP Proxy sebagaimana Anda melindungi kata sandi akun.
Tanggapan insiden keamanan
Jika Anda mencurigai bahwa token autentikasi proxy telah bocor atau disalahgunakan, segera lakukan tindakan berikut:
Hentikan layanan MCP Proxy.
Hapus file konfigurasi lokal:
rm ~/.aliyun/.mcpproxy_config.Cabut otorisasi OAuth di Konsol Manajemen Alibaba Cloud.
Periksa log panggilan API untuk menentukan apakah terjadi operasi yang tidak wajar.
Konfigurasi ulang MCP Proxy dan hasilkan token baru.
Parameter
Perintah aliyun mcp-proxy mendukung berbagai parameter untuk menyesuaikan dengan skenario tertentu.
Parameter | Deskripsi | Nilai default |
| Alamat host untuk pendengar proxy. Kelola alamat ini sesuai kasus penggunaan Anda. |
|
| Port untuk pendengar proxy. |
|
| Gunakan ini untuk autentikasi OAuth di lingkungan tanpa GUI. Saat diaktifkan, tautan autentikasi akan langsung dicetak di terminal. | Tidak diaktifkan |
| Menentukan nama aplikasi OAuth yang sudah ada. Saat menggunakan parameter ini, CLI tidak akan mencoba membuat aplikasi secara otomatis. |
|
| Memilih situs layanan untuk OpenAPI MCP Server. |
|
| Menentukan secara manual alamat upstream OpenAPI MCP Server untuk mengganti alamat default. | Situs Alibaba Cloud China: |
FAQ
Setelah saya menjalankan aliyun mcp-proxy untuk autentikasi OAuth, saya mendapatkan error "ERROR: OAuth flow returned empty RefreshToken" dan proxy gagal dijalankan. Mengapa?
Masalah ini biasanya disebabkan oleh tipe aplikasi OAuth atau identitas autentikasi yang salah. Pastikan bahwa:
Tipe aplikasi OAuth diatur ke Native.
Anda menggunakan akun root atau Pengguna RAM untuk autentikasi. Asumsi Peran RAM tidak mendukung pemerolehan token penyegaran OAuth.
Setelah saya mengonfigurasi proxy di Dify, saya mendapatkan error "Connection Refused" atau "Timeout". Apa yang harus saya lakukan?
Periksa konfigurasi berikut:
Saat menjalankan layanan
mcp-proxy, pastikan parameter--hostdiatur ke IP bridge Docker atau IP jaringan internal host. Hal ini memastikan kontainer Docker dapat mengaksesnya.Periksa apakah Grup keamanan ECS atau firewall internal host mengizinkan traffic TCP dari kontainer Docker ke port proxy, seperti
8088.
Bagaimana cara melihat log operasional layanan mcp-proxy?
Jika Anda mengonfigurasi proxy sebagai layanan systemd, Anda dapat menggunakan perintah berikut untuk melihat log secara real-time:
sudo journalctl -u aliyun-mcp-proxy -f