All Products
Search
Document Center

OpenAPI Explorer:Gunakan aliyun mcp-proxy untuk melakukan proxy terhadap OpenAPI MCP Server

Last Updated:Jun 22, 2026

Gunakan aliyun mcp-proxy sebagai proxy autentikasi lokal untuk aplikasi AI yang tidak dapat menangani kredensial Alibaba Cloud. Proxy ini mengelola otorisasi OAuth dan penyegaran token secara otomatis.

aliyun mcp-proxy

aliyun mcp-proxy adalah alat CLI yang melakukan proxy permintaan antara aplikasi AI (seperti Dify dan LangChain) dan server OpenAPI MCP. Otorisasi OAuth satu kali diperlukan saat pertama kali dijalankan; proxy ini menangani penyegaran token secara otomatis.

Cara kerjanya: Aplikasi mengirim permintaan ke aliyun mcp-proxy, yang menambahkan kredensial dan meneruskannya ke server OpenAPI MCP.

Peringatan

Setelah menjalankan aliyun mcp-proxy, pengguna mana pun pada mesin host dapat mengakses server MCP melalui port proxy dalam cakupan izin pengguna CLI tersebut. Jalankan proxy hanya di lingkungan tepercaya berpengguna tunggal dan jangan pernah membuka port tersebut ke luar. Gunakan --allowed-servers atau --blocked-servers untuk membatasi server yang dapat diakses. Risiko keamanan dan mitigasinya.

Konfigurasi dan jalankan proxy

Langkah 1: Konfigurasi Alibaba Cloud CLI

  1. Instal atau tingkatkan Alibaba Cloud CLI ke versi 3.2.0 atau yang lebih baru. Instal atau perbarui Alibaba Cloud CLI.

  2. Konfigurasikan CLI dengan kredensial Akun Alibaba Cloud atau pengguna RAM yang memiliki izin untuk membuat aplikasi OAuth. Untuk menggunakan aplikasi OAuth yang sudah ada, tentukan --oauth-app-name pada langkah berikutnya.

    aliyun configure
    # Masukkan ID AccessKey, AccessKey Secret, dan wilayah default Anda sesuai prompt.

Langkah 2: Jalankan pertama kali dan otorisasi OAuth

Pada jalankan pertama kali, mcp-proxy memerlukan otorisasi OAuth satu kali untuk mendapatkan token penyegaran.

  1. Jalankan proxy di foreground.

    • Di lingkungan GUI, CLI akan membuka browser untuk otorisasi OAuth kecuali jika --no-browser ditentukan. Setelah otorisasi, lanjutkan ke langkah 5.

      aliyun mcp-proxy --host 127.0.0.1 --port 8088
    • Di lingkungan headless, tambahkan --no-browser. CLI akan meminta Anda untuk mendapatkan kode otorisasi secara manual.

      aliyun mcp-proxy --host 127.0.0.1 --port 8088 --no-browser
    Catatan

    Untuk menentukan aplikasi OAuth khusus dengan --oauth-app-name, aplikasi tersebut harus memenuhi persyaratan berikut:

    • OAuth Scope: Harus /acs/mcp-server.

    • Redirect URI: Harus sesuai dengan Redirect URI yang digunakan selama autentikasi aliyun mcp-proxy.

    • Jenis Aplikasi: Harus berupa aplikasi Native.

  2. 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>
  3. Buka URL tersebut di browser, masuk, dan selesaikan otorisasi.

  4. Setelah otorisasi, halaman akan dialihkan ke URL yang berisi parameter code, atau menampilkan kode tersebut secara langsung. Salin nilai code, tempelkan ke terminal, lalu tekan Enter.

  5. Terminal menampilkan OAuth login successful! ketika otorisasi 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!
  6. Terminal menampilkan MCP Proxy Server Started ketika proxy siap digunakan.

    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 layanan systemd (CentOS)

Untuk operasi yang stabil, konfigurasikan proxy sebagai layanan systemd yang dimulai saat boot.

  1. Buat file layanan systemd bernama aliyun-mcp-proxy.service.

    Catatan:

    • Ganti your-user dengan nama pengguna non-root aktual yang menjalankan layanan ini. Pengguna ini harus telah mengonfigurasi kredensial menggunakan aliyun configure.

    • Pada baris ExecStart, $(which aliyun) secara otomatis menemukan path ke perintah aliyun. Jika gagal, gantilah secara manual dengan output dari perintah which 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
    EOF
  2. Muat ulang konfigurasi systemd dan mulai layanan tersebut.

    # Reload the configuration
    sudo systemctl daemon-reload
    # Start the service
    sudo systemctl start aliyun-mcp-proxy
    # Enable the service to start on boot
    sudo systemctl enable aliyun-mcp-proxy

Langkah 4: Verifikasi layanan proxy

Verifikasi bahwa layanan sedang berjalan.

  • Lihat status layanan

    Periksa status layanan.

    sudo systemctl status aliyun-mcp-proxy

    Jika output berisi active (running), layanan telah berhasil dimulai.

  • Request Proxy Port

    Kirim permintaan uji ke port proxy.

    curl http://127.0.0.1:8088/

    Proxy yang berfungsi akan mengembalikan respons error XML dari server MCP, yang mengonfirmasi konektivitas.

    <?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>

Integrasi dengan Dify

Contoh ini mengonfigurasi mcp-proxy dengan Dify yang diterapkan melalui Docker Compose pada Instance ECS yang sama.

Langkah 1: Dapatkan IP host dan mulai proxy

Kontainer Dify mengakses mcp-proxy melalui IP Docker bridge mesin host.

  1. Dapatkan alamat IP Docker bridge.

    ip addr show docker0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1

    Perintah ini mengembalikan alamat IP seperti 172.17.0.1.

  2. Jalankan aliyun mcp-proxy di foreground, atau modifikasi perintah startup systemd untuk menjalankannya sebagai layanan.

    aliyun mcp-proxy --host 172.17.0.1 --port 8088 --no-browser

Langkah 2: Konfigurasi server MCP di Dify

  1. Di Dify, buka halaman konfigurasi Tools > MCP.

  2. Klik Add MCP Server (HTTP).

  3. Pada bidang server endpoint URL, masukkan alamat proxy MCP Anda.

    Temukan Streamable HTTP Endpoint di konsol OpenAPI MCP Service dan ganti host-nya dengan alamat proxy Anda.

    Contoh konversi:

    • Endpoint Asli:
      https://openapi-mcp.cn-hangzhou.aliyuncs.com/accounts/1234/custom/cli-proxy-test/id/1234/mcp



    • Endpoint yang Diproxy: (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



  4. Lengkapi bidang lainnya dan klik Add & Authorize. Dify akan mengarahkan traffic MCP melalui proxy ini.

Risiko keamanan dan mitigasinya

Setelah menjalankan mcp-proxy, pengguna mana pun pada mesin host dapat mengakses server MCP melalui port proxy dalam cakupan izin pengguna CLI tersebut. Risiko utama:

  • Penyalahgunaan hak istimewa internal: Pengguna lain pada mesin yang sama dapat menggunakan port proxy untuk melakukan tindakan tidak sah, yang menyebabkan penyalahgunaan hak istimewa atau kebocoran data.

  • Eksposur eksternal: Jika proxy mendengarkan pada 0.0.0.0 tanpa firewall, siapa pun di jaringan dapat mengakses server MCP melalui port tersebut.

Catatan

Proxy menggunakan identitas Alibaba Cloud pengguna CLI yang sedang login. Konfigurasikan izin akses dengan hati-hati.

Mitigasi

  • Isolasi lingkungan: Jalankan proxy hanya di lingkungan tepercaya berpengguna tunggal.

  • Kontrol akses jaringan: Ikat --host ke 127.0.0.1 (default) atau IP internal tertentu. Gunakan aturan firewall atau grup keamanan untuk membatasi akses ke port proxy. Jangan pernah membuka port tersebut ke internet publik.

  • Kontrol akses server: Gunakan --allowed-servers (allowlist) atau --blocked-servers (blocklist) untuk membatasi server MCP yang dapat diakses. Konfigurasi kontrol akses server.

  • Prinsip hak istimewa minimal: Berikan pengguna CLI dan server MCP hanya izin minimum yang diperlukan. Lebih baik gunakan akses read-only.

  • Audit dan pemantauan: Tinjau log akses proxy secara berkala. Permintaan yang diblokir dicatat dalam log.

Konfigurasi kontrol akses server

aliyun mcp-proxy mendukung mode allowlist dan blocklist untuk membatasi server MCP yang dapat diakses.

Aturan prioritas

Kontrol akses dievaluasi dalam urutan berikut:

  1. Blocklist terlebih dahulu: Permintaan yang cocok dengan blocklist ditolak segera, bahkan jika juga ada di allowlist.

  2. Penyaringan daftar izin: Jika daftar izin dikonfigurasi, hanya server yang tercantum dalam daftar tersebut yang diizinkan.

  3. Izinkan secara default: Jika tidak ada daftar yang dikonfigurasi, akses ke semua server diizinkan.

Dapatkan nama dan ID server

Setelah menjalankan aliyun mcp-proxy, terminal mencantumkan server MCP yang tersedia:

Available Servers:
  - cloudphone
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/system/eds-aic/cloudphone/id/XSkb9v4dXx000000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/system/eds-aic/cloudphone/id/XSkb9v4dXx000000/sse
  - multi_account
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/custom/multi_account/id/OV0Qkpxh0Uodx000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/custom/multi_account/id/OV0Qkpxh0Uodx000/sse
  • Pada output tersebut, cloudphone dan multi_account adalah nilai name server (biasanya terletak sebelum kata kunci id).

  • Pada output tersebut, XSkb9v4dXx000000 dan OV0Qkpxh0Uodx000 adalah nilai id server (biasanya terletak sebelum kata kunci mcp).

Path URL biasanya mengikuti pola berikut:

......./system/eds-aic/$server_name/id/$server_id/mcp
......./custom/$server_name/id/$server_id/mcp

Pola pencocokan

Parameter --allowed-servers dan --blocked-servers mendukung tiga pola pencocokan, yang secara otomatis diidentifikasi berdasarkan format nilainya:

Pola pencocokan

Format

Contoh

Deskripsi

Pencocokan Nama Server

String yang tidak diawali dengan /

cloudcontrol

Cocok persis dengan bidang name server.

Pencocokan ID Server

String yang tidak diawali dengan /

OV0Qkpxh0Uodx000

Cocok persis dengan bidang id server.

Pencocokan Awalan Path

String yang diawali dengan /

/acs/mcp-server/ecs

Cocok dengan awalan path dari URL permintaan.

Catatan

  • Pencocokan nama dan ID server bersifat eksak.

  • Pencocokan awalan path menggunakan perbandingan awalan. Misalnya, /acs/mcp-server/ecs cocok dengan /acs/mcp-server/ecs/mcp dan /acs/mcp-server/ecs/sse.

  • Anda dapat mencampur ketiga pola tersebut dalam parameter yang sama.

Contoh konfigurasi

  • Mode allowlist: Izinkan akses hanya ke server yang ditentukan

    aliyun mcp-proxy --allowed-servers "ecs,oss"

    Hanya ecs dan oss yang dapat diakses. Permintaan ke server lain akan mengembalikan 403 Forbidden.

  • Mode blocklist: Tolak akses ke server yang ditentukan

    aliyun mcp-proxy --blocked-servers "ram"

    Semua server kecuali ram dapat diakses.

  • Gunakan pencocokan awalan path

    aliyun mcp-proxy --allowed-servers "/acs/mcp-server/ecs,/acs/mcp-server/oss"

    Memiliki efek yang sama dengan pencocokan berbasis nama, dengan kontrol path yang lebih tepat.

Verifikasi kontrol akses

Setelah menjalankan proxy, terminal menampilkan konfigurasi kontrol akses dan status server:

MCP Proxy Server Started
Listen: 127.0.0.1:8088
Region: CN
Access Control:
  Blacklist (blocked servers):
    - ram
  Whitelist (allowed servers):
    - ecs
    - oss
Available Servers:
  - ecs
    MCP: http://127.0.0.1:8088/acs/mcp-server/ecs/mcp
  - oss
    MCP: http://127.0.0.1:8088/acs/mcp-server/oss/mcp
  - ram (blocked)

Permintaan yang diblokir dicatat dalam log proxy untuk troubleshooting.

Respons insiden keamanan

Jika Anda mencurigai token autentikasi proxy telah bocor atau disalahgunakan:

  • Hentikan layanan MCP Proxy.

  • Hapus file konfigurasi lokal: rm ~/.aliyun/.mcpproxy_config.

  • Cabut otorisasi OAuth di konsol Alibaba Cloud.

  • Periksa log panggilan API untuk mengidentifikasi operasi abnormal.

  • Konfigurasi ulang MCP Proxy dan hasilkan token baru.

Parameter

Perintah aliyun mcp-proxy mendukung parameter-parameter berikut.

Parameter

Deskripsi

Default

--host

Alamat pendengar proxy.

127.0.0.1

--port

Port pendengar proxy.

8088

--no-browser

Menonaktifkan pembukaan browser otomatis untuk otorisasi OAuth. Di lingkungan headless, CLI mencetak URL otorisasi ke terminal.

Tidak diaktifkan

--oauth-app-name

Nama aplikasi OAuth yang sudah ada. Melewati pembuatan aplikasi otomatis.

aliyun-cli-mcp-proxy

--region-type

Situs layanan untuk server OpenAPI MCP. Nilai yang valid: CN (situs Tiongkok) dan INTL (situs internasional).

CN

--upstream-url

Menimpa alamat default server OpenAPI MCP upstream.

Situs Tiongkok: https://openapi-mcp.cn-hangzhou.aliyuncs.com
Situs internasional: https://openapi-mcp.ap-southeast-1.aliyuncs.com

--allowed-servers

Daftar putih server MCP yang dapat diakses (dipisahkan koma). Mendukung nama server, ID, atau awalan path. Jika tidak ditentukan, semua server diizinkan. Konfigurasi kontrol akses server.

Tidak diaktifkan

--blocked-servers

Daftar hitam server MCP yang tidak dapat diakses (dipisahkan koma). Mendukung nama server, ID, atau awalan path. Memiliki prioritas lebih tinggi daripada daftar putih. Konfigurasi kontrol akses server.

Tidak diaktifkan

FAQ

Setelah menjalankan aliyun mcp-proxy untuk autentikasi OAuth, saya mendapatkan error "ERROR: OAuth flow returned empty RefreshToken". Mengapa hal ini terjadi?

Hal ini biasanya menunjukkan jenis atau identitas aplikasi OAuth yang salah. Verifikasi:

  • Jenis aplikasi OAuth yang digunakan adalah Native.

  • Anda melakukan autentikasi dengan Akun Alibaba Cloud atau pengguna RAM. Mengasumsikan Peran RAM tidak mendukung pemerolehan token penyegaran.

Error Connection Refused atau Timeout di Dify

Periksa konfigurasi berikut:

  1. Tetapkan --host ke IP Docker bridge atau IP internal host agar kontainer dapat mengakses layanan mcp-proxy.

  2. Grup keamanan ECS atau firewall host harus mengizinkan traffic TCP dari kontainer Docker ke port proxy (misalnya, 8088).

Bagaimana cara melihat log mcp-proxy?

Untuk deployment systemd, lihat log waktu nyata dengan:

sudo journalctl -u aliyun-mcp-proxy -f