Receitas Server
БесплатноНе проверенMCP server that enables AI assistants to manage a recipe catalog, including listing, searching, adding, removing, and suggesting recipes, with optional Trello o
Описание
MCP server that enables AI assistants to manage a recipe catalog, including listing, searching, adding, removing, and suggesting recipes, with optional Trello or local JSON storage.
README
Servidor MCP (Model Context Protocol) em TypeScript + Node, com a stack atual de mercado:
- @modelcontextprotocol/sdk — SDK oficial
- TypeScript (ESM,
NodeNext) - zod para validação de schemas das tools
- transporte stdio (padrão para Claude Code, Cursor e Claude Desktop)
⚠️ Importante: um servidor MCP não é chamado direto pelo frontend (navegador). Ele é consumido por assistentes de IA (Claude Code, Cursor, Claude Desktop) ou por um backend que aja como cliente MCP — é o caso da API
receitas-api(pasta irmã), que expõe esse MCP como REST para o frontend.
🗄️ Onde as receitas ficam guardadas
O storage é escolhido em tempo de execução (src/repository.ts):
- Se as variáveis
TRELLO_API_KEY,TRELLO_TOKENeTRELLO_LIST_IDestiverem definidas → grava/lê cada receita como um card do Trello (src/trelloStore.ts). - Caso contrário → usa um arquivo JSON local
data/receitas.json(src/store.ts), ótimo para desenvolvimento.
No Trello, cada receita vira um card na lista configurada: o nome do card é o nome da receita e a descrição guarda um bloco JSON (<!--receita:...-->) para reconstruir a receita fielmente. Configure as credenciais em .env (veja .env.example).
Variáveis de ambiente (.env)
Crie um arquivo .env na raiz de receitas-mcp-server com estas três variáveis.
Os valores abaixo são fictícios — troque pelos seus.
# Chave de API do Trello — pegue em https://trello.com/app-key
# Formato: 32 caracteres hexadecimais.
TRELLO_API_KEY=a1b2c3d4e5f60718293a4b5c6d7e8f90
# Token do Trello — gere pelo link "Token" na mesma pagina do app-key.
# Formato: cadeia longa (~64+ caracteres).
TRELLO_TOKEN=ATTAa0000example1111token2222naoreal3333abcdef4444567890ghijkl
# ID da lista do Trello onde os cards de receita serao criados.
# Formato: 24 caracteres hexadecimais.
TRELLO_LIST_ID=6634f0a1b2c3d4e5f6a7b8c9
| Variável | O que é | Como obter |
|---|---|---|
TRELLO_API_KEY |
Identifica seu app no Trello | https://trello.com/app-key |
TRELLO_TOKEN |
Autoriza acesso à sua conta | Link Token na página do app-key |
TRELLO_LIST_ID |
Lista onde as receitas viram cards | Abra o board com .json no fim da URL e procure o id da lista, ou GET https://api.trello.com/1/boards/{boardId}/lists?key=SUA_KEY&token=SEU_TOKEN |
🔒 As três são obrigatórias juntas para ativar o Trello. Se qualquer uma faltar, o servidor cai automaticamente no storage JSON local. O
.envestá no.gitignore— nunca comite suas credenciais reais.
📖 Índice
- O que é isso
- Tools disponíveis
- Como este MCP foi criado (passo a passo)
- Como usar (passo a passo)
- Estrutura de pastas
O que é isso
MCP é um protocolo que permite a uma IA (Claude, Cursor, etc.) chamar funções e ler dados de uma fonte externa de forma padronizada. Aqui, a fonte externa é um catálogo de receitas. A IA conversa com este servidor por stdio (entrada/saída padrão), trocando mensagens no formato JSON-RPC 2.0.
Tools disponíveis
| Tool | O que faz |
|---|---|
listar_receitas |
Lista receitas com filtros (categoria, dificuldade, ingrediente, busca) |
buscar_receita |
Detalhes completos de uma receita por id |
adicionar_receita |
Cadastra uma receita (persistida em data/receitas.json) |
remover_receita |
Remove uma receita por id |
sugerir_por_ingredientes |
Sugere receitas pelo que você tem em casa |
Também expõe um resource receitas://catalogo com o catálogo completo em JSON.
Como este MCP foi criado (passo a passo)
Se você quiser recriar do zero (ou entender cada peça), foi exatamente esta a sequência:
Passo 1 — Criar a pasta e o package.json
Projeto Node em ESM ("type": "module"), com scripts de build/start e as dependências certas:
{
"type": "module",
"bin": { "receitas-mcp": "dist/index.js" },
"scripts": {
"build": "tsc",
"start": "node dist/index.js",
"dev": "tsx watch src/index.ts",
"inspect": "npx @modelcontextprotocol/inspector node dist/index.js"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.19.1",
"zod": "^3.25.76"
},
"devDependencies": {
"@types/node": "^24.7.0",
"tsx": "^4.20.6",
"typescript": "^5.9.3"
}
}
@modelcontextprotocol/sdk→ o SDK oficial que implementa o protocolo.zod→ valida os argumentos que a IA envia para cada tool.tsx→ roda TypeScript direto em desenvolvimento (modo watch).
Passo 2 — Configurar o TypeScript (tsconfig.json)
O ponto crítico é usar module/moduleResolution = NodeNext, porque o SDK é ESM e os imports precisam terminar em .js:
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"resolveJsonModule": true
}
}
Passo 3 — Definir os dados e os schemas (src/types.ts)
Uma única fonte de verdade com zod. O schema serve para validar a entrada das tools e, ao mesmo tempo, gerar o tipo TypeScript (z.infer):
export const receitaSchema = z.object({
id: z.string().regex(/^[a-z0-9-]+$/),
nome: z.string().min(1),
categoria: z.string().min(1),
tempoPreparoMin: z.number().int().positive(),
porcoes: z.number().int().positive(),
dificuldade: z.enum(["facil", "medio", "dificil"]),
ingredientes: z.array(z.string()).min(1),
passos: z.array(z.string()).min(1),
});
export type Receita = z.infer<typeof receitaSchema>;
Passo 4 — Camada de dados (src/store.ts)
Um repositório simples que lê e grava o arquivo data/receitas.json. Isolar isso mantém o index.ts focado só no protocolo. Aqui ficam listar, obter, adicionar, remover e sugerirPorIngredientes.
Passo 5 — O servidor MCP (src/index.ts)
O coração. Cria o servidor, registra cada tool com seu schema e handler, registra o resource e conecta no transporte stdio:
const server = new McpServer({ name: "receitas-mcp-server", version: "1.0.0" });
server.registerTool(
"listar_receitas",
{ title: "Listar receitas", description: "...", inputSchema: { categoria: z.string().optional() } },
async ({ categoria }) => {
const lista = await store.listar({ categoria });
return { content: [{ type: "text", text: "..." }], structuredContent: { receitas: lista } };
},
);
const transport = new StdioServerTransport();
await server.connect(transport);
🔑 Regra de ouro: o
stdouté exclusivo do protocolo. Qualquer log seu tem que ir parastderr(console.error), senão você corrompe a comunicação com a IA.
Passo 6 — Instalar, compilar e testar
npm install # baixa as dependências
npm run build # compila src/ -> dist/
O teste de fumaça enviou 3 mensagens JSON-RPC pelo stdin (initialize → notifications/initialized → tools/list + uma tools/call) e confirmou que o servidor respondeu com as 5 tools e executou uma chamada real. ✅
Como usar (passo a passo)
1. Preparar o servidor (uma vez)
cd receitas-mcp-server
npm install
npm run build
Sempre rode
npm run buildde novo depois de editar qualquer arquivo emsrc/, pois a IA aponta paradist/index.js.
2. (Opcional) Testar sozinha com o Inspector
Abre uma interface web onde você vê e dispara as tools na mão:
npm run inspect
3. Conectar no Claude Code
Na pasta do frontend receitas, rode:
claude mcp add receitas -- node "C:/Users/laiza_g/Desktop/Laiza/cursos/cursos/aulaBOOTSTRAP4/receitas-mcp-server/dist/index.js"
Confira se conectou:
claude mcp list
4. Conectar no Cursor ou Claude Desktop
Adicione ao arquivo de configuração de MCP (.cursor/mcp.json no Cursor, ou claude_desktop_config.json no Claude Desktop):
{
"mcpServers": {
"receitas": {
"command": "node",
"args": [
"C:/Users/laiza_g/Desktop/Laiza/cursos/cursos/aulaBOOTSTRAP4/receitas-mcp-server/dist/index.js"
]
}
}
}
Depois reinicie o Cursor/Claude Desktop.
5. Usar no dia a dia
Com o MCP conectado, é só pedir em linguagem natural para a IA. Exemplos:
- "Liste as receitas de sobremesa fáceis." → chama
listar_receitas - "Me mostra a receita do brigadeiro." → chama
buscar_receita - "Tenho tomate e manjericão, o que posso fazer?" → chama
sugerir_por_ingredientes - "Cadastra uma receita nova de bolo de cenoura." → chama
adicionar_receita(grava no JSON)
A IA escolhe a tool certa sozinha, preenche os argumentos e te devolve o resultado.
Estrutura de pastas
receitas-mcp-server/
├── data/
│ └── receitas.json # base local (fallback quando Trello nao configurado)
├── src/
│ ├── index.ts # servidor MCP: tools + resources
│ ├── repository.ts # interface + fabrica (escolhe Trello ou JSON)
│ ├── store.ts # backend JSON local
│ ├── trelloStore.ts # backend Trello (REST API)
│ ├── filtering.ts # filtros e sugestao (funcoes puras compartilhadas)
│ └── types.ts # schemas zod + tipos
├── .env.example # credenciais do Trello
├── package.json
├── tsconfig.json
└── README.md
Установка Receitas Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/laizaguedes/receitas-mcp-serverFAQ
Receitas Server MCP бесплатный?
Да, Receitas Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Receitas Server?
Нет, Receitas Server работает без API-ключей и переменных окружения.
Receitas Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Receitas Server в Claude Desktop, Claude Code или Cursor?
Открой Receitas Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Notion
Read and write pages in your workspace
автор: NotionLinear
Issues, cycles, triage — from Claude
автор: LinearGoogle Drive
Search and read your Drive files
автор: Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
автор: mindsdbfulcradynamics/fulcra-context-mcp
MCP server for accessing personal health and biometric data including sleep stages, heart rate, HRV, glucose, workouts, calendar, and location via the Fulcra Li
автор: fulcradynamicsaymericzip/intlayer
A MCP Server that enhance your IDE with AI-powered assistance for Intlayer i18n / CMS tool: smart CLI access, access to the docs.
автор: aymericziprinadelph/Agent-MCP
A framework for creating multi-agent systems using MCP for coordinated AI collaboration, featuring task management, shared context, and RAG capabilities.
автор: rinadelphWhenLabs-org/when
Developer toolkit: auto-detect stack for AI context files, catch port conflicts, validate .env schemas, spot docs drift, audit dependency licenses, and time cod
автор: WhenLabs-orgBeltran12138/wecom-docs-mcp-server
WeCom (Enterprise WeChat) document operations via MCP: create, read, and edit Docs and Smartsheets (9 tools). Fills the doc-CRUD gap — existing WeCom MCP server
автор: Beltran12138madbonez/caldav-mcp
Universal MCP server for CalDAV protocol integration. Works with any CalDAV-compatible calendar server including Yandex Calendar, Google Calendar (via CalDAV),
автор: madbonezCompare Receitas Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории productivity
