MCP Notes

Um servidor simples de anotações para registrar e gerenciar notas com modelos de IA, usando AWS DynamoDB para armazenamento.

Documentação

📝 MCP Notes

MCP Notes Cover Image

✨ Visão Geral

MCP Notes Server é um aplicativo simples de anotações construído sobre o protocolo MCP. Seu objetivo é permitir que os usuários registrem e visualizem notas e tarefas complexas enquanto utilizam modelos de IA, como registrar pensamentos pessoais, notas, inspirações e insights. Ele não depende da criação de arquivos de projeto, permitindo que os usuários registrem qualquer conteúdo sem torná-lo público dentro do projeto.

Este projeto inclui dois servidores: um servidor Node.js usando o Model Context Protocol (MCP) para gerenciamento de notas orientado por IA e um servidor web que fornece uma interface amigável para interação manual com suas notas.

Nota: Este projeto requer DynamoDB para armazenamento de notas. Você precisará de uma conta AWS para usá-lo. A AWS oferece um nível gratuito generoso para DynamoDB, tornando-o adequado para uso pessoal frequente sem custo.


🎯 Recursos Principais

  • 🖥️ Arquitetura de Dois Servidores: Servidor MCP para gerenciamento de notas orientado por IA e servidor web para a interface do usuário
  • 🤖 Anotações com IA: Registre pensamentos, insights e tarefas por meio de interações com IA
  • 🗂️ Gerenciamento Abrangente de Notas: Crie, liste, recupere, atualize e exclua notas via IA ou interface web
  • 📋 Armazenamento Confiável: Armazenamento seguro e eficiente de notas com AWS DynamoDB
  • 🔐 Autenticação Flexível: Suporte para credenciais AWS via strings de conexão ou variáveis de ambiente
  • 📝 Independente de Projeto: Armazene notas pessoais sem afetar arquivos ou estrutura do projeto

🤖 Suporte a Modelos

Você pode usar qualquer modelo que suporte chamadas de função, desde que seu cliente suporte MCP. Os seguintes modelos foram testados e confirmados para funcionar:

  • Claude 3.5 Series
  • Gemini 1.5 and 2.0 Series
  • GPT-4 Series
  • Mistral Large
  • Grok-2
  • DeepSeek Chat

🛠️ Instalação

Recomendado

Execute diretamente com npx ou bunx, veja exemplos abaixo.

Alternativa

  1. Certifique-se de que o Node.js esteja instalado no seu sistema.
  2. Clone este repositório e instale as dependências com: npm install
  3. Configure o Claude Desktop ou qualquer outra ferramenta conforme mostrado abaixo

⚙️ Configuração de Credenciais

String de Conexão

dynamodb://<access_key>:<secret_key>@<region>/<table>

Exemplo: dynamodb://AKIAXXXXXXXX:SKXXXXXXXX@us-east-1/mcp-notes

Variáveis de Ambiente

  1. Exporte AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY.
  2. Forneça informações de conexão sem credenciais na URI: dynamodb://us-east-1/mcp-notes

🤖 Integração com Ferramentas

Claude Desktop

Adicione este trecho a claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-notes": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "mcp-notes",
        "mcp-notes-server",
        "--dynamodb",
        "dynamodb://access_key:secret_key@region/table"
      ]
    }
  }
}

ou arquivo em discos locais:

{
  "mcpServers": {
    "mcp-notes": {
      "command": "node",
      "args": [
        "file://path/to/notes-mcp-server.js",
        "--dynamodb",
        "dynamodb://access_key:secret_key@region/table"
      ]
    }
  }
}

Cody

Nota: Atualmente, o Cody tem suporte limitado a servidores MCP.
Ele permite apenas uma conexão de servidor e não pode fazer chamadas de ferramentas. Você precisará usar a interface web para criar e gerenciar notas e depois referenciá-las em conversas de chat com IA.

Adicione este trecho às configurações do seu VS Code:

{
  "openctx.providers": {
    "https://openctx.org/npm/@openctx/provider-modelcontextprotocol": {
      "nodeCommand": "node",
      "mcp.provider.uri": "file://path/to/notes-mcp-server.js",
      "mcp.provider.args": [
        "--dynamodb",
        "dynamodb://access_key:secret_key@region/table"
      ]
    }
  }
}

alternativamente, use com npx (não garantido funcionar):

{
  "openctx.providers": {
    "https://openctx.org/npm/@openctx/provider-modelcontextprotocol": {
      "nodeCommand": "node",
      "mcp.provider.uri": "file:///usr/local/bin/npx",
      "mcp.provider.args": [
        "-y",
        "-p",
        "mcp-notes",
        "mcp-notes-server",
        "--dynamodb",
        "dynamodb://access_key:secret_key@region/table"
      ]
    }
  }
}

Cline

Adicione este trecho a cline_mcp_settings.json:

Você encontrará um ícone "MCP Server" ao lado do botão "New Task", e então há um botão "Edit MCP Settings" para abrir este arquivo.

{
  "mcpServers": {
    "mcp-notes": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "mcp-notes",
        "mcp-notes-server",
        "--dynamodb",
        "dynamodb://access_key:secret_key@region/table"
      ]
    }
  }
}

🚀 Executando Servidores Web

O servidor web fornece uma interface amigável para gerenciar suas notas. Você pode iniciar interfaces web para gerenciar suas notas, adicionar novas notas para IA ou modificar partes de notas geradas por IA.

npx -p mcp-notes mcp-notes-web-server --dynamodb "dynamodb://access_key:secret_key@region/table"
bun src/notes-web-server.ts --dynamodb "dynamodb://access_key:secret_key@region/table"

Alternativamente, compile com npm run build e execute node dist/notes-mcp-server.js ou node dist/notes-web-server.js

Em seguida, navegue até http://localhost:3100 no seu navegador para visualizar as notas.


🔧 Ferramentas MCP Disponíveis

listNotes

  • Entrada: { tags?: string[] }
  • Saída: Array de todas as notas, opcionalmente filtradas por tags.

getNote

  • Entrada: { id: string }
  • Saída: Um único objeto de nota correspondente ao ID fornecido, ou uma mensagem "não encontrado" se não houver correspondência.

writeNote

  • Entrada: { id: string, title: string, summary: string, tags: string[], content: string }
  • Saída: Uma mensagem de confirmação de sucesso.

deleteNote

  • Entrada: { id: string }
  • Saída: Mensagem de confirmação de exclusão 🚮.

📝 Estrutura de Dados

As notas são armazenadas usando a seguinte estrutura:

  • id: Um identificador único para a nota. Deve ser descritivo, com um sufixo de número aleatório, como "meeting-notes-1362".
  • title: O título da nota.
  • summary: Um breve resumo do conteúdo da nota.
  • tags: Um array de tags associadas à nota (ex.: ["meeting", "project-x"]).
  • content: O conteúdo principal da nota.

📸 Capturas de Tela

Claude Desktop

✅ Funcionalidade completa

Screenshot of MCP Notes Tool Call in Claude Desktop Screenshot of MCP Notes Resources in Claude Desktop

Cody

✅ Mencione Notas via Recurso

❎ Chamadas de ferramentas não são suportadas

Screenshot of MCP Notes in Cody

Cline

✅ Funcionalidade completa com chamadas de ferramentas

❓ Recursos parecem não funcionar; ajuda é bem-vinda.

Screenshot of MCP Notes in Cline