Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
MCP adalah Protokol Konteks Model, ini adalah protokol terbuka yang dirancang untuk memungkinkan kemampuan tambahan ditambahkan ke aplikasi AI dengan mudah, lihat dokumentasi untuk informasi selengkapnya. Semantic Kernel memungkinkan Anda menambahkan plugin dari McP Server ke agen Anda. Ini berguna ketika Anda ingin menggunakan plugin yang tersedia sebagai Server MCP.
Semantic Kernel mendukung Server MCP lokal, melalui Stdio, atau server yang terhubung melalui SSE melalui HTTPS.
Menambahkan plugin dari Server MCP lokal
Untuk menambahkan server MCP yang berjalan secara lokal, Anda dapat menggunakan perintah MCP yang sudah dikenal, seperti npx
, docker
atau uvx
, jadi jika Anda ingin menjalankan salah satu dari mereka, pastikan itu diinstal.
Misalnya ketika Anda melihat konfigurasi desktop claude Anda, atau vscode settings.json, Anda akan melihat sesuatu seperti ini:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "..."
}
}
}
}
Untuk membuat plugin yang sama tersedia untuk kernel atau agen Anda, Anda akan melakukan ini:
Nota
Pastikan untuk menginstal Semantic Kernel dengan mcp
tambahan, misalnya:
pip install semantic-kernel[mcp]
import os
from semantic_kernel import Kernel
from semantic_kernel.connectors.mcp import MCPStdioPlugin
async def main():
async with MCPStdioPlugin(
name="Github",
description="Github Plugin",
command="docker",
args=["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
env={"GITHUB_PERSONAL_ACCESS_TOKEN": os.getenv("GITHUB_PERSONAL_ACCESS_TOKEN")},
) as github_plugin:
kernel = Kernel()
kernel.add_plugin(github_plugin)
# Do something with the kernel
Server MCP berbasis SSE bahkan lebih sederhana karena hanya membutuhkan URL:
import os
from semantic_kernel import Kernel
from semantic_kernel.connectors.mcp import MCPSsePlugin
async def main():
async with MCPSsePlugin(
name="Github",
description="Github Plugin",
url="http://localhost:8080",
) as github_plugin:
kernel = Kernel()
kernel.add_plugin(github_plugin)
# Do something with the kernel
Dalam kedua kasus, manajer konteks asinkron digunakan untuk mengatur koneksi dan menutupnya, Anda juga dapat melakukan ini secara manual:
import os
from semantic_kernel import Kernel
from semantic_kernel.connectors.mcp import MCPSsePlugin
async def main():
plugin = MCPSsePlugin(
name="Github",
description="Github Plugin",
url="http://localhost:8080",
)
await plugin.connect()
kernel = Kernel()
kernel.add_plugin(github_plugin)
# Do something with the kernel
await plugin.close()
Semua plugin MCP memiliki opsi tambahan:
-
load_tools
: Apakah memuat alat dari server MCP atau tidak, ini berguna ketika Anda tahu tidak ada alat yang tersedia, defaultnya adalah True. -
load_prompts
: Apakah memuat perintah dari server MCP atau tidak, ini berguna ketika Anda tahu tidak ada perintah yang tersedia, defaultnya adalah True. Kami juga telah mendengar kasus di mana panggilan untuk memuat prompt macet ketika tidak ada prompt, jadi ini adalah opsi yang baik untuk diatur keFalse
jika kita tahu tidak ada prompt yang tersedia. -
request_timeout
: Waktu habis untuk permintaan ke server MCP, ini berguna ketika Anda tahu server terkadang tidak merespons, dan Anda tidak ingin aplikasi Anda macet.
Nota
Dokumentasi MCP akan segera hadir untuk .Net.
Nota
Dokumentasi MCP akan segera hadir untuk Java.