markdown-notes-mcp

ateska/markdown-notes-mcp

3.2

If you are the rightful owner of markdown-notes-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

MCP server that enables AI assistants to manage Markdown notes through the Model Context Protocol.

markdown-notes-mcp

MCP server that enables AI assistants to manage Markdown notes through the Model Context Protocol. Built on ASAB framework with multi-tenant support and image upload capabilities. This project is also a demo how to write MCP servers using ASAB framework and Python.

Overview

markdown-notes-mcp is a MCP (Model Context Protocol) server implementation that provides AI assistants with tools to create, read, update, delete, and organize Markdown notes. The server exposes a standardized MCP interface, allowing AI applications to interact with a local or remote Markdown notes repository. This MCP server ofers Streamable HTTP transport, it DOESN'T provide Stdio transport (yet).

The cool part is that you can interconnect more LLMs to work colaboratively on Markdown notes; ie. one is the writer and second is the opponent.

The Model Context Protocol (MCP) is a standardized protocol for connecting AI applications to external data sources and tools. This implementation leverages ASAB's microservice framework (aiohttp internally), providing unified configuration, logging, metrics, and HTTP server capabilities.

Features

  • Full CRUD Operations: Create, read, update, and delete Markdown notes
  • Directory Support: Organize notes in nested directory structures
  • Image Upload: WIP Upload and manage images (JPG, PNG, GIF) alongside notes
  • Multi-Tenant Support: Isolated note storage per tenant
  • Resource Templates: Access notes via URI templates (note://{path} and img://{path})
  • MCP Protocol Compliance: Full support for MCP protocol specification
  • Built on ASAB: Production-ready microservice framework with async/await support
  • Security: Path normalization prevents directory traversal attacks

Quick Start

Installation into a Docker

git clone <repository-url>
docker build -t markdown-notes-mcp .

Running the Server

docker run -it -v$(pwd)/etc:/conf:ro -p 8898:8898 --rm markdown-notes-mcp

Configuration

Create a configuration file (e.g., etc/markdown-notes-mcp.conf):

[general]
notes = notes

[web]
listen = 8898

[tenants]
ids = tenant1,tenant2
  • notes: Directory path where Markdown notes will be stored (default: notes), the first subdirectory is a tenant.
  • listen: HTTP server listen address (default: 8898)
  • ids: Comma-separated list of tenant IDs for multi-tenant support, at least one tenant must be provided

License

This project is licensed under the BSD 3-Clause License - see the file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

References