Sdílet prostřednictvím


Přidat plug-iny ze serveru MCP

MCP je model Context Protocol, jedná se o otevřený protokol, který je navržený tak, aby umožňoval snadné přidání dalších funkcí do aplikací AI. Další informace najdete v dokumentaci . Sémantické jádro vám umožňuje přidávat pluginy ze serveru MCP do vašich agentů. To je užitečné, když chcete použít moduly plug-in, které jsou zpřístupněny jako server MCP.

Sémantické jádro podporuje více typů modulů plug-in MCP, včetně MCPStdioPlugin a MCPStreamableHttpPlugin. Tyto moduly plug-in umožňují připojení k místním serverům MCP i serverům, které se připojují přes protokol SSE přes HTTPS.

Přidejte plug-iny z místního serveru MCP

Pokud chcete přidat místně spuštěný server MCP, můžete použít známé příkazy MCP, například npx, docker nebo uvx, takže pokud chcete spustit některý z těchto příkazů, ujistěte se, že jsou nainstalované.

Například když se podíváte na konfiguraci vaší pracovní plochy claude nebo vscode settings.json, zobrazí se něco takového:

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

Pokud chcete, aby byl stejný plugin dostupný pro vaše jádro nebo agenta, udělejte následující:

Poznámka:

Nezapomeňte nainstalovat sémantické jádro s mcp extra, například:

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 založený na SSE je ještě jednodušší, protože potřebuje jenom adresu 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

V obou případech se správce asynchronního kontextu používá k nastavení připojení a jeho zavření, můžete to provést také ručně:

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

Všechny moduly plug-in MCP mají další možnosti:

  • load_tools: Zda načíst nástroje ze serveru MCP nebo ne, to je užitečné, když víte, že nejsou dostupné žádné nástroje, výchozí hodnota je True.
  • load_prompts: Zda načíst nebo nenačíst výzvy ze serveru MCP; to je užitečné, pokud víte, že nejsou k dispozici žádné výzvy. Výchozí hodnota je True. Zaznamenali jsme také případy, kdy volání k načtení výzev přestane reagovat, když nejsou k dispozici žádné výzvy, takže je dobré nastavit na False, pokud víte, že nejsou k dispozici žádné výzvy.
  • request_timeout: Časový limit pro požadavky na server MCP je užitečný, když víte, že server někdy nereaguje, a nechcete, aby se vaše aplikace zablokovala.

Poznámka:

Dokumentace MCP připravujeme pro .Net.

Poznámka:

Dokumentace MCP připravujeme pro Javu.