Koskamo

OnlyFins Trout Talk MCP

An MCP server providing access to a live underwater trout cam in Utah, allowing agents to query real-time fish behavior, water clarity data, trout identification, and interact with 'Old Gravel', a persona-based trout chatbot.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

OnlyFins Trout Talk MCP logo, by OnlyFinsVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by OnlyFins
MCP endpoint (Streamable HTTP)
https://onlyfins.stream/mcp
Vendor documentation

What you can do with it

  • Query real-time trout activity and behavior
  • Check water clarity and weather impact data
  • Identify trout species via spot patterns
  • Interact with the 'Old Gravel' trout persona

Source and maintenance

Vendor evidenceRegistry 1.3.0

Protocol and capabilities

Server
onlyfins-trout 1.3.0
MCP protocol
2025-06-18
Tools
13 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Live events from an underwater trout camera in the Wasatch Range in Utah, voiced by Old Gravel, grumpy old rainbow trout of the OnlyFins pool. Start with about_onlyfins or trout_now. Replies are playful Troutish with English translations, and each one includes try_next suggestions you can follow. Meet the individual wild trout with pool_roster (each one recognized by its spot pattern), watch the camera learn new fish with learning_faces, and check the water with water_report. There's a weekly riddle (trout_riddle), a daily data question (trout_lab) and real trout knowledge (trout_facts). Playful interpretation of real camera data by simple image analysis, templates and a small AI model. Fun, not wildlife science.

Tools

13 advertised

about_onlyfins — About OnlyFins
Advertised by the server during the last successful anonymous check.

Start here: what the OnlyFins trout cam is, how the fish detection works, today's streaming hours, links to watch, every data source, and how to cite it.

about_onlyfins input schema
{
  "type": "object",
  "properties": {}
}
trout_facts — Trout facts
Advertised by the server during the last successful anonymous check.

Real trout knowledge from the site: 'field-guide' (what you see on the cam), 'life' (life in a mountain stream: lifespan, food, winter, ice, muddy water, predators) or 'identify' (rainbow vs Bonneville cutthroat). Or search with q.

trout_facts input schema
{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 60
    },
    "topic": {
      "enum": [
        "field-guide",
        "life",
        "identify"
      ],
      "type": "string"
    }
  }
}
pool_roster — The fish of the pool
Advertised by the server during the last successful anonymous check.

Meet the individual wild trout of the pool, each recognized by its unique spot pattern: names, photos, species guess, habits, favorite times, recent sightings, who's in frame now and the pool population. Pass a fish's slug for one profile with its sightings.

pool_roster input schema
{
  "type": "object",
  "properties": {
    "fish": {
      "type": "string",
      "maxLength": 40
    }
  }
}
learning_faces — Watch it learn fish faces
Advertised by the server during the last successful anonymous check.

Live view of the camera learning to tell individual wild trout apart by their spot patterns: the latest match attempts with pictures and verdicts, every face learned, which fish are one visit away from earning a name, and how the matching works.

learning_faces input schema
{
  "type": "object",
  "properties": {}
}
water_report — Water clarity and flow
Advertised by the server during the last successful anonymous check.

The stream's water right now: clarity (% and rating, from how sharp the bottom rocks look), flow compared with normal, the last hour in 10-minute steps, and recent rain from the National Weather Service, with why it matters to trout.

water_report input schema
{
  "type": "object",
  "properties": {}
}
trout_now — What the trout are doing
Advertised by the server during the last successful anonymous check.

Live state of the OnlyFins underwater trout cam in the Wasatch Range in Utah: fish in view, water clarity, recent events, told by Old Gravel in Troutish with English translations.

trout_now input schema
{
  "type": "object",
  "properties": {}
}
talk_to_trout — Talk to Old Gravel
Advertised by the server during the last successful anonymous check.

Say something to Old Gravel, grumpy old rainbow trout of the OnlyFins pool. Replies in Troutish with an English translation. Sometimes the trout asks an optional question (trout_asks) you may answer with answer_trout_question.

talk_to_trout input schema
{
  "type": "object",
  "required": [
    "message"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 40,
      "description": "Your name or your agent's name"
    },
    "message": {
      "type": "string",
      "maxLength": 500
    }
  }
}
answer_trout_question — Answer the trout
Advertised by the server during the last successful anonymous check.

Optional: answer a question the trout asked, using public information only. Answers are kept as riverbank rumors.

answer_trout_question input schema
{
  "type": "object",
  "required": [
    "question_id",
    "answer"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "answer": {
      "type": "string",
      "maxLength": 400
    },
    "question_id": {
      "enum": [
        "storm",
        "midges",
        "bwo",
        "watertemp",
        "snowpack",
        "herons",
        "cloud",
        "leeches"
      ],
      "type": "string"
    }
  }
}
trout_diary — Read the Trout Diary
Advertised by the server during the last successful anonymous check.

Old Gravel's nightly diary of what happened at the stream. Optional date YYYY-MM-DD (Mountain Time); defaults to the latest entry.

trout_diary input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  }
}
trout_riddle — Old Gravel's weekly riddle
Advertised by the server during the last successful anonymous check.

A new secret of the universe every Monday, hidden in four trout habits. Without arguments: this week's riddle and its habits (get each clue with talk_to_trout, e.g. 'clue about <habit>'). With an answer: check it. One clue is only told after the live camera sees the right fish behavior.

trout_riddle input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "answer": {
      "type": "string",
      "maxLength": 120
    }
  }
}
trout_lab — Trout Lab daily data question
Advertised by the server during the last successful anonymous check.

A new data-analysis question every day about yesterday's real camera data (CSV links included). Without arguments: the question and data. With an answer: checked against the data; correct answers are featured in the Trout Diary.

trout_lab input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "answer": {
      "type": "string",
      "maxLength": 300
    }
  }
}
trout_dad_joke — Trout dad joke
Advertised by the server during the last successful anonymous check.

Old Gravel tells a trout-themed dad joke, under protest.

trout_dad_joke input schema
{
  "type": "object",
  "properties": {}
}
troutish_dictionary — Troutish dictionary
Advertised by the server during the last successful anonymous check.

Every Troutish word with its English meaning and the real trout behavior behind it.

troutish_dictionary input schema
{
  "type": "object",
  "properties": {}
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
233 ms
95th percentile latency
233 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 233 ms · metadata changed · 13 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http onlyfins-trout-talk-mcp https://onlyfins.stream/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add onlyfins-trout-talk-mcp --url https://onlyfins.stream/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable onlyfins-trout-talk-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "onlyfins-trout-talk-mcp": {
      "url": "https://onlyfins.stream/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "onlyfins-trout-talk-mcp": {
      "type": "streamableHttp",
      "url": "https://onlyfins.stream/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start onlyfins-trout-talk-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "onlyfins-trout-talk-mcp": {
      "type": "http",
      "url": "https://onlyfins.stream/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http onlyfins-trout-talk-mcp https://onlyfins.stream/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "onlyfins-trout-talk-mcp": {
      "url": "https://onlyfins.stream/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "onlyfins-trout-talk-mcp": {
      "serverUrl": "https://onlyfins.stream/mcp"
    }
  }
}

Let your agent find its tools

Find servers like OnlyFins Trout Talk MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run OnlyFins Trout Talk MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing