Is the Ptrinh Freeport Nostr MCP server down?

mcp-registry/io.github.ptrinh/freeport-nostr · v0.6.9

down
Last checked 2026-10-25 05:41 UTC · handshake 578ms

As of 2026-10-25 05:41 UTC, the Ptrinh Freeport Nostr MCP server is down with a Glimind reliability score of 38/100 (grade F). Over the last 30 days it answered 99.7% of Glimind's liveness checks. It had 10 outages in 90 days, with a median recovery of 4 minutes.

uptime (30d checks)
99.7%
checks observed
3,762
outages (90d)
10
tools
6

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

Point your MCP client at this streamable-http endpoint: https://nostr-mcp.trinh.uk/mcp

Agent-readiness: D (55/100)

D (55/100): 1 error(s), 4 warning(s) across 6 tool(s); ~1,975 tokens of tool definitions.
Scores higher than 0% of 15,760 MCP servers Glimind has audited.
Its tool list costs an agent ~1,975 tokens per session — lighter than 55% of servers.
64 → 64 since 2026-10-17
no tool-poisoning patterns
Schemas82
Descriptions32
Safety hints7
Token cost100
Client compatibility70
Protocol100
Reliability0
Stability100

What to fix (6)

The endpoint did not complete an MCP handshake.

Check the URL, TLS certificate and that the server answers a JSON-RPC "initialize" POST. How to fix →

6 of 6 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: freeport_create_post, nostr_get_event, nostr_profile, nostr_query_raw, nostr_search_intents and 1 more

13 parameter(s) across 5 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: freeport_create_post, nostr_get_event, nostr_query_raw, nostr_search_intents, nostr_search_reputation

1 tool(s) have parameters with no type (no type/enum/anyOf/$ref).

Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →

Tools: freeport_create_post

1 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.

Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →

Tools: freeport_create_post

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

Auto-fix: 5 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 5 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr/fixes

freeport_create_post 2 changes
{
  "name": "freeport_create_post",
  "description": "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`.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "d": {
        "type": "string",
        "description": "Stable id to republish/replace an existing post; defaults to random."
      },
      "side": {
        "enum": [
          "offer",
          "request"
        ],
        "type": "string",
        "description": "offer = provider/seller/driver; request = buyer/rider."
      },
      "event": {
        "description": "A complete, signed Nostr event (kind 32101/32102). Use instead of secretKey to keep keys off the server.",
        "type": "string"
      },
      "title": {
        "type": "string",
        "maxLength": 200
      },
      "market": {
        "type": "string",
        "description": "Market key, e.g. \"rideshare\" or \"service\"."
      },
      "relays": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 10
      },
      "schema": {
        "type": "string",
        "description": "Payload schema, e.g. \"rideshare/1\" or \"service/1\"."
      },
      "topics": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 8,
        "description": "Topic `t` tags (area/category), e.g. [\"vn_hanoi\",\"vn_hanoi_ridesharing\"]."
      },
      "window": {
        "type": "object",
        "required": [
          "start",
          "end"
        ],
        "properties": {
          "end": {
            "type": "integer"
          },
          "start": {
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "payload": {
        "type": "object",
        "description": "Intent payload (from/to/location, payment, etc.) per the freeport://protocol resource.",
        "additionalProperties": {}
      },
      "geohashes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 8,
        "description": "Geohashes for location-scoped discovery. Each is expanded into all its prefixes (precision 1-6) so radius searches at any precision match."
      },
      "secretKey": {
        "type": "string",
        "description": "nsec or 64-hex private key. Used transiently to sign; never stored. Omit if passing a pre-signed `event`."
      },
      "expiresInMinutes": {
        "type": "integer",
        "maximum": 43200,
        "minimum": 5,
        "description": "How long the post stays live (default 720). Max 30 days."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}
nostr_get_event 1 change
{
  "name": "nostr_get_event",
  "description": "Fetch one or more events by id. Returns the raw signed events.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "ids"
    ],
    "properties": {
      "ids": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 50,
        "minItems": 1
      },
      "relays": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 10,
        "description": "Override the relay set for this call (ws/wss URLs, max 10). Defaults to the server relays."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}
nostr_query_raw 1 change
{
  "name": "nostr_query_raw",
  "description": "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.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "ids": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "tags": {
        "type": "object",
        "description": "Tag filters, e.g. {\"t\":[\"vn_hanoi\"],\"g\":[\"w3gv\"]}. Keys are single tag letters.",
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "kinds": {
        "type": "array",
        "items": {
          "type": "integer"
        }
      },
      "limit": {
        "type": "integer",
        "default": 100,
        "maximum": 500,
        "minimum": 1
      },
      "since": {
        "type": "integer"
      },
      "until": {
        "type": "integer"
      },
      "relays": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 10,
        "description": "Override the relay set for this call (ws/wss URLs, max 10). Defaults to the server relays."
      },
      "authors": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.ptrinh/freeport-nostr"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/io.github.ptrinh/freeport-nostr"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr.svg)](https://glimind.com/server/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr.svg
   :target: https://glimind.com/server/mcp-registry%2Fio.github.ptrinh%2Ffreeport-nostr?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:9e8e41f1a6285973…, first seen 2026-10-17, included at leaf 6173 of 75,332. Version history · verify what your client received.

Working alternatives

Tools (6)

Compare: most reliable communication servers · most reliable retrieval servers · most reliable search servers · most reliable knowledge servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Ptrinh Freeport Nostr MCP server down right now?

As of 2026-10-25 05:41 UTC, the Ptrinh Freeport Nostr MCP server is down with a Glimind reliability score of 38/100 (grade F). Over the last 30 days it answered 99.7% of Glimind's liveness checks. It had 10 outages in 90 days, with a median recovery of 4 minutes.

How many tools does Ptrinh Freeport Nostr MCP server provide?

Ptrinh Freeport Nostr MCP server advertises 6 tools, including freeport_create_post, nostr_get_event, nostr_profile, nostr_query_raw, nostr_search_intents.

How do I install Ptrinh Freeport Nostr MCP server?

Point your MCP client at this streamable-http endpoint: https://nostr-mcp.trinh.uk/mcp

Is the Ptrinh Freeport Nostr MCP server safe to connect to an AI agent?

Glimind scanned all 6 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Ptrinh Freeport Nostr MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve