Criar modelos de prompt e fluxos de trabalho reutilizáveisOs prompts permitem que os servidores definam modelos de prompt e fluxos de trabalho reutilizáveis que os clientes podem facilmente apresentar aos usuários e LLMs. Eles fornecem uma maneira poderosa de padronizar e compartilhar interações comuns de LLM.Os prompts são projetados para serem controlados pelo usuário, o que significa que são expostos dos servidores aos clientes com a intenção de que o usuário possa selecioná-los explicitamente para uso.Os prompts no MCP são modelos predefinidos que podem:Aceitar argumentos dinâmicos
Incluir contexto de recursos
Encadeamento de múltiplas interações
Guiar fluxos de trabalho específicos
Superfície como elementos da interface do usuário (como comandos de barra)
Cada prompt é definido com:Os clientes podem descobrir prompts disponíveis através do endpoint prompts/list
:Para usar um prompt, os clientes fazem uma solicitação prompts/get
:Os prompts podem ser dinâmicos e incluir:{
"name": "analyze-project",
"description": "Analisar logs e código do projeto",
"arguments": [
{
"name": "timeframe",
"description": "Período de tempo para analisar os logs",
"required": true
},
{
"name": "fileUri",
"description": "URI do arquivo de código para revisar",
"required": true
}
]
}
Ao lidar com a solicitação prompts/get
:{
"messages": [
{
"role": "user",
"content": {
"type": "text",
"text": "Analise estes logs do sistema e o arquivo de código para quaisquer problemas:"
}
},
{
"role": "user",
"content": {
"type": "resource",
"resource": {
"uri": "logs://recent?timeframe=1h",
"text": "[2024-03-14 15:32:11] ERROR: Connection timeout in network.py:127\n[2024-03-14 15:32:15] WARN: Retrying connection (attempt 2/3)\n[2024-03-14 15:32:20] ERROR: Max retries exceeded",
"mimeType": "text/plain"
}
}
},
{
"role": "user",
"content": {
"type": "resource",
"resource": {
"uri": "file:///path/to/code.py",
"text": "def connect_to_service(timeout=30):\n retries = 3\n for attempt in range(retries):\n try:\n return establish_connection(timeout)\n except TimeoutError:\n if attempt == retries - 1:\n raise\n time.sleep(5)\n\ndef establish_connection(timeout):\n # Connection implementation\n pass",
"mimeType": "text/x-python"
}
}
}
]
}
Aqui está um exemplo completo de implementação de prompts em um servidor MCP:1.
Use nomes de prompt claros e descritivos
2.
Forneça descrições detalhadas para prompts e argumentos
3.
Valide todos os argumentos obrigatórios
4.
Lidar com argumentos ausentes com elegância
5.
Considere o versionamento para modelos de prompt
6.
Armazene em cache o conteúdo dinâmico quando apropriado
7.
Implemente o tratamento de erros
8.
Documente os formatos de argumento esperados
9.
Considere a composibilidade do prompt
10.
Teste os prompts com várias entradas
Os prompts podem ser exibidos nas interfaces do usuário do cliente como:Itens de menu de contexto
Entradas da paleta de comandos
Fluxos de trabalho guiados
Os servidores podem notificar os clientes sobre alterações de prompt:1.
Capacidade do servidor: prompts.listChanged
2.
Notificação: notifications/prompts/list_changed
3.
O cliente busca novamente a lista de prompts
Valide todos os argumentos
Higienize a entrada do usuário
Considere a limitação de taxa
Implemente controles de acesso
Lide com dados confidenciais adequadamente
Considere os riscos de injeção de prompt
Documente os requisitos de segurança
Modified at 2025-03-12 10:11:38