Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
MCP é o Model Context Protocol, é um protocolo aberto que é projetado para permitir que recursos adicionais sejam adicionados a aplicativos de IA com facilidade, consulte a documentação para obter mais informações. O Kernel Semântico permite que você adicione plugins de um Servidor MCP aos seus agentes. Isso é útil quando você deseja usar plug-ins que são disponibilizados como um servidor MCP.
O Semantic Kernel suporta vários tipos de plug-ins MCP, incluindo MCPStdioPlugin e MCPStreamableHttpPlugin. Esses plug-ins permitem conexões com servidores MCP locais e servidores que se conectam por meio de SSE sobre HTTPS.
Adicionar plug-ins de um servidor MCP local
Para adicionar um servidor MCP em execução local, você pode usar os comandos MCP familiares, como npx, docker ou uvx, portanto, se quiser executar um deles, verifique se eles estão instalados.
Por exemplo, quando tu analisas a tua configuração de área de trabalho do claude, ou o vscode settings.json, verias algo como isto:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "..."
}
}
}
}
Para tornar o mesmo plugin disponível para o seu kernel ou agente, você faria o seguinte:
Observação
Certifique-se de instalar o Semantic Kernel com o mcp extra, por exemplo:
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
Um servidor MCP baseado em SSE é ainda mais simples, pois só precisa da 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
Em ambos os casos, o gerenciador de contexto assíncrono é usado para configurar a conexão e fechá-la, você também pode fazer isso 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()
Todos os plugins MCP têm opções adicionais:
-
load_tools: Se deve ou não carregar as ferramentas do servidor MCP, isso é útil quando você sabe que não há ferramentas disponíveis, o padrão é True. -
load_prompts: Se deve ou não carregar os prompts do servidor MCP, isso é útil quando você sabe que não há prompts disponíveis, o padrão é True. Também ouvimos casos em que a chamada para carregar os prompts bloqueia quando não há nenhum disponível; portanto, se souber que não há prompts disponíveis, é uma boa opção definir paraFalse. -
request_timeout: O tempo limite para as solicitações para o servidor MCP, isso é útil quando você sabe que o servidor às vezes não está respondendo e não deseja que seu aplicativo trave.
Observação
A documentação do MCP estará disponível em breve para o .Net.
Observação
A documentação do MCP estará disponível em breve para Java.