Freeport Nostr

io.github.ptrinhPublished by GitHub account ptrinhv0.5.0Updated Nov 4, 2026

Search Freeport Nostr events by kind, tag & geohash radius (rides, services, reputation).

VerifiedStreamable HTTPWeb executableFinanceCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Searches Freeport's Nostr marketplace for ride, service and product intents, checks reputation and profiles, and can publish signed offers or requests.

What you can do
  • Search Freeport intents (offers and requests) by side, category or area tags and an optional geographic radius, with results decoded, expiry-filtered and sorted nearest-first
  • Look up reputation for a pubkey: karma ratings, deal receipts, proven-deal count and a karma summary
  • Fetch raw signed events by id, or run an arbitrary NIP-01 filter as an escape hatch
  • Read NIP-01 profile metadata for any Nostr user, optionally with their most recent notes
  • Publish a Freeport intent as an offer or a request, signed either with a supplied secret key or a pre-signed event
When to use it
Useful when an assistant should discover counterparties on the decentralized Freeport marketplace, vet them by reputation and profile, or post an offer or request on a user's behalf. Also handy for general Nostr event and profile lookups.
Requirements
Either the hosted remote endpoint or the local npm package run over stdio. Relay websocket URLs can be set with the FREEPORT_RELAYS environment variable; otherwise a default Freeport public relay set is used. No authentication is declared. Publishing an intent needs a Nostr secret key or a pre-signed event.
Before you install
Publishing requires a secret key (nsec or hex) passed to the tool; the server's own guidance is to use a dedicated agent key, never a personal one. Published intents are public and signed, and cannot be retracted. Reputation scores are subjective and unweighted, not Sybil-proof, so zero-history identities deserve caution. The marketplace itself offers no refunds or central support.

Installation

In SourceWeft

  1. Open Freeport Nostr in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ptrinh%2Ffreeport-nostr/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "freeport-nostr": {
      "type": "http",
      "url": "https://nostr-mcp.trinh.uk/mcp"
    }
  }
}

README

Freeport

[CI] [License: MIT] [App Store] [Google Play] [Web app] [Protocol: Nostr]

Decentralized P2P marketplace over Nostr. Users broadcast trade intents into topic-scoped markets; personal agents discover counterpart intents and negotiate automatically. Humans confirm final deals. No central operator, no matching server — relays are dumb pub/sub, all logic is client-side.

Demo (2 minutes)

https://github.com/user-attachments/assets/506c82ac-c5eb-415d-b981-ba14c4f165bc

Also on the landing page.

Why Freeport exists

  • It's a research project. How far can pure P2P infrastructure go? Buyers, sellers, riders, drivers meet over Nostr, settle in Lightning or cash. Nothing in between needs permission to exist.
  • It's a thesis. A P2P marketplace with a reputation system works. When people own their reputation, the market self-regulates.
  • It's a check and balance. A zero-fee exit that answers to no one puts a ceiling on how greedy the big platforms can get.
  • It's fun. An open protocol, Claude Code as a pair programmer, no investor deck.
  • Nobody profits — including me. No operator, no cut. A protocol, not a platform. Run it or fork it.
  • No one will protect you here — that's the point, and the price. No support line, no refunds, no central authority. Your judgment comes first, backed by opt-in safeguards no operator runs: a reputation system (karma, co-signed receipts, web-of-trust), escrow arbitration (examples/arbitrator), ID verification (examples/id-verification), and insurance (examples/insurance-store) priced from reputation. You choose how much of the safety net to use.

What works today

  • Everywhere: iOS + Android app stores, web/PWA, desktop installers for macOS/Windows/Linux with self-update — plus a single-file offline copy: the whole app in one HTML file that runs from file://, no install, no server.
  • Wallet (experimental): built-in self-custodial Bitcoin Lightning + stablecoin (USDT/USDB) wallet (Breez SDK/Spark). Keys derive from your Nostr key — one backup covers identity and funds. Lightning address ([email protected]), on-chain, QR scan, local-currency balances, and one-tap Pay / Pay QR on confirmed deals. Bring your own wallet over NWC instead if you prefer. Spark is a young trust-minimized L2 — treat it as a spending wallet.
  • Reputation: peer-rated karma, co-signed deal receipts, proven-deal counts, web-of-trust weighting. Sybil resistance stays open — treat zero-history identities with caution.
  • Chat: invite-based 1:1 encrypted chat beyond deals — QR/link invites, replies, emoji reactions, disappearing messages, delivery/read receipts, voice messages, location sharing, in-chat search and Lightning payments. Between updated clients it upgrades to NIP-17 gift wrap, so relays can't even see who talks to whom.
  • Calls (experimental): peer-to-peer audio/video calls in chat (WebRTC, end-to-end encrypted, signaling over encrypted DMs — no call server), with screen sharing on web. Optional TURN fallback.
  • Zaps & Shops: NIP-57 zap tipping on posts (verifiable receipts), and NIP-15 storefronts — durable seller listings with a conversational "chat with seller" checkout.
  • Escrow without a custodian: HODL-invoice conditional payments on confirmed deals — the buyer holds the preimage, the seller can only settle on release, unreleased funds auto-refund. The Lightning protocol enforces the lock; nobody ever holds the money in between.
  • Mini-apps (experimental): third-party web apps run inside Freeport with your portable identity (NIP-07) and wallet (WebLN + Spark/stablecoin) — sandboxed behind a permission firewall where every sensitive action needs your approval (architecture & threat model). A dedicated Apps tab hosts the launcher — a home-screen-style grid (add any app by URL or QR, drag to rearrange), with the wallet as its first tile; your apps and their grants travel with the account backup. One <script> tag makes a page work on web too. Mini-app examples:
  • On-device AI (experimental): describe what you need in any language and it drafts your post; incoming chat messages auto-translate. Runs entirely on your device (Apple Intelligence / Android ML Kit + Gemini Nano / Chrome built-in AI) — your words never leave it.
  • Notifications & Telegram: content-blind push, plus a Telegram bridge — market feeds in groups, one-tap broadcast of organic posts, personal pings.
  • 56 languages, full RTL, in-chat translation.

Non-goals (v1)

Custody (payments stay self-custodial wallet-to-wallet; even escrow is trust-minimized HODL invoices, never a held balance), dispute resolution, vetting, anti-sybil — all deliberately deferred.

Donate

BTC: bc1ps44wjx3wpu4s0xj746gz2lu45nspsm9059d3ym8xz0nrhu4psyasdgwwhx

License & forking

MIT (LICENSE). Freeport exists to be forked: any community can stand up its own market — own name, city, vertical, relays and services — by changing configuration, not architecture. FORKING.md lists every deployment-specific value; CONTRIBUTING.md covers dev setup and style.

Source: README.md at commit 5d33034

Tools

6

nostr_search_intents

Search Freeport ride/service/product intents (offers & requests). Filter by side, category/area topic tags, and an optional geographic radius. Results are decoded, expiry-filtered, and sorted nearest-first when a point is given.

ParametersnearsidelimitsinceuntilrelaystopicsincludeExpiredrelaySideGeohash

nostr_search_reputation

Fetch reputation signals for a pubkey: karma ratings (kind 32103) it received and deal receipts (kind 32104). Returns proven-deal count (both receipt halves present) and a karma summary. Note: scores are subjective and un-weighted here; do not treat as Sybil-proof.

Parameterslimitpubkeyrequiredrelays

nostr_get_event

Fetch one or more events by id. Returns the raw signed events.

Parametersidsrequiredrelays

nostr_profile

Fetch NIP-01 profile metadata (kind 0) for one or more pubkeys — name, about, picture, nip05, lud16, etc. Optionally include each author's most recent notes (kind 1). General-purpose: works for any Nostr user, not just Freeport.

ParametersrelayspubkeysrequiredrecentNotes

nostr_query_raw

Escape hatch: run an arbitrary NIP-01 filter (kinds/authors/ids/tags/since/until/limit). Use the typed tools above when they fit. Returns raw signed events.

Parametersidstagskindslimitsinceuntilrelaysauthors

freeport_create_post

Publish a Freeport intent — an OFFER (side "offer": driver/provider/seller) or a REQUEST (side "request": rider/buyer). Provide EITHER a `secretKey` (nsec or hex — the server builds, signs and publishes; use a DEDICATED agent key, never a personal one — it is used once and never stored) OR a pre-signed `event` (you sign locally; nothing secret reaches the server). Strict rate limits apply. Returns the published event id + addressable `d`.

ParametersdsideeventtitlemarketrelaysschematopicswindowpayloadgeohashessecretKey+1 more

Version history

1
  1. v0.5.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts