Cloudflare MCP Server

Implante um servidor MCP remoto e sem autenticação no Cloudflare Workers.

Documentação

🤝 Mostre seu apoio - dê uma ⭐️ se você gostou do conteúdo

MCP Memory

MCP Memory é um MCP Server que dá aos MCP Clients (Cursor, Claude, Windsurf e outros) a capacidade de lembrar informações sobre usuários (preferências, comportamentos) entre conversas. Ele usa tecnologia de busca vetorial para encontrar memórias relevantes com base no significado, não apenas em palavras-chave. É construído com Cloudflare Workers, D1, Vectorize (RAG), Durable Objects, Workers AI e Agents.

📺 Vídeo

Watch the video

🚀 Experimente

https://memory.mcpgenerator.com/

🛠️ Como Implantar Seu Próprio MCP Memory

Opção 1: Implantação com Um Clique do Seu Próprio MCP Memory na Cloudflare

Deploy to Cloudflare

Na seção Create Vectorize, escolha:

  • Dimensions: 1024
  • Metric: cosine

Clique no botão "Create and Deploy"

No painel da Cloudflare, vá para "Workers & Pages" e clique em Visit

Visit MCP Memory

Opção 2: Use este template

  1. Clique no botão "Use this template" no topo deste repositório
  2. Clone seu novo repositório
  3. Siga as instruções de configuração abaixo

Opção 3: Criar com a CLI da Cloudflare

npm create cloudflare@latest --git https://github.com/puliczek/mcp-memory

🔧 Configuração (Apenas Opções 2 e 3)

  1. Instale as dependências:
npm install
  1. Crie um índice Vectorize:
npx wrangler vectorize create mcp-memory-vectorize --dimensions 1024 --metric cosine
  1. Instale o Wrangler:
npm run dev
  1. Implante o worker:
npm run deploy

🧠 Como Funciona

MCP Memory Architecture

  1. Armazenando Memórias:

    • Seu texto é processado pelo Cloudflare Workers AI usando o modelo open-source @cf/baai/bge-m3 para gerar embeddings
    • O texto e seu embedding vetorial são armazenados em dois lugares:
      • Cloudflare Vectorize: Armazena os embeddings vetoriais para busca por similaridade
      • Cloudflare D1: Armazena o texto original e metadados para persistência
    • Um Durable Object (MyMCP) gerencia o estado e garante consistência
    • O framework Agents lida com a comunicação do protocolo MCP
  2. Recuperando Memórias:

    • Sua consulta é convertida em um vetor usando Workers AI com o mesmo modelo @cf/baai/bge-m3
    • O Vectorize realiza busca por similaridade para encontrar memórias relevantes
    • Os resultados são classificados por pontuação de similaridade
    • O banco de dados D1 fornece o texto original para os vetores correspondentes
    • O Durable Object coordena o processo de recuperação

Esta arquitetura permite:

  • Busca rápida por similaridade vetorial através do Vectorize
  • Armazenamento persistente com D1
  • Operações com estado via Durable Objects
  • Interações padronizadas de IA através do Workers AI
  • Conformidade com o protocolo via framework Agents

O sistema encontra informações conceitualmente relacionadas mesmo quando as palavras exatas não correspondem.

🔒 Segurança

O MCP Memory implementa várias medidas de segurança para proteger os dados do usuário:

  • As memórias de cada usuário são armazenadas em namespaces isolados dentro do Vectorize para separação de dados
  • Limitação de taxa integrada previne abuso (100 req/min - você pode alterá-la em wrangler.jsonc)
  • A autenticação é baseada apenas no userId
    • Embora isso seja suficiente para proteção básica devido à limitação de taxa
    • Camadas adicionais de autenticação (como chaves de API ou OAuth) podem ser facilmente adicionadas se necessário
  • Todos os dados são armazenados na infraestrutura segura da Cloudflare
  • Todas as comunicações são protegidas com criptografia TLS padrão da indústria (fornecida automaticamente pela certificação SSL/TLS da Cloudflare)

💰 Informações de Custo - GRATUITO para a Maioria dos Usuários

O MCP Memory é gratuito para níveis normais de uso:

  • O nível gratuito permite 1.000 memórias com ~28.000 consultas por mês
  • Usa a cota gratuita da Cloudflare para Workers, Vectorize, Worker AI e banco de dados D1

Para mais detalhes sobre preços da Cloudflare, consulte:

❓ Perguntas Frequentes

  1. Posso usar memory.mcpgenerator.com para armazenar minhas memórias?

    • Sim, você pode usar memory.mcpgenerator.com para armazenar e recuperar suas memórias
    • O serviço é gratuito
    • Suas memórias são armazenadas com segurança e acessíveis apenas a você
    • Não posso garantir que o serviço estará sempre disponível
  2. Posso hospedá-lo?

    • Sim, você pode hospedar sua própria instância do MCP Memory gratuitamente na Cloudflare
    • Você precisará de uma conta Cloudflare e dos seguintes serviços:
      • Workers
      • Vectorize
      • D1 Database
      • Workers AI
  3. Posso executá-lo localmente?

    • Sim, você pode executar o MCP Memory localmente para desenvolvimento
    • Use wrangler dev para executar o worker localmente
    • Você precisará configurar credenciais de desenvolvimento local para os serviços da Cloudflare
    • Observe que alguns recursos como busca vetorial ou Workers AI exigem uma conexão com os serviços da Cloudflare
  4. Posso usar hospedagem diferente?

    • Não, o MCP Memory é especificamente projetado para a infraestrutura da Cloudflare
  5. Por que você o construiu?

    • Eu queria uma solução open-source
    • O controle sobre meus próprios dados era importante para mim
  6. Posso usá-lo para mais de uma pessoa?

    • Sim, o MCP Memory pode ser integrado ao seu aplicativo para atender todos os seus usuários
    • Cada usuário tem seu próprio espaço de memória isolado
  7. Posso usá-lo para armazenar outras coisas além de memórias?

    • Sim, o MCP Memory pode armazenar qualquer tipo de informação baseada em texto
    • Alguns exemplos práticos:
      • Base de Conhecimento: Armazene documentação técnica, procedimentos e guias de solução de problemas
      • Comportamentos do Usuário: Acompanhe como os usuários interagem com recursos e padrões de uso comuns
      • Notas de Projeto: decisões e atualizações do projeto
    • A busca vetorial ajudará a encontrar itens relacionados independentemente do tipo de conteúdo

Cloudflare Browser Rendering Experiments & MCP Server

Este projeto demonstra como usar o Cloudflare Browser Rendering para extrair conteúdo web para contexto de LLM. Inclui experimentos com a REST API e a Workers Binding API, bem como uma implementação de servidor MCP que pode ser usada para fornecer contexto web a LLMs.

Web Content Server MCP server

Estrutura do Projeto

cloudflare-browser-rendering/
├── examples/                   # Example implementations and utilities
│   ├── basic-worker-example.js # Basic Worker with Browser Rendering
│   ├── minimal-worker-example.js # Minimal implementation
│   ├── debugging-tools/        # Tools for debugging
│   │   └── debug-test.js       # Debug test utility
│   └── testing/                # Testing utilities
│       └── content-test.js     # Content testing utility
├── experiments/                # Educational experiments
│   ├── basic-rest-api/         # REST API tests
│   ├── puppeteer-binding/      # Workers Binding API tests
│   └── content-extraction/     # Content processing tests
├── src/                        # MCP server source code
│   ├── index.ts                # Main entry point
│   ├── server.ts               # MCP server implementation
│   ├── browser-client.ts       # Browser Rendering client
│   └── content-processor.ts    # Content processing utilities
├── puppeteer-worker.js         # Cloudflare Worker with Browser Rendering binding
├── test-puppeteer.js           # Tests for the main implementation
├── wrangler.toml               # Wrangler configuration for the Worker
├── cline_mcp_settings.json.example # Example MCP settings for Cline
├── .gitignore                  # Git ignore file
└── LICENSE                     # MIT License

Pré-requisitos

  • Node.js (v16 ou posterior)
  • Uma conta Cloudflare com Browser Rendering habilitado
  • TypeScript
  • CLI do Wrangler (para implantar o Worker)

Instalação

  1. Clone o repositório:
git clone https://github.com/yourusername/cloudflare-browser-rendering.git
cd cloudflare-browser-rendering
  1. Instale as dependências:
npm install

Configuração do Cloudflare Worker

  1. Instale o pacote Cloudflare Puppeteer:
npm install @cloudflare/puppeteer
  1. Configure o Wrangler:
# wrangler.toml
name = "browser-rendering-api"
main = "puppeteer-worker.js"
compatibility_date = "2023-10-30"
compatibility_flags = ["nodejs_compat"]

[browser]
binding = "browser"
  1. Implante o Worker:
npx wrangler deploy
  1. Teste o Worker:
node test-puppeteer.js

Executando os Experimentos

Experimento Básico com REST API

Este experimento demonstra como usar a REST API do Cloudflare Browser Rendering para buscar e processar conteúdo web:

npm run experiment:rest

Experimento com Puppeteer Binding API

Este experimento demonstra como usar a Workers Binding API do Cloudflare Browser Rendering com Puppeteer para automação de navegador mais avançada:

npm run experiment:puppeteer

Experimento de Extração de Conteúdo

Este experimento demonstra como extrair e processar conteúdo web especificamente para uso como contexto em LLMs:

npm run experiment:content

Servidor MCP

O servidor MCP fornece ferramentas para buscar e processar conteúdo web usando Cloudflare Browser Rendering para uso como contexto em LLMs.

Compilando o Servidor MCP

npm run build

Executando o Servidor MCP

npm start

Ou, para desenvolvimento:

npm run dev

Ferramentas do Servidor MCP

O servidor MCP fornece as seguintes ferramentas:

  1. fetch_page - Busca e processa uma página web para contexto de LLM
  2. search_documentation - Pesquisa a documentação da Cloudflare e retorna conteúdo relevante
  3. extract_structured_content - Extrai conteúdo estruturado de uma página web usando seletores CSS
  4. summarize_content - Resume conteúdo web para um contexto de LLM mais conciso

Configuração

Para usar seu endpoint do Cloudflare Browser Rendering, defina a variável de ambiente BROWSER_RENDERING_API:

export BROWSER_RENDERING_API=https://YOUR_WORKER_URL_HERE

Substitua YOUR_WORKER_URL_HERE pela URL do seu Cloudflare Worker implantado. Você precisará substituir este placeholder em vários arquivos:

  1. Nos arquivos de teste: test-puppeteer.js, examples/debugging-tools/debug-test.js, examples/testing/content-test.js
  2. Na configuração do servidor MCP: cline_mcp_settings.json.example
  3. No cliente do navegador: src/browser-client.ts (como fallback se a variável de ambiente não estiver definida)

Integrando com o Cline

Para integrar o servidor MCP com o Cline, copie o arquivo cline_mcp_settings.json.example para o local apropriado:

cp cline_mcp_settings.json.example ~/Library/Application\ Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Ou adicione a configuração ao seu arquivo cline_mcp_settings.json existente.

Principais Aprendizados

  1. O Cloudflare Browser Rendering requer o pacote @cloudflare/puppeteer para interagir com o binding do navegador.
  2. O padrão correto para usar o binding do navegador é:
    import puppeteer from '@cloudflare/puppeteer';
    
    // Then in your handler:
    const browser = await puppeteer.launch(env.browser);
    const page = await browser.newPage();
    
  3. Ao implantar um Worker que usa o binding do Browser Rendering, você precisa habilitar a flag de compatibilidade nodejs_compat.
  4. Sempre feche o navegador após o uso para evitar vazamentos de recursos.

cloudflare-api-mcp

Este é um servidor leve de Model Control Protocol (MCP) inicializado com create-mcp e implantado no Cloudflare Workers.

Este servidor MCP permite que agentes (como o Cursor) interajam com a Cloudflare REST API.

Ainda está em desenvolvimento; adicionarei mais ferramentas conforme eu precisar delas.

Ferramentas Disponíveis

Consulte src/index.ts para a lista atual de ferramentas. Cada método da classe é uma ferramenta MCP.

Instalação

  1. Execute o script de instalação automatizado para clonar este servidor MCP e implantá-lo na sua conta Cloudflare:
bun create mcp --clone https://github.com/zueai/cloudflare-api-mcp
  1. Abra o Cursor Settings -> MCP -> Add new MCP server e cole o comando que foi copiado para sua área de transferência.

  2. Envie sua chave de API e email da Cloudflare para os secrets do seu worker:

bunx wrangler secret put CLOUDFLARE_API_KEY
bunx wrangler secret put CLOUDFLARE_API_EMAIL

Desenvolvimento Local

Adicione sua chave de API e email da Cloudflare ao arquivo .dev.vars:

CLOUDFLARE_API_KEY=<your-cloudflare-api-key>
CLOUDFLARE_API_EMAIL=<your-cloudflare-api-email>

Implantação

  1. Execute o script de implantação:
bun run deploy
  1. Recarregue sua janela do Cursor para ver as novas ferramentas.

Como Criar Novas Ferramentas MCP

Para criar novas ferramentas MCP, adicione métodos à classe MyWorker em src/index.ts. Cada função se tornará automaticamente uma ferramenta MCP que seu agente pode usar.

Exemplo:

/**
 * Create a new DNS record in a zone.
 * @param zoneId {string} The ID of the zone to create the record in.
 * @param name {string} The name of the DNS record.
 * @param content {string} The content of the DNS record.
 * @param type {string} The type of DNS record (CNAME, A, TXT, or MX).
 * @param comment {string} Optional comment for the DNS record.
 * @param proxied {boolean} Optional whether to proxy the record through Cloudflare.
 * @return {object} The created DNS record.
 */
createDNSRecord(zoneId: string, name: string, content: string, type: string, comment?: string, proxied?: boolean) {
    // Implementation
}

Os comentários JSDoc são importantes:

  • A primeira linha se torna a descrição da ferramenta
  • As tags @param definem os parâmetros da ferramenta com tipos e descrições
  • A tag @return especifica o valor de retorno e o tipo

Saiba Mais