Model Context Protocol (MCP) memungkinkan model bahasa besar menggunakan tool dan data eksternal. Topik ini menjelaskan cara menghubungkan ke MCP melalui Responses API.
Penggunaan
Tambahkan informasi server MCP dalam parameter tools saat menggunakan Responses API.
Dapatkan titik akhir Server-Sent Events (SSE) dan informasi autentikasi untuk layanan MCP dari platform seperti ModelScope.
Mendukung server MCP yang menggunakan protokol SSE.
Maksimal 10 server MCP.
# Impor dependensi dan buat client...
mcp_tool = {
"type": "mcp",
"server_protocol": "sse",
"server_label": "my-mcp-service",
"server_description": "Deskripsi fitur server MCP untuk membantu model memahami kasus penggunaannya.",
"server_url": "https://your-mcp-server-endpoint/sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
response = client.responses.create(
model="qwen3.8-max",
input="Your question...",
tools=[mcp_tool]
)
print(response.output_text)
Model yang didukung
- Qwen-Max: seri Qwen3.8-Max, seri Qwen3.7-Max
- Qwen-Plus: seri Qwen3.7-Plus, seri Qwen3.6-Plus, seri Qwen3.5-Plus
- Qwen-Flash: seri Qwen3.7-Flash, seri Qwen3.6-Flash, seri Qwen3.5-Flash
- Seri open-source Qwen3.8
- Seri open-source Qwen3.6 (kecuali qwen3.6-27b)
- Seri open-source Qwen3.5
Hanya tersedia melalui Responses API.
Memulai
Contoh ini menggunakan layanan MCP Fetch web scraping dari ModelScope. Anda dapat memperoleh Titik Akhir SSE dan informasi autentikasi untuk layanan tersebut dari bagian konfigurasi Layanan di sebelah kanan.
Dapatkan Kunci API dan konfigurasikan sebagai variabel lingkungan.
Ganti
server_urldengan titik akhir SSE dari platform layanan MCP. Ganti autentikasi dalamheadersdengan token yang disediakan oleh platform tersebut.
import os
from openai import OpenAI
client = OpenAI(
# Jika tidak ada variabel lingkungan, gunakan: api_key="sk-xxx" (tidak disarankan).
api_key=os.getenv("DASHSCOPE_API_KEY"),
# URL berikut untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda-beda tergantung wilayah.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
# Konfigurasi tool MCP
# Ganti server_url dengan Titik Akhir SSE yang Anda peroleh dari platform seperti ModelScope
# Jika diperlukan autentikasi, tambahkan token dari platform terkait ke headers
mcp_tool = {
"type": "mcp",
"server_protocol": "sse",
"server_label": "fetch",
"server_description": "Fetch MCP Server yang menyediakan kemampuan web scraping. Dapat mengambil konten dari URL tertentu dan mengembalikannya sebagai teks.",
"server_url": "https://mcp.api-inference.modelscope.net/xxx/sse",
}
response = client.responses.create(
model="qwen3.8-max",
input="https://news.aibase.com/zh/news, what is the AI news today?",
tools=[mcp_tool]
)
print("[Model Response]")
print(response.output_text)
print(f"\n[Token Usage] Input: {response.usage.input_tokens}, Output: {response.usage.output_tokens}, Total: {response.usage.total_tokens}")
import OpenAI from "openai";
import process from 'process';
const openai = new OpenAI({
// Jika tidak ada variabel lingkungan, gunakan: apiKey: "sk-xxx" (tidak disarankan).
apiKey: process.env.DASHSCOPE_API_KEY,
// URL berikut untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda-beda tergantung wilayah.
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function main() {
// Konfigurasi tool MCP
// Ganti server_url dengan Titik Akhir SSE yang Anda peroleh dari platform seperti ModelScope
// Jika diperlukan autentikasi, tambahkan token dari platform terkait ke headers
const mcpTool = {
type: "mcp",
server_protocol: "sse",
server_label: "fetch",
server_description: "Fetch MCP Server yang menyediakan kemampuan web scraping. Dapat mengambil konten dari URL tertentu dan mengembalikannya sebagai teks.",
server_url: "https://mcp.api-inference.modelscope.net/xxx/sse",
};
const response = await openai.responses.create({
model: "qwen3.8-max",
input: "https://news.aibase.com/zh/news, what is the AI news today?",
tools: [mcpTool]
});
console.log("[Model Response]");
console.log(response.output_text);
console.log(`\n[Token Usage] Input: ${response.usage.input_tokens}, Output: ${response.usage.output_tokens}, Total: ${response.usage.total_tokens}`);
}
main();
# Ganti server_url dengan Titik Akhir SSE yang Anda peroleh dari platform seperti ModelScope
# Jika diperlukan autentikasi, tambahkan token dari platform terkait ke headers
# URL berikut untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda-beda tergantung wilayah.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"input": "https://news.aibase.com/zh/news, what is the AI news today?",
"tools": [
{
"type": "mcp",
"server_protocol": "sse",
"server_label": "fetch",
"server_description": "Fetch MCP Server yang menyediakan kemampuan web scraping. Dapat mengambil konten dari URL tertentu dan mengembalikannya sebagai teks.",
"server_url": "https://mcp.api-inference.modelscope.net/xxx/sse"
}
]
}'
Setelah menjalankan kode, respons berikut dikembalikan:
[Model Response]
Berdasarkan dokumentasi Model Context Protocol (MCP) di pusat bantuan Alibaba Cloud Model Studio (Bailian), model yang didukung adalah:
* Qwen Max:
* seri Qwen3.8-Max
* seri Qwen3.7-Max
* Qwen Plus:
* seri Qwen3.7-Plus
* seri Qwen3.6-Plus
* seri Qwen3.5-Plus
* Qwen Flash:
* seri Qwen3.7-Flash
* seri Qwen3.6-Flash
* seri Qwen3.5-Flash
* Seri Open Source Qwen3.6 (tidak termasuk qwen3.6-27b)
* Seri Open Source Qwen3.5
Catatan: Dokumentasi menyatakan bahwa MCP hanya didukung melalui Responses API (client.responses.create) dan bukan melalui API Chat Completions standar.
[Token Usage] Input: 20583, Output: 1638, Total: 22221
Output streaming
Pemanggilan tool MCP dapat melibatkan beberapa interaksi dengan layanan eksternal. Aktifkan streaming untuk mendapatkan hasil antara secara real-time.
import os
from openai import OpenAI
client = OpenAI(
# Jika tidak ada variabel lingkungan, gunakan: api_key="sk-xxx" (tidak disarankan).
api_key=os.getenv("DASHSCOPE_API_KEY"),
# URL berikut untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda-beda tergantung wilayah.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
# Ganti server_url dengan Titik Akhir SSE yang Anda peroleh dari platform seperti ModelScope
# Jika diperlukan autentikasi, tambahkan token dari platform terkait ke headers
mcp_tool = {
"type": "mcp",
"server_protocol": "sse",
"server_label": "fetch",
"server_description": "Fetch MCP Server yang menyediakan kemampuan web scraping. Dapat mengambil konten dari URL tertentu dan mengembalikannya sebagai teks.",
"server_url": "https://mcp.api-inference.modelscope.net/xxx/sse",
}
stream = client.responses.create(
model="qwen3.8-max",
input="https://news.aibase.com/zh/news, what is the AI news today?",
tools=[mcp_tool],
stream=True
)
for event in stream:
# Respons model dimulai
if event.type == "response.content_part.added":
print("[Model Response]")
# Output teks streaming
elif event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
# Respons selesai, tampilkan penggunaan
elif event.type == "response.completed":
usage = event.response.usage
print(f"\n\n[Token Usage] Input: {usage.input_tokens}, Output: {usage.output_tokens}, Total: {usage.total_tokens}")
import OpenAI from "openai";
import process from 'process';
const openai = new OpenAI({
// Jika tidak ada variabel lingkungan, gunakan: apiKey: "sk-xxx" (tidak disarankan).
apiKey: process.env.DASHSCOPE_API_KEY,
// URL berikut untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda-beda tergantung wilayah.
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function main() {
// Ganti server_url dengan Titik Akhir SSE yang Anda peroleh dari platform seperti ModelScope
// Jika diperlukan autentikasi, tambahkan token dari platform terkait ke headers
const mcpTool = {
type: "mcp",
server_protocol: "sse",
server_label: "fetch",
server_description: "Fetch MCP Server yang menyediakan kemampuan web scraping. Dapat mengambil konten dari URL tertentu dan mengembalikannya sebagai teks.",
"server_url": "https://mcp.api-inference.modelscope.net/xxx/sse",
};
const stream = await openai.responses.create({
model: "qwen3.8-max",
input: "https://news.aibase.com/zh/news, what is the AI news today?",
tools: [mcpTool],
stream: true
});
for await (const event of stream) {
// Respons model dimulai
if (event.type === "response.content_part.added") {
console.log("[Model Response]");
}
// Output teks streaming
else if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
// Respons selesai, tampilkan penggunaan
else if (event.type === "response.completed") {
const usage = event.response.usage;
console.log(`\n\n[Token Usage] Input: ${usage.input_tokens}, Output: ${usage.output_tokens}, Total: ${usage.total_tokens}`);
}
}
}
main();
# Ganti server_url dengan Titik Akhir SSE yang Anda peroleh dari platform seperti ModelScope
# Jika diperlukan autentikasi, tambahkan token dari platform terkait ke headers
# URL berikut untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda-beda tergantung wilayah.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"input": "https://news.aibase.com/zh/news, what is the AI news today?",
"tools": [
{
"type": "mcp",
"server_protocol": "sse",
"server_label": "fetch",
"server_description": "Fetch MCP Server yang menyediakan kemampuan web scraping. Dapat mengambil konten dari URL tertentu dan mengembalikannya sebagai teks.",
"server_url": "https://mcp.api-inference.modelscope.net/xxx/sse"
}
],
"stream": true
}'
Setelah menjalankan kode, respons berikut dikembalikan:
[Model Response]
Berdasarkan halaman dokumentasi MCP di Alibaba Cloud Model Studio, model berikut didukung:
* Seri Qwen Max: seri Qwen3.8-Max dan seri Qwen3.7-Max
* Seri Qwen Plus: seri Qwen3.7-Plus, seri Qwen3.6-Plus, dan seri Qwen3.5-Plus
* Seri Qwen Flash: seri Qwen3.7-Flash, seri Qwen3.6-Flash, dan seri Qwen3.5-Flash
* Seri Open Source Qwen3.6 (tidak termasuk qwen3.6-27b)
* Seri Open Source Qwen3.5
Catatan: Model-model ini hanya mendukung fungsionalitas MCP melalui Responses API.
[Token Usage] Input: 20472, Output: 945, Total: 21417
Parameter
Tool mcp mendukung parameter berikut:
| Contoh: |
Penagihan
Penagihan mencakup:
- Biaya inferensi model: Ditagih berdasarkan penggunaan token model.
- Biaya server MCP: Tunduk pada aturan penagihan masing-masing server MCP.