example-mcp-server
v1.0.0MCPVisão geral
Servidor MCP de exemplo que expõe ferramentas, recursos e prompts para integração com clientes compatíveis com o protocolo Model Context Protocol.
3 Tools
Funções executáveis pelo agente
3 Resources
Dados acessíveis via URI
2 Prompts
Templates reutilizáveis
@example/mcp-serverexample-mcphttps://github.com/example/mcp-serverstdio, http, sseInstalação
Configure o servidor MCP em seu cliente preferido. Cada cliente possui um arquivo de configuração próprio, mas todos seguem o mesmo padrão de comando + argumentos + variáveis de ambiente.
Arquivo: ~/.cursor/mcp.json
{
"mcpServers": {
"example-mcp-server": {
"command": "npx",
"args": ["-y", "@example/mcp-server"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}Transporte
O servidor suporta múltiplos modos de transporte conforme a especificação MCP.
stdio
Comunicação por stdin/stdout. Usado por Claude Desktop, Cursor, VS Code, Codex e Windsurf.
HTTP Streamable
Transporte HTTP com streaming via Server-Sent Events. Indicado para servidores remotos.
SSE (legacy)
Server-Sent Events. Mantido por compatibilidade com clientes mais antigos.
Iniciando em modo HTTP
example-mcp --transport http --port 3333Tools
Funções que o modelo pode invocar. Cada tool define um inputSchema JSON Schema e retorna um CallToolResult.
search_products
Busca produtos no catálogo por termo de pesquisa.
Parâmetros
| query | string | obrigatório | Termo de busca |
| limit | number | opcional | Quantidade máxima (default: 10) |
Exemplo de chamada
{
"name": "search_products",
"arguments": { "query": "notebook", "limit": 5 }
}create_order
Cria um novo pedido a partir de itens do carrinho.
Parâmetros
| userId | string | obrigatório | ID do usuário |
| items | OrderItem[] | obrigatório | Lista de itens |
Exemplo de chamada
{
"name": "create_order",
"arguments": {
"userId": "u_123",
"items": [{ "productId": "p_1", "qty": 2 }]
}
}get_user
Retorna detalhes de um usuário pelo seu ID.
Parâmetros
| id | string | obrigatório | ID do usuário |
Resources
Recursos acessíveis via URI. Podem ser estáticos ou dinâmicos (com placeholders).
products://catalogapplication/jsonCatálogo completo
Lista paginada de produtos disponíveis.
orders://{orderId}application/jsonDetalhes do pedido
Recurso dinâmico que retorna informações de um pedido específico.
docs://READMEtext/markdownDocumentação técnica
Markdown com a documentação interna do servidor.
Lendo um resource
{
"method": "resources/read",
"params": { "uri": "products://catalog" }
}Prompts
Templates de prompts parametrizáveis que o cliente pode listar e oferecer ao usuário.
summarize_order
Gera um resumo amigável de um pedido para envio ao cliente.
| orderId | string | obrigatório | ID do pedido |
| tone | string | opcional | Tom da mensagem (formal/casual) |
{
"name": "summarize_order",
"arguments": { "orderId": "o_42", "tone": "casual" }
}product_recommendation
Sugere produtos relacionados ao histórico do usuário.
| userId | string | obrigatório | ID do usuário |
Schemas / Tipos
Tipagens TypeScript dos principais objetos retornados pelas tools e resources.
// Tipos principais do MCP Server
export interface Product {
id: string;
name: string;
price: number;
stock: number;
}
export interface OrderItem {
productId: string;
qty: number;
}
export interface Order {
id: string;
userId: string;
items: OrderItem[];
total: number;
status: 'pending' | 'paid' | 'shipped' | 'delivered';
createdAt: string;
}
export interface User {
id: string;
email: string;
name: string;
}Autenticação
O servidor utiliza variáveis de ambiente para credenciais. Nunca comite chaves no controle de versão.
Chave principal de acesso (obrigatório)URL base da API (opcional)debug | info | warn | errorexport API_KEY="sk-..."
export LOG_LEVEL="info"
example-mcp