Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
MCP es el Protocolo de contexto de modelo, es un protocolo abierto diseñado para permitir que se agreguen funcionalidades adicionales a las aplicaciones de IA con facilidad, consulte la documentación para obtener más información. El kernel semántico permite agregar complementos desde un servidor MCP a los agentes. Esto resulta útil cuando desea usar complementos que están disponibles como un servidor MCP.
El kernel semántico admite varios tipos de complementos MCP, incluidos MCPStdioPlugin y MCPStreamableHttpPlugin. Estos complementos permiten conexiones tanto a servidores MCP locales como a servidores que se conectan mediante SSE sobre HTTPS.
Adición de complementos desde un servidor MCP local
Para agregar un servidor MCP en ejecución local, puede usar los comandos de MCP conocidos, como npx, docker o uvx, por lo que si desea ejecutar uno de ellos, asegúrese de que están instalados.
Por ejemplo, cuando examine la configuración de escritorio de Claude o el vscode settings.json, verá algo parecido a esto:
{
"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 que el mismo complemento esté disponible para el kernel o agente, lo haría:
Nota:
Asegúrese de instalar kernel semántico con el mcp adicional, por ejemplo:
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 servidor MCP basado en SSE es incluso más sencillo, ya que solo necesita la dirección 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
En ambos casos, el administrador de contexto asincrónico se usa para configurar la conexión y cerrarla, también puede hacerlo 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 los complementos MCP tienen opciones adicionales:
-
load_tools: si se cargan o no las herramientas desde el servidor MCP, esto resulta útil cuando sabe que no hay herramientas disponibles, el valor predeterminado es True. -
load_prompts: indica si se van a cargar o no las indicaciones del servidor MCP, esto resulta útil cuando sabe que no hay avisos disponibles, el valor predeterminado es True. También hemos oído casos en los que la llamada para cargar avisos se bloquea cuando no hay avisos, por lo que esta es una buena opción para configurarFalsesi sabe que no hay avisos disponibles. -
request_timeout: el tiempo de espera de las solicitudes al servidor MCP, esto resulta útil cuando sabe que el servidor a veces no responde y no quiere que la aplicación se bloquee.
Nota:
La documentación de MCP estará disponible próximamente para .Net.
Nota:
La documentación de MCP estará disponible próximamente para Java.