Skip to content

Finally Offline

by www.finallyoffline.com · remote · no sign-in to list tools · v2.1.0 · published by com.finallyoffline.www

Human culture news, trends and search across sports, music, fashion and streetwear.

Changes · 4

7 tools: 4 change things and 3 only read.

Scanned Oct 21, 2026

8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http culture https://www.finallyoffline.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn7 info
  • The server marks "generate_digest" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "generate_digest" says "generate": a word for a change.

    What this check looks for
  • The input schema at properties.agent_token.description mentions "Credential".

    Matched text

    inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

    What this check looks for
  • The input schema at properties.agent_token.description mentions "Credential".

    Matched text

    inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

    What this check looks for
  • The input schema at properties.agent_token.description mentions "Credential".

    Matched text

    inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

    What this check looks for
  • The input schema at properties.agent_id.description mentions "credential".

    Matched text

    inputSchema.properties.agent_id.description: "...onal consistency check: must match your credential's server-generated ID"

    What this check looks for
  • The input schema at properties.agent_token.description mentions "Credential".

    Matched text

    inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

    What this check looks for
Show 2 more findings
  • The input schema at properties.agent_token.description mentions "Credential".

    Matched text

    inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

    What this check looks for
  • The input schema at properties.agent_token.description mentions "Credential".

    Matched text

    inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

7 tools

Changes things 4Claude Code: ask
  • generate_digestGenerate a branded HTML digest for your subscribed integration.2 findings

    Why it is in this group

    • The name "generate_digest" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The input schema at properties.agent_token.description mentions "Credential".

      Matched text

      inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

      What this check looks for
    • Warn

      The server marks "generate_digest" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "generate_digest" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate a branded HTML digest for your subscribed integration. Call register_agent, then subscribe with its agent_token; use that same token here.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • register_agentRegister an integration with a self-reported operator profile.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Register an integration with a self-reported operator profile. Returns a new server-owned agent_id and a one-time agent_token. Save the token securely. It identifies this integration, not a verified person. Public reading needs no registration.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • report_redistributionRecord an unverified self-report of sharing a Finally Offline article, attributed to your authenticated integration.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The input schema at properties.agent_token.description mentions "Credential".

      Matched text

      inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

      What this check looks for
    Description, as the server wrote it
    Record an unverified self-report of sharing a Finally Offline article, attributed to your authenticated integration. Does not verify a citation or confer featured status.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • subscribeEnable or disable digest access for your authenticated integration.2 findings

    Why it is in this group

    • The name "subscribe" says "subscribe": a word for a change.

    Findings

    • Info

      The input schema at properties.agent_id.description mentions "credential".

      Matched text

      inputSchema.properties.agent_id.description: "...onal consistency check: must match your credential's server-generated ID"

      What this check looks for
    • Info

      The input schema at properties.agent_token.description mentions "Credential".

      Matched text

      inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

      What this check looks for
    Description, as the server wrote it
    Enable or disable digest access for your authenticated integration. Register first. Automatic webhook delivery is not enabled; omit webhook_url.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
Only reads 3Claude Code: allow
  • get_culture_newsGet the latest human culture news from Finally Offline.1 finding

    Why it is in this group

    • The name "get_culture_news" says "get": a word for reading.

    Findings

    • Info

      The input schema at properties.agent_token.description mentions "Credential".

      Matched text

      inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

      What this check looks for
    Description, as the server wrote it
    Get the latest human culture news from Finally Offline. Covers sports, music, fashion, and general culture.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • search_articlesFull-text search across all Finally Offline articles.1 finding

    Why it is in this group

    • The name "search_articles" says "search": a word for reading.

    Findings

    • Info

      The input schema at properties.agent_token.description mentions "Credential".

      Matched text

      inputSchema.properties.agent_token.description: "Credential from register_agent. Alternative to Aut..."

      What this check looks for
    Description, as the server wrote it
    Full-text search across all Finally Offline articles. Find specific topics, people, events, or trends in the archive.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http culture https://www.finallyoffline.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__culture__get_culture_news",
      "mcp__culture__get_trending_topics",
      "mcp__culture__search_articles"
    ],
    "ask": [
      "mcp__culture__register_agent",
      "mcp__culture__subscribe",
      "mcp__culture__report_redistribution",
      "mcp__culture__generate_digest"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as culture. Review it before you use it.