letters-mcp

letters-mcp

MCP server for interacting with Letters to the Future on Base mainnet, enabling posting time-locked messages, listing them, minting on-chain SVG NFTs, and checking wallet info via natural language.

Category
Visit Server

README

📜 letters-mcp

CI License: MIT Network: Base Mainnet Standard: Model Context Protocol

An official Model Context Protocol (MCP) server that lets AI clients (Claude Desktop, Cursor, Antigravity, OpenCode) interact directly with Letters to the Future — a decentralized application on Base mainnet where anyone can post time-locked messages into the future or mint them as permanent on-chain SVG NFTs via natural language.


🌟 Natural Language Prompt Examples

With this MCP server connected to your AI assistant, you can simply type:

"Post a message for the year 2100: I hope humanity figured out sustainable energy."
"Leave an anonymous note that unlocks in 50 years: we were trying our best."
"Show me the latest 20 letters left by others on Base."
"Mint an on-chain SVG NFT: to whoever finds this — hello from 2026."
"How many letters have been posted so far to date?"


📦 Installation & Setup

Option 1: Claude Desktop Integration

Add the following to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "letters": {
      "command": "node",
      "args": ["C:/Users/ad/.gemini/antigravity/scratch/letters-mcp/bin/letters-mcp.js"],
      "env": {
        "PRIVATE_KEY": "0xyour_base_private_key_here"
      }
    }
  }
}

Option 2: Cursor Integration

In Cursor Settings > Features > MCP:

  • Name: letters
  • Type: command
  • Command: node C:/Users/ad/.gemini/antigravity/scratch/letters-mcp/bin/letters-mcp.js

🛠️ MCP Tools Reference

Tool Description Parameters
post_message Post an on-chain letter to the future. content (string, req), unlockYears (number, opt), anonymous (boolean, opt)
list_messages Fetch recent on-chain letters. Locked ones show unlock date. limit (number, opt), offset (number, opt)
get_message_count Query total number of letters posted to date. None
get_message_by_id Query a specific message by numerical ID. id (number, req)
mint_letter_nft Mint an on-chain SVG Letter NFT (0.001 ETH). content (string, req)
get_my_nfts List all Letter NFTs owned by a wallet. address (string, opt)
get_wallet_info Check configured agent wallet address and Base ETH balance. None

⛓️ Base Network Contracts


⌨️ CLI Usage

# Query total letters on Base
node bin/letters-cli.js count

# Browse recent letters
node bin/letters-cli.js list 10

# Post a letter time-locked for 50 years
node bin/letters-cli.js post "Hello from 2026!" 50 false

# Mint an on-chain SVG Letter NFT (0.001 ETH)
node bin/letters-cli.js mint "A digital time capsule in SVG."

# Launch Interactive Web Studio
npm run studio
# Open http://localhost:3403

🔒 Security

Your private key is loaded strictly from the PRIVATE_KEY environment variable and is used only to sign transactions locally via Ethers.js. It is never transmitted anywhere other than directly to the Base RPC endpoint as a signed raw transaction.


🚀 How to Publish to GitHub

git init
git add .
git commit -m "feat: initial commit for letters-mcp on Base"
git branch -M main
git remote add origin https://github.com/yappermoar-boop/letters-mcp.git
git push -u origin main

📄 License

MIT License. Open source software.

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