Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
MCP è il protocollo di contesto del modello, è un protocollo aperto progettato per consentire l'aggiunta di funzionalità aggiuntive alle applicazioni di intelligenza artificiale con facilità, vedere la documentazione per altre informazioni. Il kernel semantico consente di aggiungere plug-in da un server MCP agli agenti. Questo è utile quando si desidera usare plugin resi disponibili come server MCP.
Il kernel semantico supporta entrambi i server MCP locali, tramite Stdio o server che si connettono tramite SSE tramite HTTPS.
Aggiungere plugin da un server MCP locale
Per aggiungere un server MCP in esecuzione in locale, è possibile usare i comandi MCP noti, ad esempio npx
, docker
o uvx
, quindi se si vuole eseguire uno di questi, assicurarsi che siano installati.
Ad esempio, quando si esamina la configurazione del desktop claude o il vscode settings.json, viene visualizzato un aspetto simile al seguente:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "..."
}
}
}
}
Per rendere disponibile lo stesso plug-in per il kernel o l'agente, eseguire questa operazione:
Annotazioni
Assicurarsi di installare Semantic Kernel con l'optional mcp
, ad esempio:
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
Un server MCP basato su SSE è ancora più semplice perché richiede solo l'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
In entrambi i casi, la gestione del contesto asincrona viene usata per configurare la connessione e chiuderla, è anche possibile eseguire questa operazione manualmente:
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()
Tutti i plug-in MCP hanno opzioni aggiuntive:
-
load_tools
: indica se caricare o meno gli strumenti dal server MCP, ciò è utile quando si sa che non sono disponibili strumenti, il valore predefinito è True. -
load_prompts
: indica se caricare o meno le richieste dal server MCP, ciò è utile quando si sa che non sono disponibili richieste, il valore predefinito è True. Abbiamo anche sentito casi in cui la chiamata per caricare i prompt si blocca quando non ci sono richieste, quindi questa è una buona opzione per impostare suFalse
se si sa che non sono disponibili richieste. -
request_timeout
: timeout per le richieste al server MCP, utile quando si sa che il server a volte non risponde e non si vuole che l'app si blocchi.
Annotazioni
La documentazione MCP sarà presto disponibile per .Net.
Annotazioni
La documentazione MCP sarà presto disponibile per Java.