io.github.singularityjason/lightning-memory MCP Server
io.github.singularityjason/lightning-memory
Persistent memory for AI agents in the Lightning economy with vendor reputation, spending anomaly detection, and L402 payments.
What is the io.github.singularityjason/lightning-memory MCP server?
Lightning Memory is an MCP server that provides persistent memory for AI agents making payments via Lightning and L402. It enables agents to track vendor reputation, detect spending anomalies, enforce budgets, and share trust signals across a decentralized network using Nostr identity and relay synchronization.
Lightning Memory solves the problem of AI agents losing context between sessions when making Lightning payments. It tracks transaction history, vendor reputations, spending patterns, and enforces budget gates before payments. Agents can discover and query remote memory gateways via L402 micropayments, creating a marketplace for agent intelligence without API keys or accounts.
How to install io.github.singularityjason/lightning-memory
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
memory_store— Store a memory (transaction, vendor, preference, error, decision) with content and metadatamemory_query— Search memories by relevance using FTS5 full-text search and optional semantic searchmemory_list— List memories with type and time filtersmemory_edit— Edit memory content or metadata with audit trailmemory_sync— Sync memories with Nostr relays (push/pull)memory_export— Export memories as NIP-78 Nostr eventsln_vendor_reputation— Calculate vendor reputation score from transaction historyln_spending_summary— Get spending breakdown by vendor and protocolln_anomaly_check— Detect if a payment amount is abnormally high for a vendorln_preflight— Pre-flight payment gate: check budget, anomaly, and trust before approving paymentln_budget_set— Set per-vendor spending limits (per transaction, per day, per month)ln_budget_check— Check current spending against configured limitsln_budget_status— View gateway earnings and L402 payment statisticsln_vendor_trust— Get full trust profile including KYC status, reputation, and community scoreln_trust_attest— Publish NIP-85 trust attestation to Nostr relaysln_agent_attest— Store a KYA (Know Your Agent) attestationln_agent_verify— Look up an agent's compliance statusln_auth_session— Store LNURL-auth session recordsln_auth_lookup— Look up LNURL-auth sessionsln_compliance_report— Generate structured compliance export
Use cases
- Track vendor reputation and spending history to detect price spikes and avoid overpaying for L402 services
- Enforce per-vendor and daily spending budgets with pre-flight payment gates before Lightning transactions
- Detect spending anomalies and suspicious payment requests by comparing against historical transaction patterns
- Build an agent-to-agent knowledge marketplace by running an L402 gateway and monetizing memory queries
- Maintain portable, decentralized agent identity and memory across sessions using Nostr relays without API keys
io.github.singularityjason/lightning-memory MCP server FAQ
Lightning Memory is an MCP server that gives AI agents persistent memory for Lightning payments. It tracks vendor reputation, detects spending anomalies, enforces budgets, and enables agents to query each other's memories via L402 micropayments on a decentralized Nostr network.
The MCP server itself is free and open-source (MIT license). Running a local instance costs nothing. Operating an L402 gateway that other agents pay to query is optional; you set your own pricing (typically 1-10 sats per operation).
Install via pip: `pip install lightning-memory`, then add to Claude Desktop config: `{"mcpServers": {"lightning-memory": {"command": "python", "args": ["-m", "lightning_memory.server"]}}}`
None. Lightning Memory uses Nostr keypair (BIP-340) identity instead of API keys or accounts. Your agent identity is automatically generated and stored locally in `~/.lightning-memory/keys/`.
Yes. The local MCP server works offline with SQLite. To run an L402 gateway that accepts Lightning payments, you need Phoenixd (a lightweight Lightning client) running on localhost.
Memories (transactions, vendor info, preferences, decisions) are stored locally in SQLite. You can optionally sync them to Nostr relays as NIP-78 events for portability and backup. All data is under your control.
README (reference)
Source of truth, from the repository.
Lightning Memory
Persistent memory for AI agents in the Lightning economy.
The Problem
AI agents spend sats over Lightning via L402 — but they can't remember what they bought. Every session starts from zero. Every vendor is a stranger. Every price is accepted at face value. An agent that paid 500 sats yesterday doesn't know if today's 5,000 sat invoice is a price spike or normal.
The Solution
L1: Bitcoin — settles
L2: Lightning — pays
L3: Lightning Memory — remembers
Lightning Memory gives agents persistent memory, vendor intelligence, and payment safety gates. Agents learn from their spending history, track vendor reputations, detect price anomalies, enforce budgets, and share trust signals with other agents.
Interactive Demo — watch an agent learn, get rugged, and route around bad actors.
Building the Agent Economy — trust, budgets, compliance, and the memory marketplace.
Who Is This For
- Agents making L402 payments that need vendor reputation and spending discipline
- Developers building autonomous agents on Bitcoin/Lightning
- Anyone running an MCP-compatible AI agent (Claude, GPT, or any MCP client)
Quick Start
pip install lightning-memory
lightning-memory # starts MCP server
Configure in Claude Code
{
"mcpServers": {
"lightning-memory": {
"command": "lightning-memory"
}
}
}
Configure in Claude Desktop
{
"mcpServers": {
"lightning-memory": {
"command": "python",
"args": ["-m", "lightning_memory.server"]
}
}
}
How It Compares
| Feature | Lightning Memory | Mem0 | Raw file storage | No memory |
|---|---|---|---|---|
| Lightning/L402 awareness | Yes | No | No | No |
| Vendor reputation tracking | Yes | No | Manual | No |
| Spending anomaly detection | Yes | No | No | No |
| Nostr identity (BIP-340) | Yes | No | No | No |
| Relay sync (NIP-78) | Yes | No | No | No |
| Full-text + semantic search | Yes | Yes | No | No |
| Agent-to-agent knowledge markets | Yes (L402 gateway) | No | No | No |
| Budget enforcement | Yes | No | No | No |
| KYC/trust profiles | Yes | No | No | No |
| Payment pre-flight gate | Yes | No | No | No |
| Contradiction detection | Yes | No | No | No |
| Local-first / offline | Yes | Cloud | Yes | N/A |
| MCP native | Yes | Plugin | No | No |
| Zero config | Yes | API key required | Manual setup | N/A |
Tools (22)
Memory
| Tool | Description |
|---|---|
memory_store | Store a memory (transaction, vendor, preference, error, decision) |
memory_query | Search by relevance (FTS5 + optional semantic search) |
memory_list | List memories with type/time filters |
memory_edit | Edit content or metadata with audit trail |
memory_sync | Sync with Nostr relays (push/pull) |
memory_export | Export as NIP-78 Nostr events |
memory_store(
content="Paid 500 sats to bitrefill.com for a $5 Amazon gift card via L402.",
type="transaction",
metadata='{"vendor": "bitrefill.com", "amount_sats": 500}'
)
memory_query(query="bitrefill payment history", limit=5)
# → recency-weighted results with dedup and contradiction alerts
Lightning Intelligence
| Tool | Description |
|---|---|
ln_vendor_reputation | Reputation score from transaction history |
ln_spending_summary | Spending breakdown by vendor and protocol |
ln_anomaly_check | Detect if a payment is abnormally high |
ln_vendor_reputation(vendor="bitrefill.com")
# → {reputation: {total_txns: 12, success_rate: 0.92, avg_sats: 450}, recommendation: "reliable"}
ln_anomaly_check(vendor="bitrefill.com", amount_sats=5000)
# → {anomaly: {verdict: "high", context: "5000 sats is 11.1x the historical average..."}}
Payment Safety
| Tool | Description |
|---|---|
ln_preflight | Pre-flight gate: budget + anomaly + trust check before payment |
ln_budget_set | Set per-vendor spending limits (per txn, per day, per month) |
ln_budget_check | Check spending against limits |
ln_budget_status | Gateway earnings and L402 payment stats |
ln_preflight(vendor="bitrefill.com", amount_sats=500)
# → {decision: {verdict: "approve", budget_remaining_today: 4500, trust_score: 0.89}}
# If the vendor suddenly charges 50x:
ln_preflight(vendor="bitrefill.com", amount_sats=25000)
# → {decision: {verdict: "reject", reasons: ["exceeds daily limit of 5000 sats"]}}
Trust & Compliance
| Tool | Description |
|---|---|
ln_vendor_trust | Full trust profile (KYC + reputation + community score) |
ln_trust_attest | Publish NIP-85 trust attestation to Nostr relays |
ln_agent_attest | Store a KYA (Know Your Agent) attestation |
ln_agent_verify | Look up an agent's compliance status |
ln_auth_session | Store LNURL-auth session records |
ln_auth_lookup | Look up LNURL-auth sessions |
ln_compliance_report | Generate structured compliance export |
Marketplace
| Tool | Description |
|---|---|
ln_discover_gateways | Find remote Lightning Memory gateways via Nostr |
ln_remote_query | Query a remote gateway via L402 micropayment |
ln_discover_gateways(operation="memory_query")
# → {count: 2, gateways: [{url: "https://gw1.example.com", operations: {...}}, ...]}
ln_remote_query(
gateway_url="https://gw.example.com",
operation="ln_vendor_reputation",
params='{"vendor": "openai"}'
)
# → Pays 3 sats, returns remote agent's vendor intelligence
Architecture
- Nostr identity: Agent identity = Nostr keypair (BIP-340). No accounts, no API keys.
- Local-first: SQLite with FTS5 full-text search + optional ONNX semantic search. Works offline.
- Nostr sync: Memories written as NIP-78 events to relays. Portable, tamper-proof.
- L402 payments: Pay-per-query gateway. 1-10 sats per operation.
- Memory quality: Deduplication, contradiction detection, noise filtering, recency-weighted ranking, access tracking.
L402 Gateway
Run an L402 pay-per-query HTTP gateway. Other agents pay Lightning micropayments to access your agent's memory — no API keys, no accounts.
pip install lightning-memory[gateway]
lightning-memory-gateway # Listening on 0.0.0.0:8402
How L402 Works
Agent Gateway Phoenixd
| | |
|-- GET /memory/query?q=... --->| |
|<-- 402 + Lightning invoice ---|--- create_invoice -------->|
| |<-- bolt11 + payment_hash --|
| | |
| [pay invoice via Lightning] | |
| | |
|-- GET + L402 token ---------->| |
| (macaroon:preimage) |--- verify preimage ------->|
|<-- 200 + query results -------| |
Endpoints
| Endpoint | Method | Price | Description |
|---|---|---|---|
/info | GET | Free | Gateway status, pricing, node info |
/health | GET | Free | Health check |
/memory/store | POST | 3 sats | Store a memory |
/memory/query | GET | 2 sats | Search memories by relevance |
/memory/list | GET | 1 sat | List memories with filters |
/ln/vendor/{name} | GET | 3 sats | Vendor reputation report |
/ln/spending | GET | 2 sats | Spending summary |
/ln/anomaly-check | POST | 3 sats | Payment anomaly detection |
/ln/preflight | POST | 3 sats | Pre-flight payment gate |
/ln/trust/{name} | GET | 2 sats | Vendor trust profile |
/ln/budget | GET | 1 sat | Budget rules and spending |
/ln/compliance-report | GET | 10 sats | Compliance report export |
Phoenixd Setup
- Download and run Phoenixd (listens on
localhost:9740) - Fund it with ~10,000 sats for initial channel opening
- Configure:
~/.lightning-memory/config.json→{"phoenixd_password": "<from ~/.phoenix/phoenix.conf>"} - Start:
lightning-memory-gateway
Docker
PHOENIXD_PASSWORD=your-password docker compose up
CLI Commands
lightning-memory # Start MCP server
lightning-memory stats # Memory statistics dashboard
lightning-memory export json # Export memories as JSON
lightning-memory export csv # Export memories as CSV
lightning-memory relay-status # Check Nostr relay connectivity
lightning-memory-gateway # Start L402 HTTP gateway
lightning-memory-manifest # Generate gateway discovery manifest
Relay Configuration
Default relays: wss://relay.damus.io, wss://nos.lol, wss://relay.nostr.band
Customize in ~/.lightning-memory/config.json:
{
"relays": ["wss://relay.damus.io", "wss://nos.lol", "wss://relay.primal.net"],
"sync_timeout_seconds": 30,
"max_events_per_sync": 500
}
| Relay | Speed | Reliability | Notes |
|---|---|---|---|
wss://relay.damus.io | Fast | High | Most popular, good uptime |
wss://nos.lol | Fast | High | Reliable, good NIP-78 support |
wss://relay.nostr.band | Medium | Medium | Search-focused, may be slow |
wss://relay.primal.net | Fast | High | Well-maintained |
wss://nostr.wine | Fast | High | Paid relay, less spam |
Optional: Semantic Search
Add ONNX-based semantic similarity search alongside FTS5 keyword search:
pip install lightning-memory[semantic]
Queries then use hybrid ranking: FTS5 BM25 + cosine similarity with reciprocal rank fusion. "Which vendors are reliable for transcription" matches memories containing "whisper API" and "audio-to-text" even without exact keyword overlap.
Data Storage
~/.lightning-memory/
memories.db # SQLite database
keys/
private.key # Nostr private key (chmod 600)
public.key # Nostr public key (your agent identity)
Roadmap
- Phase 1: MCP server with local SQLite storage
- Phase 2: Lightning intelligence (vendor reputation, spending summary, anomaly detection)
- Phase 3: Nostr relay sync (NIP-78, Schnorr signing, bidirectional sync)
- Phase 4: L402 payment gateway (macaroons, Phoenixd, HTTP gateway)
- Phase 5: Compliance & trust (budget enforcement, vendor KYC, community reputation, pre-flight gate)
- Phase 6: Memory marketplace (gateway discovery, remote L402 queries, gateway client)
- Phase 7: Agent reliability (semantic search, deduplication, contradiction detection, circuit breakers)
Star History
License
MIT
<!-- mcp-name: io.github.singularityjason/lightning-memory -->Related MCP servers

agent.social
Free social platform for AI agents — boards with tool-call receipts; MCP server + REST API.
Archive of verbatim errors with root causes and fixes that AI agents search by exact error string.
A place for agents to think out loud about blockers — often clarifies them. ~20s, intermittent.
Deterministic orchestrator for CLI coding agents with byte-identical run receipts, 40+ adapters, and air-gap support.
Verifies Bernstein run receipts and hash chains; lists the shipped presets and adapters. Read-only.
Deploy full-stack web apps with database, file storage, auth, and RBAC via a single API call.
View repository →
