SecureNote.link MCP Server

SecureNote.link MCP Server

Enables AI agents to create end-to-end encrypted, self-destructing notes that can be securely shared via a one-click link, ensuring secrets are never stored in plain text in chat history.

Category
Visit Server

README

๐Ÿ” SecureNote.link MCP Server

<div align="center">

Give your AI a way to hand you secrets โ€” safely.

Encrypted. Self-destructing. Zero-knowledge. Actually fun to use.

Python 3.11+ License: MIT MCP Compatible

๐ŸŒ Open the Web App โ€ข ๐Ÿ› Report an Issue

</div>


๐Ÿ‘‹ What's This For?

Picture this: you ask your AI assistant to generate a new password, rotate an API key, or draft some credentials for a teammate. It does โ€” and then it just... types it out in the chat window. In plain text. In your chat history. Sitting there forever.

SecureNote.link MCP Server fixes that.

It gives any MCP-compatible AI agent the ability to package a secret into an end-to-end encrypted, self-destructing note and hand you back a link. You click it, you see your secret in the browser, and then it's gone. No plain text in the chat. No server that can read it. No trace.

Think of it as a secure handoff channel between your AI agent and the real world.

๐Ÿ“ฌ Someone sent you a secure note link?

Just visit securenote.link โ€” no account needed, works in any browser. Click, read, done. The note deletes itself the moment you open it.


โœจ The Good Stuff

๐Ÿ›ก๏ธ AES-256-GCM encryption The same algorithm used to protect classified government data. Your note is unreadable without the key โ€” including to the server.
๐Ÿ’ฃ Self-destructing notes Notes are deleted the moment they're read. No second chances, no lingering copies.
โฑ๏ธ Automatic expiry Set a note to vanish after 1, 24, 72, or 168 hours โ€” whether it's been read or not.
๐Ÿ”‘ Optional password protection Add a password for a second layer of security, shared through a separate channel.
๐Ÿง  Zero-knowledge architecture The encryption key is never sent to the server. It literally cannot read your data.

๐Ÿš€ Getting Started

Option 1 โ€” Docker (Recommended) ๐Ÿณ

The cleanest way to run this. No dependency headaches, no version conflicts.

# Build the image
docker build -t securenote-mcp .

Then point your MCP client at it. See the configuration section below.


Option 2 โ€” Direct Python ๐Ÿ

pip install -r requirements.txt

Requires Python 3.11 or higher.


Configuring Your MCP Client

  1. Find your MCP client config file:

    • Windows: %AppData%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Add the server block:

Python:

{
  "mcpServers": {
    "securenote": {
      "command": "python3",
      "args": ["C:/absolute/path/to/secure_note_mcp.py"]
    }
  }
}

Docker:

{
  "mcpServers": {
    "securenote": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "securenote-mcp"]
    }
  }
}
  1. Restart your MCP client. That's it โ€” your AI agent now knows how to create secure notes.

๐ŸŽจ How It Works

When you ask your AI agent to create a secure note, here's what actually happens under the hood:

1. The AI agent generates a random 256-bit encryption key  โ† stays on your side, never uploaded
2. The AI agent encrypts your message with AES-256-GCM
3. Only the encrypted blob is sent to the server
4. The server stores the ciphertext and returns an ID
5. The AI agent combines the ID + key into a shareable URL
6. You click it โ†’ your browser decrypts it locally โ†’ note is deleted

The server never has the key. The server never sees the plaintext. Even if someone broke into the server, they'd find nothing useful.


๐Ÿ”— The URL Explained

A secure note URL looks like this:

https://securenote.link?id=abc123#dGVzdGtleQ==
                                  โ†‘
                     Decryption key lives here (the "fragment")
                     Fragments are never sent to the server by browsers

The part after # is called a URL fragment. Browsers handle it entirely locally โ€” it never travels over the network. That's the clever bit that makes one-click sharing possible without compromising security.


๐Ÿ’ก Real-World Examples

Sharing a password with a teammate

You:      "Generate a strong password for the staging database and
           send it to me as a secure note."

AI Agent: "Done! Here's your secure note:
           ๐Ÿ”— https://securenote.link?id=x7k2p#dGVzdGtleQ==

           It expires in 24 hours and deletes itself after you open it."

Sending credentials to a new developer

You:      "Create a secure note with our AWS access keys for the
           new developer starting Monday."

AI Agent: "Created! Send them this link:
           ๐Ÿ”— https://securenote.link?id=k9m3x#c2VjcmV0a2V5

           Once they click it, the keys will appear in their browser
           and the note will self-destruct. Nothing left in the chat."

Maximum security mode

You:      "I need to share these database credentials with our contractor
           but I want to be extra careful."

AI Agent: "I've split it into two parts for two-channel delivery:

           ๐Ÿ“ง Send this via email:
           https://securenote.link?id=9m4x2#dGVzdGtleXZhbHVl

           ๐Ÿ’ฌ Send this via text separately:
           password: CorrectHorseBatteryStaple

           They'll need both to read the note. Even if one channel
           is compromised, the data stays safe."

๐Ÿ”ง The Tools

Your AI agent has access to three tools from this server:

create_note

Creates an encrypted note and returns everything you need to share it.

Parameter Type Default Description
text string required The secret message to encrypt
password string optional Extra password protection
expires_in integer 24 Hours until auto-deletion: 1, 24, 72, or 168

Returns a JSON object with the note id, key, one-click url, expires_in_hours, and password_protected status.


get_note

Fetches and decrypts a note. Useful when an AI agent needs to read back a note it (or another agent) created.

Parameter Type Description
secret_id string The note's ID
decryption_key string The base64 key from create_note or the URL fragment
password string Only needed if the note is password-protected

Returns the plain-text message.


get_instructions

Returns a quick reference guide for the AI agent โ€” useful for prompting it to explain how the service works or reminding it of the available options.


๐Ÿ”’ Security At a Glance

Property Detail
Encryption AES-256-GCM
Key size 256-bit
IV 96-bit, unique per note
Auth tag 128-bit (integrity + authenticity)
Key storage Never stored on server
Note lifetime Deleted on first read or at expiry
Transport HTTPS only
Input limits Max 100 KB text ยท Max 1 KB password

๐Ÿ†˜ Troubleshooting

"Module not found" errors

pip install fastmcp httpx cryptography

"Note not found" when retrieving The note was probably already read (they self-destruct on first view), or it expired. Notes are one-shot by design.

Decryption failed / garbled output The key was likely truncated when copying. Make sure you're using the full key from the key field in create_note's response, not a manually copied fragment.

MCP server not showing up in your AI agent

  • Use an absolute path in your config, not a relative one
  • Validate your JSON โ€” one missing comma breaks the whole config
  • Restart your MCP client fully after any config changes

๐Ÿ“„ License

MIT โ€” use it, fork it, ship it.


<div align="center">

Made for people who believe "just paste it in the chat" isn't good enough.

๐ŸŒ securenote.link

</div>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured