MCP Notes

Un servidor simple para tomar notas, que permite registrar y gestionar notas con modelos de IA, utilizando AWS DynamoDB para el almacenamiento.

Documentación

📝 MCP Notes

MCP Notes Cover Image

✨ Resumen

MCP Notes Server es una aplicación simple para tomar notas construida sobre el protocolo MCP. Su propósito es permitir a los usuarios registrar y ver notas y tareas complejas mientras utilizan modelos de IA, como registrar pensamientos personales, notas, inspiraciones e ideas. No depende de la creación de archivos de proyecto, lo que permite a los usuarios registrar cualquier contenido sin hacerlo público dentro del proyecto.

Este proyecto incluye dos servidores: un servidor Node.js que utiliza el Protocolo de Contexto de Modelo (MCP) para la gestión de notas impulsada por IA y un servidor web que proporciona una interfaz amigable para la interacción manual con tus notas.

Nota: Este proyecto requiere DynamoDB para el almacenamiento de notas. Necesitarás una cuenta de AWS para usarlo. AWS ofrece un nivel gratuito generoso para DynamoDB, lo que lo hace adecuado para uso personal frecuente sin costo.


🎯 Características principales

  • 🖥️ Arquitectura de doble servidor: Servidor MCP para gestión de notas impulsada por IA y servidor web para la interfaz de usuario
  • 🤖 Toma de notas impulsada por IA: Registra pensamientos, ideas y tareas a través de interacciones con IA
  • 🗂️ Gestión integral de notas: Crea, lista, recupera, actualiza y elimina notas mediante IA o interfaz web
  • 📋 Almacenamiento confiable: Almacenamiento seguro y eficiente de notas con AWS DynamoDB
  • 🔐 Autenticación flexible: Soporte para credenciales de AWS mediante cadenas de conexión o variables de entorno
  • 📝 Independiente del proyecto: Almacena notas personales sin afectar archivos o estructura del proyecto

🤖 Soporte de modelos

Puedes usar cualquier modelo que admita llamadas a funciones siempre que tu cliente admita MCP. Los siguientes modelos han sido probados y confirmados para funcionar:

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

🛠️ Instalación

Recomendado

Ejecuta directamente con npx o bunx, consulta los ejemplos a continuación.

Alternativa

  1. Asegúrate de que Node.js esté instalado en tu sistema.
  2. Clona este repositorio e instala las dependencias con: npm install
  3. Configura Claude Desktop o cualquier otra herramienta como se muestra a continuación

⚙️ Configuración de credenciales

Cadena de conexión

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

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

Variables de entorno

  1. Exporta AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY.
  2. Proporciona información de conexión sin credenciales en la URI: dynamodb://us-east-1/mcp-notes

🤖 Integración con herramientas

Claude Desktop

Agrega este fragmento 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"
      ]
    }
  }
}

o archivo en discos locales:

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

Cody

Nota: Actualmente, Cody tiene soporte limitado para servidores MCP.
Solo permite una conexión de servidor y no puede realizar llamadas a herramientas. Necesitarás usar la interfaz web para crear y gestionar notas y luego referenciarlas en conversaciones de chat con IA.

Agrega este fragmento a la configuración de 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, usa con npx (no se garantiza que funcione):

{
  "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

Agrega este fragmento a cline_mcp_settings.json:

Encontrarás un icono de "Servidor MCP" junto al botón "Nueva tarea", y luego hay un botón "Editar configuración de MCP" para abrir este archivo.

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

🚀 Ejecutando servidores web

El servidor web proporciona una interfaz amigable para gestionar tus notas. Puedes lanzar interfaces web para gestionar tus notas, agregar nuevas notas para IA o modificar partes de notas generadas 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, compila con npm run build y ejecuta node dist/notes-mcp-server.js o node dist/notes-web-server.js

Luego navega a http://localhost:3100 en tu navegador para ver las notas.


🔧 Herramientas MCP disponibles

listNotes

  • Entrada: { tags?: string[] }
  • Salida: Matriz de todas las notas, opcionalmente filtradas por etiquetas.

getNote

  • Entrada: { id: string }
  • Salida: Un objeto de nota único que coincida con el ID dado, o un mensaje de "no encontrado" si no existe coincidencia.

writeNote

  • Entrada: { id: string, title: string, summary: string, tags: string[], content: string }
  • Salida: Un mensaje de confirmación de éxito.

deleteNote

  • Entrada: { id: string }
  • Salida: Mensaje de confirmación de eliminación 🚮.

📝 Estructura de datos

Las notas se almacenan utilizando la siguiente estructura:

  • id: Un identificador único para la nota. Debe ser descriptivo, con un sufijo de número aleatorio, como "meeting-notes-1362".
  • title: El título de la nota.
  • summary: Un breve resumen del contenido de la nota.
  • tags: Una matriz de etiquetas asociadas con la nota (por ejemplo, ["meeting", "project-x"]).
  • content: El contenido principal de la nota.

📸 Capturas de pantalla

Claude Desktop

✅ Funcionalidad completa

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

Cody

✅ Menciona notas mediante recurso

❎ Las llamadas a herramientas no son compatibles

Screenshot of MCP Notes in Cody

Cline

✅ Funcionalidad completa con llamadas a herramientas

❓ Los recursos no parecen funcionar; se busca ayuda.

Screenshot of MCP Notes in Cline