Fun Friday

Host online team-building games: list games, open rooms and share join links, report results.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
86%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,580Token(工具定義)
~3.2 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.02%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "funfriday": {
      "url": "https://www.funfriday.work/mcp"
    }
  }
}

遠端端點

https://www.funfriday.work/mcpstreamable-http

它能做什麼

工具清單

工具(7)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢funfriday_list_games(include_premium)

List the team-building games available to play on Fun Friday (funfriday.work), with each game's name, description, ideal group size and whether it needs a paid plan. Use this to answer "what could we play?" or to pick a game_type before calling funfriday_create_session.

輸入結構描述

{
  "type": "object",
  "properties": {
    "include_premium": {
      "type": "boolean",
      "description": "Include games that require a paid plan. Default true — those games are listed and flagged as needing one, so an assistant can say which of them the team cannot currently play rather than pretending they do not exist.",
      "default": true
    }
  },
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "games": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "game_type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "requires_paid_plan": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "game_type",
          "name",
          "description",
          "requires_paid_plan",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "number"
    }
  },
  "required": [
    "games",
    "count"
  ],
  "additionalProperties": false
}
🔴funfriday_create_session(game_type)

Start a new Fun Friday game session and get back the room code and join link to share with the team. This opens a real room that people can join immediately, and uses one of the team's games for the week — confirm with the user before calling it.

輸入結構描述

{
  "type": "object",
  "properties": {
    "game_type": {
      "type": "string",
      "description": "Which game to host. Call funfriday_list_games first if unsure; this is the internal key, not the display name (Imposter is \"faker\", Colour Clue is \"hues_cues\").",
      "enum": [
        "trivia_blitz",
        "faker",
        "emoji_story",
        "two_truths",
        "caption_this",
        "hot_takes",
        "timeline",
        "drawing_blind",
        "bid_bluff",
        "hues_cues",
        "majority_rules",
        "typing_sprint",
        "odd_one_out",
        "guess_who",
        "ballpark",
        "zoomed_in",
        "plot_twist",
        "top_rank",
        "phrase_wheel",
        "bluff_trivia",
        "code_clues",
        "pin_drop",
        "defuse",
        "black_box",
        "knowledge_pursuit"
      ]
    }
  },
  "required": [
    "game_type"
  ],
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "room_code": {
      "type": "string"
    },
    "game_type": {
      "type": "string"
    },
    "game_name": {
      "type": "string"
    },
    "join_url": {
      "type": "string",
      "format": "uri"
    },
    "plan": {
      "type": "string"
    }
  },
  "required": [
    "room_code",
    "game_type",
    "game_name",
    "join_url",
    "plan"
  ],
  "additionalProperties": false
}
🟢funfriday_get_session(room_code)

Check what is happening in a Fun Friday session right now: whether it is still in the lobby or being played, who has joined, and the current scores. Use this to answer "has everyone joined yet?" or "who is winning?" without opening the browser.

輸入結構描述

{
  "type": "object",
  "properties": {
    "room_code": {
      "type": "string",
      "description": "The six-character room code for the session, e.g. \"K7PQ2M\". Case-insensitive. Room codes never contain the letters I or O, or the digits 0 or 1."
    }
  },
  "required": [
    "room_code"
  ],
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "room_code": {
      "type": "string"
    },
    "game_type": {
      "type": "string"
    },
    "game_name": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "round_number": {
      "type": [
        "number",
        "null"
      ]
    },
    "host": {
      "type": [
        "string",
        "null"
      ]
    },
    "player_count": {
      "type": "number"
    },
    "players": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "is_host": {
            "type": "boolean"
          }
        },
        "required": [
          "display_name",
          "score",
          "is_host"
        ],
        "additionalProperties": false
      }
    },
    "join_url": {
      "type": "string",
      "format": "uri"
    },
    "started_at": {
      "type": "string",
      "format": "date-time"
    },
    "ended_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  },
  "required": [
    "room_code",
    "game_type",
    "game_name",
    "status",
    "round_number",
    "host",
    "player_count",
    "players",
    "join_url",
    "started_at",
    "ended_at"
  ],
  "additionalProperties": false
}
🟢funfriday_list_sessions(limit)

List the Fun Friday sessions this team has played recently, most recent first, with the game played, when it happened, how many people took part and who won. Use this for "when did we last do a Fun Friday?" or to summarise the last few weeks.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "How many sessions to return, newest first. 1–50, default 10.",
      "default": 10
    }
  },
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "sessions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "room_code": {
            "type": "string"
          },
          "game_type": {
            "type": "string"
          },
          "game_name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "played_at": {
            "type": "string",
            "format": "date-time"
          },
          "player_count": {
            "type": "number"
          },
          "winner": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "display_name": {
                "type": "string"
              },
              "score": {
                "type": "number"
              }
            },
            "required": [
              "display_name",
              "score"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "room_code",
          "game_type",
          "game_name",
          "status",
          "played_at",
          "player_count",
          "winner"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "number"
    }
  },
  "required": [
    "sessions",
    "count"
  ],
  "additionalProperties": false
}
🟢funfriday_get_leaderboard(limit)

Get the all-time Fun Friday leaderboard for the user's team — every player's total score, games played and rank across all sessions. Use this for "who is top of the leaderboard?" or to write up a standings summary.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "How many ranked players to return. 1–100, default 20.",
      "default": 20
    }
  },
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "leaderboard": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rank": {
            "type": "number"
          },
          "display_name": {
            "type": "string"
          },
          "total_score": {
            "type": "number"
          },
          "games_played": {
            "type": "number"
          }
        },
        "required": [
          "rank",
          "display_name",
          "total_score",
          "games_played"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "number"
    },
    "total_players": {
      "type": "number"
    }
  },
  "required": [
    "leaderboard",
    "count",
    "total_players"
  ],
  "additionalProperties": false
}
🟢funfriday_get_team

Get the user's Fun Friday team: its name, how many members it has, which plan it is on, how many of this week's games remain, and how many custom packs it has and may keep. Use this before hosting to check the team has a game left, before funfriday_create_pack to check there is room for a pack, or to answer questions about the plan and its limits.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "team": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "member_count": {
          "type": "number"
        }
      },
      "required": [
        "name",
        "member_count"
      ],
      "additionalProperties": false
    },
    "plan": {
      "type": "string"
    },
    "games_used_this_week": {
      "type": "number"
    },
    "games_remaining_this_week": {
      "type": [
        "number",
        "null"
      ]
    },
    "max_games_per_week": {
      "type": [
        "number",
        "null"
      ]
    },
    "max_players": {
      "type": "number"
    },
    "week_resets_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "playable_game_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "custom_packs_used": {
      "type": "number"
    },
    "custom_packs_limit": {
      "type": [
        "number",
        "null"
      ],
      "description": "How many custom packs the team may keep: 0 when its plan has none, null when unlimited."
    }
  },
  "required": [
    "team",
    "plan",
    "games_remaining_this_week",
    "max_players"
  ],
  "additionalProperties": false
}
🟡funfriday_create_pack(pack_type, name, questions, words, phrases)

Create a custom content pack for the user's Fun Friday team, so the team plays their own material: Trivia Blitz questions (pack_type "trivia"), Imposter word lists (pack_type "faker") or Emoji Story phrases (pack_type "emoji_story"). A custom pack replaces the game's built-in content with the team's own — in-jokes, company trivia, a theme for the week. Only these three games take custom packs; for any other game, say so rather than calling this. Send the content in the one list that matches pack_type, and write it to play well (see each list's description). The host picks the pack in the lobby before pressing Start. Custom packs need a Pro or Business plan, which caps how many a team can keep — call funfriday_get_team first if unsure.

輸入結構描述

{
  "type": "object",
  "properties": {
    "pack_type": {
      "type": "string",
      "description": "Which game the pack is for: \"trivia\" (Trivia Blitz), \"faker\" (Imposter) or \"emoji_story\" (Emoji Story).",
      "enum": [
        "trivia",
        "faker",
        "emoji_story"
      ]
    },
    "name": {
      "type": "string",
      "description": "The pack's name as the team will see it in the lobby, e.g. \"Office trivia\". Up to 60 characters."
    },
    "questions": {
      "type": "array",
      "description": "For pack_type \"trivia\" only: the questions, 100 at most. Each has text (up to 300 characters), exactly four options (up to 100 characters each) and correct_index, the 0-based index of the right option. Make the three wrong options plausible, keep options similar in length, and vary which position is correct. Ten to twenty questions makes a good game.",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The question."
          },
          "options": {
            "type": "array",
            "description": "Exactly four answer options.",
            "items": {
              "type": "string"
            },
            "minItems": 4,
            "maxItems": 4
          },
          "correct_index": {
            "type": "integer",
            "description": "Index (0–3) of the correct option in options.",
            "minimum": 0,
            "maximum": 3
          }
        },
        "required": [
          "text",
          "options",
          "correct_index"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 100
    },
    "words": {
      "type": "array",
      "description": "For pack_type \"faker\" only: 2–500 related words or short phrases (up to 100 characters each). Each round pairs two of them — one for the group, a near miss for the imposter — so they should all belong to one theme. Pick words close enough that the imposter can bluff (e.g. \"latte\", \"espresso\", \"cappuccino\"), not opposites or unrelated words. Ten or more gives variety across rounds.",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "maxItems": 500
    },
    "phrases": {
      "type": "array",
      "description": "For pack_type \"emoji_story\" only: 1–500 phrases for players to tell in emoji — film titles, sayings, team in-jokes (up to 200 characters each). Choose phrases a player could tell with a handful of emoji and the room could guess; avoid abstract or very long ones.",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 500
    }
  },
  "required": [
    "pack_type",
    "name"
  ],
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "pack_type": {
      "type": "string"
    },
    "game_type": {
      "type": "string"
    },
    "game_name": {
      "type": "string"
    },
    "item_count": {
      "type": "number"
    },
    "manage_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "name",
    "pack_type",
    "game_type",
    "game_name",
    "item_count",
    "manage_url"
  ],
  "additionalProperties": false
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本7 個工具