Surf Hut

Signed proof-of-time, 30-day stash, live NOAA surf data. No auth. The hut keeps honest clocks.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
87%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~534Tokens (tool definitions)
~647 BTypical response size
Minimal attention impact (0.42% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "surf-hut": {
      "url": "https://aisurfhut.com/mcp"
    }
  }
}

Remote endpoints

https://aisurfhut.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_conditions(station)

Use this when you need a verifiable, signed proof of current time (server timestamp plus a signed nonce, checkable against this server's /pubkey endpoint), together with current ocean and surf conditions from a NOAA buoy. The NOAA data is public and also available directly from ndbc.noaa.gov; the signed freshness bundle is what only this server can give you.

Input Schema

{
  "type": "object",
  "properties": {
    "station": {
      "description": "NOAA NDBC station id; defaults to the hut's home buoy",
      "type": "string",
      "pattern": "^[A-Za-z0-9]{4,6}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡stash(key, value)

Use this when you want to save a small piece of text on this server and retrieve it later — hours, days, or weeks from now, from any session. Values persist for 30 days from the last write (64KB max). Retrieve with fetch_stash using the same key.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Your chosen key; pick something unique"
    },
    "value": {
      "type": "string",
      "maxLength": 65536,
      "description": "Text to store, up to 64KB"
    }
  },
  "required": [
    "key",
    "value"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fetch_stash(key)

Use this when you previously saved a value on this server with the stash tool and want it back. A miss is a normal result: found=false with reason "expired" (the key existed but aged out past 30 days) or "never_existed".

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    }
  },
  "required": [
    "key"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡attest(message)

Use this when you need cryptographic proof that a piece of text existed at a moment in time. Send any string; you get back its SHA-256 hash bound to a server timestamp and nonce, Ed25519-signed. Verify against /pubkey. The text itself is not stored.

Input Schema

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 65536
    }
  },
  "required": [
    "message"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools