Megosztás:


Beépülő modulok hozzáadása MCP-kiszolgálóról

Az MCP a Model Context Protocol, amely egy nyílt protokoll, amely lehetővé teszi további képességek hozzáadását az AI-alkalmazásokhoz könnyedén, további információkért tekintse meg a dokumentációt . A Szemantic Kernel lehetővé teszi beépülő modulok hozzáadását egy MCP-kiszolgálóról az ügynökökhöz. Ez akkor hasznos, ha MCP-kiszolgálóként elérhető beépülő modulokat szeretne használni.

A Szemantic Kernel több MCP beépülő modultípust is támogat, beleértve az MCPStdioPlugin és az MCPStreamableHttpPlugin beépülő modult. Ezek a beépülő modulok lehetővé teszik a kapcsolatot a helyi MCP-kiszolgálókhoz és a HTTPS-en keresztül csatlakozó kiszolgálókhoz.

Beépülő modulok hozzáadása helyi MCP-kiszolgálóról

Helyileg futó MCP-kiszolgáló hozzáadásához használhatja a jól ismert MCP-parancsokat, például npx, docker vagy uvx, ezért ha ezek egyikét szeretné futtatni, győződjön meg arról, hogy telepítve vannak.

Ha például a claude desktop konfigurációját vagy a vscode settings.jsonvizsgálja meg, az alábbihoz hasonlót fog látni:

{
    "mcpServers": {
        "github": {
           "command": "docker",
           "args": [
                 "run",
                 "-i",
                 "--rm",
                 "-e",
                 "GITHUB_PERSONAL_ACCESS_TOKEN",
                 "ghcr.io/github/github-mcp-server"
           ],
           "env": {
                 "GITHUB_PERSONAL_ACCESS_TOKEN": "..."
           }
        }
    }
}

Annak érdekében, hogy ugyanazt a beépülő modult elérhetővé tegye a kernel vagy az ügynök számára, a következőt kell tennie:

Megjegyzés:

Győződjön meg arról, hogy telepíti a Szemantic Kernelt a mcp kiegészítővel, például:

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

Az SSE-alapú MCP-kiszolgáló még egyszerűbb, mivel csak az URL-címre van szüksége:

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

Mindkét esetben az aszinkron környezetkezelőt használja a kapcsolat beállításához és bezárásához, ezt manuálisan is megteheti:

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()

Az összes MCP plugin további opciókat kínál.

  • load_tools: Függetlenül attól, hogy az MCP-kiszolgálóról szeretné-e betölteni az eszközöket, ez akkor hasznos, ha tudja, hogy nincsenek elérhető eszközök, az alapértelmezett érték igaz.
  • load_prompts: Függetlenül attól, hogy az MCP-kiszolgálóról szeretné-e betölteni az utasításokat, ez akkor hasznos, ha tudja, hogy nincsenek elérhető kérések, az alapértelmezett érték Igaz. Olyan eseteket is hallottunk, amikor a betöltésre irányuló hívás lefagy, ha nincsenek utasítások, tehát ez egy jó lehetőség, hogy False-ra állítsa, ha biztos abban, hogy nincsenek elérhető utasítások.
  • request_timeout: Az MCP-kiszolgálónak küldött kérések időtúllépése, ez akkor hasznos, ha tudja, hogy a kiszolgáló néha nem válaszol, és nem szeretné, hogy az alkalmazás lefagyjon.

Megjegyzés:

Az MCP dokumentációja hamarosan elérhető a .Net-hez.

Megjegyzés:

Az MCP dokumentációja hamarosan elérhető a Java számára.