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 个工具