หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Model Context Protocol (MCP) เป็นมาตรฐานที่เกิดขึ้นใหม่ในภูมิทัศน์ AI ที่ช่วยให้ระบบ AI สามารถเชื่อมต่อกับเครื่องมือและข้อมูลภายนอกตัวเองได้ กําหนดวิธีที่โมเดล AI สามารถค้นพบสิ่งที่พร้อมใช้งานและโต้ตอบกับโมเดลนั้นในลักษณะที่สอดคล้องกัน แทนที่จะสร้างการผสานรวมแบบครั้งเดียว MCP เสนอวิธีมาตรฐานในการเสียบสิ่งต่าง ๆ ที่ใช้งานได้กับแอปและบริการต่างๆ แนวทางนี้ช่วยให้ระบบ AI ก้าวไปไกลกว่าความรู้ในตัวได้ง่ายขึ้นมากในขณะที่รักษาสิ่งต่าง ๆ ให้สอดคล้องกัน นอกจากนี้ยังช่วยให้ทีมเคลื่อนที่ได้เร็วขึ้น เนื่องจากพวกเขาไม่จําเป็นต้องคิดค้นการเชื่อมต่อเดิมใหม่ทุกครั้ง
MCP มีสองส่วนหลัก: ไคลเอนต์และเซิร์ฟเวอร์
ไคลเอ็นต์ MCP คือแอปหรือประสบการณ์ที่ผู้ใช้โต้ตอบด้วย เป็นที่ที่คุณถามคําถามหรือกระตุ้นการกระทํา ไคลเอ็นต์ติดต่อเซิร์ฟเวอร์ MCP เพื่อค้นหาเครื่องมือและใช้งาน ตัวอย่างเช่น Visual Studio Code สามารถทําหน้าที่เป็นไคลเอ็นต์ MCP เมื่อเชื่อมต่อกับเครื่องมือภายนอกเพื่อดึงข้อมูล หรือช่วยคุณเขียนและเรียกใช้โค้ด
เซิร์ฟเวอร์ MCP แสดงเครื่องมือ ข้อมูล หรือบริการเพื่อให้ไคลเอ็นต์สามารถใช้งานได้ มันบอกลูกค้าว่ามีอะไรบ้างและใช้งานอย่างไร ตัวอย่างเช่น ตัวแทนข้อมูล Fabric สามารถทําหน้าที่เป็นเซิร์ฟเวอร์ MCP ได้โดยการเปิดเผยข้อมูลองค์กรและคิวรีที่ระบบ AI สามารถใช้ได้
ไคลเอ็นต์และเซิร์ฟเวอร์ร่วมกันทําให้ง่ายต่อการเชื่อมต่อระบบ AI กับข้อมูลและการดําเนินการจริงโดยไม่ต้องสร้างการผสานรวมแบบกําหนดเองทุกครั้ง
สําคัญ
คุณลักษณะนี้อยู่ในแสดงตัวอย่าง
สําคัญ
เมื่อคุณใช้ตัวแทนข้อมูล Fabric เป็นเซิร์ฟเวอร์ MCP การตอบกลับที่ส่งคืนโดยตัวแทนข้อมูลอาจถูกส่งออกไปนอกขอบเขตการปฏิบัติตามข้อกําหนดหรือภูมิภาคทางภูมิศาสตร์ของ Fabric และประมวลผลหรือจัดเก็บตามข้อกําหนดและนโยบายการจัดการข้อมูลของไคลเอ็นต์ MCP ที่คุณใช้
ข้อกําหนดเบื้องต้น
- ความจุ ความจุ Fabric F2 หรือสูงกว่า หรือความจุ Power BI Premium ต่อความจุ (P1 หรือสูงกว่า) ที่เปิดใช้งาน Microsoft Fabric
- การประมวลผลข้ามภูมิศาสตร์และการจัดเก็บข้ามภูมิศาสตร์สําหรับการเปิดใช้งาน AI ตามข้อกําหนดในการตั้งค่าผู้เช่าตัวแทนข้อมูล Fabric
- แหล่งข้อมูลอย่างน้อยหนึ่งแหล่งข้อมูลที่มีข้อมูล: คลังสินค้า เลคเฮาส์ แบบจําลองความหมายของ Power BI ฐานข้อมูล KQL ฐานข้อมูลมิเรอร์ หรือออนโทโลยี คุณต้องมีสิทธิ์อ่านแหล่งข้อมูล
- ตัวแทนข้อมูลที่เผยแพร่ เซิร์ฟเวอร์ MCP จะทํางานหลังจากที่คุณเผยแพร่ตัวแทนข้อมูลแล้วเท่านั้น สําหรับข้อมูลเพิ่มเติม ดูสร้างตัวแทนข้อมูล Fabric
วิธีการทำงาน
ตัวแทนข้อมูล Fabric ที่เผยแพร่จะแสดงเครื่องมือ MCP เดียว เครื่องมือนั้นแสดงถึงตัวแทนข้อมูลเอง ดังนั้นไคลเอ็นต์ MCP จึงส่งคําถามไปยังเครื่องมือและรับคําตอบกลับมาซึ่งมีพื้นฐานมาจากข้อมูลที่ตัวแทนข้อมูลสามารถเข้าถึงได้ใน Fabric OneLake
เนื่องจากไคลเอ็นต์ตัดสินใจว่าจะเรียกใช้เครื่องมือเมื่อใด คําอธิบายตัวแทนข้อมูลจึงมีความสําคัญ เมื่อคุณเผยแพร่ตัวแทนข้อมูล คําอธิบายของตัวแทนข้อมูลจะกลายเป็นคําอธิบายเครื่องมือที่เซิร์ฟเวอร์ MCP โฆษณา ลูกค้าและผู้ประสานงานจะอ่านคําอธิบายนั้นเพื่อตัดสินใจว่าจะโทรหาตัวแทนข้อมูลเมื่อใดและอย่างไร ดังนั้นให้เขียนคําอธิบายที่ชัดเจนและเฉพาะเจาะจงซึ่งอธิบายสิ่งที่ตัวแทนรู้และประเภทของคําถามที่สามารถตอบได้
คุณสามารถใช้เซิร์ฟเวอร์ MCP ของตัวแทนข้อมูลจากไคลเอ็นต์ MCP ใดก็ได้ ไม่ใช่แค่เครื่องมือหรือเครื่องมือแก้ไขเพียงเครื่องมือเดียว ตราบใดที่ลูกค้าของคุณพูด MCP ผ่าน HTTP ที่สตรีมได้ และสามารถแนบโทเค็นผู้ถือ Fabric ที่ถูกต้องกับคําขอได้ ก็สามารถเชื่อมต่อได้ ส่วนที่ตามมาแสดงไคลเอ็นต์สองตัว: สคริปต์ Python และ Visual Studio Code ปลายทางเดียวกันและโทเค็นเดียวกันใช้ได้กับไคลเอ็นต์ MCP อื่นๆ ที่คุณสร้างหรือนํามาใช้
อะไรก็ตามที่พูดคุยกับเซิร์ฟเวอร์ MCP จะต้องพูด MCP ดังนั้นตามคําจํากัดความจะทําหน้าที่เป็นไคลเอนต์ MCP คําว่า "ไคลเอ็นต์ MCP" ไม่ได้หมายถึงผลิตภัณฑ์หรือ SDK ที่เฉพาะเจาะจง หมายถึงรหัสใด ๆ ที่เป็นไปตามโปรโตคอล ตําแหน่งข้อมูลไม่ใช่ REST API ธรรมดาที่คุณสามารถส่งคําขอโดยอําเภอใจได้ การเชื่อมต่อเป็นไปตามโฟลว์ข้อความ MCP: initialize การจับ tools/list มือ การโทรเพื่อค้นหาเครื่องมือ และการ tools/call ร้องขอให้ถามคําถาม SDK เช่น MCP Python SDK จะจัดการโฟลว์นั้นให้คุณ แต่คุณยังสามารถนําไปใช้ด้วยตนเองผ่าน HTTP ธรรมดาได้ตราบใดที่คําขอของคุณเป็นไปตามโปรโตคอล ไคลเอ็นต์ HTTP ทั่วไปที่ข้ามรูปแบบการจับมือและข้อความจะไม่ทํางาน
Note
เซิร์ฟเวอร์ MCP ของตัวแทนข้อมูลไม่รองรับการลงทะเบียนไคลเอ็นต์แบบไดนามิก ไคลเอ็นต์ของคุณไม่สามารถลงทะเบียนตัวเองและรับข้อมูลประจําตัวโดยอัตโนมัติผ่านโปรโตคอล แต่คุณจะได้รับโทเค็น Fabric ผ่านขั้นตอนการรับรองความถูกต้องของคุณเอง และแนบโทเค็นนั้นกับแต่ละคําขอ ดังที่แสดงในตัวอย่างในบทความนี้
ดูรายละเอียดเซิร์ฟเวอร์ MCP
หลังจากที่คุณเผยแพร่ตัวแทนข้อมูลแล้ว ให้เปิดการตั้งค่าและไปที่แท็บโปรโตคอลบริบทแบบจําลอง แท็บนี้แสดง:
- ชื่อเซิร์ฟเวอร์ MCP ของตัวแทนข้อมูล
- URL ของเซิร์ฟเวอร์ MCP (คัดลอกค่านี้ คุณใช้ค่านี้ในทุกไคลเอ็นต์)
- ชื่อเครื่องมือ MCP ของตัวแทนข้อมูล
- คําอธิบายเครื่องมือเซิร์ฟเวอร์ MCP
คุณยังสามารถดาวน์โหลดไฟล์ mcp.json จากแท็บนี้เพื่อกําหนดค่าไคลเอ็นต์ที่อ่านรูปแบบนั้น เช่น Visual Studio Code
คุณยังสามารถสร้าง URL ด้วยตัวเองได้จาก ID พื้นที่ทํางานและ ID ตัวแทนข้อมูลของคุณ:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| ตัวกำหนดตำแหน่ง | คำอธิบาย |
|---|---|
{WorkspaceId} |
รหัสของพื้นที่ทํางาน Fabric ที่มีตัวแทนข้อมูล |
{DataAgentId} |
รหัสของตัวแทนข้อมูลที่เผยแพร่ |
URL ที่สร้างขึ้นด้วยตนเองจะทํางานหลังจากที่คุณเผยแพร่ตัวแทนข้อมูลแล้วเท่านั้น หากตัวแทนไม่ได้เผยแพร่ ปลายทางจะส่งคืนข้อผิดพลาดแม้ว่า URL จะถูกต้องก็ตาม
การรับรองความถูกต้อง
ทุกคําขอไปยังปลายทาง MCP ต้องได้รับการรับรองความถูกต้องกับ Fabric ไคลเอ็นต์ของคุณแนบโทเค็นผู้ถือในส่วน Authorization หัว และโทเค็นต้องมีสิทธิ์เข้าถึงพื้นที่ทํางานเป้าหมายและตัวแทนข้อมูล โทเค็นสามารถแสดงข้อมูลประจําตัวของผู้ใช้หรือบริการหลักก็ได้
วิธีรับโทเค็นขึ้นอยู่กับลูกค้าของคุณ Visual Studio Code พร้อมท์ให้คุณลงชื่อเข้าใช้แบบโต้ตอบ ในสคริปต์ Python คุณจะได้รับโทเค็นผ่านไลบรารี เช่น azure-identity และเพิ่มลงในส่วนหัวของคําขอด้วยตัวคุณเอง ไม่ว่าไคลเอ็นต์จะเป็นอย่างไร ให้ขอโทเค็นสําหรับ https://api.fabric.microsoft.com/.default ขอบเขต
เชื่อมต่อจาก Python
ตัวอย่างนี้เชื่อมต่อกับตําแหน่งข้อมูล MCP ของตัวแทนข้อมูลจากสคริปต์ Python แบบสแตนด์อโลน ค้นพบเครื่องมือ ส่งคําถาม และพิมพ์คําตอบ ใช้ MCP Python SDK และazure-identityไลบรารี
ข้อกําหนดเบื้องต้นสําหรับไคลเอ็นต์ Python
- Python 3.10 หรือใหม่กว่า
- แพคเกจและ
mcpazure-identity - วิธีลงชื่อเข้าใช้ Fabric ตัวอย่างนี้ใช้ Azure CLI ติดตั้ง Azure CLI จากนั้นเรียกใช้
az loginและลงชื่อเข้าใช้ด้วยบัญชีที่มีสิทธิ์เข้าถึงพื้นที่ทํางานและตัวแทนข้อมูล
ติดตั้งแพ็คเกจ:
pip install mcp azure-identity
สร้างไคลเอ็นต์ทีละขั้นตอน
ส่วนต่อไปนี้จะสร้างสคริปต์ทีละชิ้น แต่ละบล็อกจะยังคงเป็นไฟล์เดียวกัน คุณจึงสามารถวางตามลําดับลงในไฟล์เดียว .py และเรียกใช้ได้
นําเข้าไลบรารีและตั้งค่าของคุณ แทนที่ ID พื้นที่ทํางาน ID ตัวแทนข้อมูล และคําถามด้วยค่าของคุณเอง
mcp_urlต่อไปนี้เป็นรูปแบบปลายทางที่อธิบายไว้ก่อนหน้านี้
import asyncio
from azure.identity import AzureCliCredential
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
workspace_id = "<your-workspace-id>"
data_agent_id = "<your-data-agent-id>"
question = "<your question>"
mcp_url = (
f"https://api.fabric.microsoft.com/v1/mcp/workspaces/{workspace_id}"
f"/dataagents/{data_agent_id}/agent"
)
รับโทเค็นและสร้างส่วนหัวการตรวจสอบสิทธิ์
AzureCliCredential ใช้การลงชื่อเข้าใช้ซ้ําจาก az login. ตัวช่วยร้องขอโทเค็นสําหรับขอบเขต Fabric และส่งคืนเป็นAuthorizationส่วนหัวที่ทุกคําขอมีอยู่
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
เปิดการเชื่อมต่อ ค้นพบเครื่องมือ และถามคําถาม ฟังก์ชันนี้จะเปิดการเชื่อมต่อ HTTP ที่สตรีมได้ด้วยส่วนหัวของการตรวจสอบสิทธิ์ เรียกใช้การจับมือ MCP ด้วย initializeแสดงรายการเครื่องมือ และอ่านเครื่องมือเดียวที่ตัวแทนข้อมูลเปิดเผย ค้นหาชื่อของอาร์กิวเมนต์คําถามจากสคีมาอินพุตของเครื่องมือ ดังนั้นคุณจึงไม่ต้องฮาร์ดโค้ด จากนั้นเรียกใช้เครื่องมือและรวบรวมข้อความจากการตอบกลับ
async def query_data_agent(question):
headers = get_auth_headers()
async with streamablehttp_client(mcp_url, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# The data agent exposes a single tool. Discover it, then call it.
tools = await session.list_tools()
tool = tools.tools[0]
question_arg = next(iter(tool.inputSchema["properties"]))
result = await session.call_tool(tool.name, {question_arg: question})
answers = [block.text for block in result.content if block.type == "text"]
return "\n".join(answers)
เรียกใช้และพิมพ์คําตอบ
query_data_agent เป็นโครูทีน ดังนั้นจึง asyncio.run ขับเคลื่อนให้เสร็จสมบูรณ์และส่งคืนผลลัพธ์
answer = asyncio.run(query_data_agent(question))
print(answer)
เนื่องจากสคริปต์อ่านเครื่องมือแรกที่เซิร์ฟเวอร์โฆษณาและค้นหาอาร์กิวเมนต์คําถามจากสคีมาอินพุตของเครื่องมือ สคริปต์จึงยังคงทํางานต่อไปแม้ว่าชื่อเครื่องมือหรือชื่ออาร์กิวเมนต์จะเปลี่ยนไปก็ตาม คุณไม่จําเป็นต้องฮาร์ดโค้ดค่าใดค่าหนึ่ง
Tip
AzureCliCredentialอ่านการลงชื่อเข้าใช้ที่คุณสร้างขึ้นด้วยaz login เมื่อต้องการเรียกใช้แบบอัตโนมัติ, เช่นในบริการหรืองาน, ใช้ข้อมูลประจําตัวของบริการหลักแทน, ตัวอย่างเช่น ClientSecretCredential หรือ DefaultAzureCredential. ส่วนที่เหลือของโค้ดยังคงเหมือนเดิม
เชื่อมต่อจาก Visual Studio Code
Visual Studio Code สามารถทําหน้าที่เป็นไคลเอ็นต์ MCP ได้ ขั้นตอนต่อไปนี้จะเพิ่มเซิร์ฟเวอร์ MCP ของตัวแทนข้อมูลและถามคําถามจากเครื่องมือแก้ไข ขั้นตอนเหล่านี้เป็นตัวอย่างหนึ่ง ปลายทางและโทเค็นเป็นแบบเดียวกับที่ไคลเอนต์ MCP รายอื่นใช้
เพิ่มเซิร์ฟเวอร์ MCP
เปิด Visual Studio Code และเลือกโฟลเดอร์ที่จะทํางาน
สร้างโฟลเดอร์ .vscode ในโฟลเดอร์ที่เลือก
ภายใน .vscode ให้สร้างไฟล์ชื่อ
mcp.json.Visual Studio Code แสดงปุ่ม เพิ่มเซิร์ฟเวอร์ สีน้ําเงิน ที่ด้านล่างขวาของหน้าต่าง
เลือก เพิ่มเซิร์ฟเวอร์ แล้วเลือก HTTP เมื่อได้รับแจ้งให้ใส่ URL ให้วาง URL ของเซิร์ฟเวอร์ MCP ที่คัดลอกไว้ก่อนหน้านี้
กด Enter และระบุชื่อสําหรับเซิร์ฟเวอร์ Visual Studio Code ใช้ชื่อนี้เพื่อแสดงเซิร์ฟเวอร์
Visual Studio Code พยายามรับรองความถูกต้อง เลือก อนุญาต และลงชื่อเข้าใช้ด้วยข้อมูลประจําตัวของคุณ
เซิร์ฟเวอร์ถูกสร้างขึ้น
เปิดใช้งานโหมดตัวแทน
หลังจากที่คุณเพิ่มเซิร์ฟเวอร์ ให้เปิดใช้งานโหมดตัวแทนเพื่อให้ Visual Studio Code สามารถกําหนดเส้นทางคําถามของคุณไปยังตัวแทนข้อมูล:
เปิด ชุดคําสั่ง (Ctrl+Shift+P หรือ cmd+Shift+P)
ค้นหา เปิดใช้งานโหมดตัวแทน และเลือก
ยืนยันข้อความแจ้งเพื่อเปิดใช้งานโหมด
เมื่อโหมดตัวแทนทํางานอยู่ ให้เลือกผู้ประสานงานเพื่อจัดการกับคําถามของคุณ ผู้ประสานจัดการจะจัดการโฟลว์ระหว่างคําถามของคุณในเครื่องมือแก้ไขและเซิร์ฟเวอร์ MCP ของตัวแทนข้อมูล ผู้ประสานงานที่มีอยู่ในการแสดงตัวอย่าง ได้แก่ GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro และอื่นๆ
ถามคําถาม
เมื่อเปิดโหมดตัวแทนและเลือกผู้ประสานงาน ให้ถามคําถามโดยตรงจากตัวแก้ไข ผู้ประสานงานกําหนดเส้นทางคําถามแต่ละข้อไปยังเซิร์ฟเวอร์ MCP ของตัวแทนข้อมูล และตัวแทนจะส่งคืนคําตอบที่มีพื้นฐานมาจากข้อมูลที่สามารถเข้าถึงได้ใน OneLake คุณอยู่ในตัวแก้ไขในขณะที่คุณนําความรู้ขององค์กรมาสู่เวิร์กโฟลว์ AI ของคุณ
เนื้อหาที่เกี่ยวข้อง
- สร้างตัวแทนข้อมูล Fabric
- ตัวแทนข้อมูล Fabric Python SDK
- Fabric การตั้งค่าผู้เช่าตัวแทนข้อมูล