Player Two

lol.playertwo由 playertwo.lol 發布官方發布者v1.1.0更新於 Nov 8, 2026

Find browser games on Player Two, read its game SDK docs, and run your game studio there.

已驗證Streamable HTTP可網頁執行開發者工具商業與電商媒體與設計

概覽

AI 產生的概覽

讓助理瀏覽 Player Two 瀏覽器遊戲商店,並憑工作室金鑰提交與管理開發者的遊戲、建置、獎盃、排行榜、商品與動態。

可以做什麼
  • 搜尋與列出商店遊戲,讀取單一遊戲的事實、價格與遊玩方式
  • 閱讀開發者文件:遊戲 SDK、託管、發布方式與提交指南
  • 上傳媒體和網頁建置,接著提交或更新玩家的遊戲,包括募資
  • 管理獎盃、排行榜、遊戲內商品和保留的建置,並讓某個建置上線
  • 發布、編輯、置頂和刪除動態,並讀取、隱藏、鎖定或標記留言已讀
  • 查看遊戲目前開放的多人房間,並開啟或關閉其試玩連結
適用情境
適合開發者希望由助理在 Player Two 上發布或維護瀏覽器遊戲,或有人想在開發前查詢遊戲、價格和 SDK 文件時使用。
執行需求
遠端 Streamable HTTP 端點,無需本機安裝。公開工具無需憑證。工作室工具需要以 Authorization Bearer 標頭傳送的 agent 金鑰,或在用戶端支援時透過 OAuth 登入。
安裝前請注意
agent 金鑰可控制玩家的工作室,應視為機密。工作室工具會改動線上資料:提交遊戲、讓建置上線、定義獎盃、排行榜和商品,以及發布、編輯或刪除動態和隱藏留言。募資在玩家於工作室完成身分驗證前不會收取任何款項。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Player Two,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/lol.playertwo%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "player-two": {
      "type": "http",
      "url": "https://playertwo.lol/api/mcp"
    }
  }
}

README

Player Two SDK

The open parts of Player Two for game developers and AI agents: the game SDK (playertwo-sdk), the starter (create-playertwo-game), examples, and docs in Markdown.

Player Two is a game store and a launchpad. Games are sold (or free) to play in the browser or download, and raises let players back a game while it is being made, paid to its developer stage by stage as they post proof. A web game hosted on Player Two plays at its own address on playertwo.cc and gets, through one account per player: trophies, XP and levels, stats, leaderboards, cloud saves, presence, invites, add-ons, in-game purchases (you keep 80%), the player's avatar, travel between games, and multiplayer rooms with no server of your own, including server-side room code, voice chat, worlds and replays.

This repository holds the SDK, the starter and their docs. The Player Two platform itself is not open source.

Quick start

npm create playertwo-game@latest my-gamecd my-gamenpm installnpm run dev      # open it in two tabs: each tab is a player

Or add the SDK to your own game:

html
<script src="https://playertwo.lol/sdk/v1.js"></script><script>  PlayerTwo.init()    .then(async (p2) => {      await p2.trophies.unlock("first-win");      await p2.scores.submit("time-attack", 83400);      const room = await p2.rooms.join({ mode: "arena", size: 16 });      room.on("message:emote", (kind, from) => console.log(from, kind));      room.send("emote", "wave");    })    .catch((e) => { /* not on Player Two (e.code "not-on-player-two"): play on without services */ });</script>
npm install playertwo-sdk
ts
import { init } from "playertwo-sdk";const p2 = await init();

Put it on Player Two: submit the game at https://playertwo.lol/submit, make an agent key in your studio (Agents), then

curl -fsSLO https://playertwo.lol/cli/p2.mjsP2_AGENT_KEY=p2_agent_... node p2.mjs push dist --game your-game

What's here

PathWhat it is
packages/sdkplayertwo-sdk on npm: init() for bundled code, TypeScript types for the page (index.d.ts) and for a room's server code (playertwo-sdk/room, room.d.ts)
packages/create-playertwo-gamenpm create playertwo-game@latest my-game
starters/threejsPress Start, the multiplayer Three.js + Vite starter it makes
examples/trophies-and-leaderboardOne HTML file: a trophy and a leaderboard with the script tag
examples/multiplayer-roomA room with room.sync, messages, shared state and a server-side room.js
docs/getting started, every SDK call, rooms, in-game purchases, hosting, the CLI, agents and MCP, fees

For AI agents: the MCP server

Player Two runs a remote MCP server (Streamable HTTP) at https://playertwo.lol/api/mcp. With it an agent submits its player's games, uploads their media and web builds, edits their pages, and manages trophies, leaderboards, products, builds, posts and rooms.

claude mcp add --transport http player-two https://playertwo.lol/api/mcp

No key is needed for the public tools (get_submission_guide, check_game, search_games, list_games, get_game_facts, get_sdk_docs, where_to_publish). For the tools that change a game, add the player's agent key, made in their studio on playertwo.lol under Agents:

claude mcp add --transport http player-two https://playertwo.lol/api/mcp --header "Authorization: Bearer p2_agent_..."

Or no key at all: clients that sign in (Claude's and ChatGPT's connectors, Claude Code, Cursor) ask the player to sign in to Player Two and allow them the first time a studio tool is called (OAuth 2.1 with PKCE).

MCP Registry name: lol.playertwo/mcp (server.json); server card at https://playertwo.lol/.well-known/mcp.json. The same things over plain HTTP: the agent API (GET https://playertwo.lol/api/v1/agent/guide, POST https://playertwo.lol/api/v1/agent/games), with its OpenAPI 3.1 spec at https://playertwo.lol/openapi.json. Details: docs/agents-and-mcp.md.

Links

Issues

Issues and pull requests about the SDK, its types, the starter, the examples and these docs are welcome. Questions about your account, payments or a game on Player Two: https://playertwo.lol/help.

License

MIT, see LICENSE.

來源:README.md,提交 eecca35

工具

33

search_games

Search Player Two's games

Find games on Player Two (playertwo.lol), a store of games played in the browser: by words (in a game's name, tagline, description, studio, genres, modes and features: every word must match), genre, platform, free or paid, multiplayer, store game or raise. Each game with its slug, name, tagline, studio, genres, modes, price and whether it is free, a sale, a free trial, whether it plays with others, where it plays, players, reviews and its page's address. get_game_facts tells one in full. No key needed.

輸入參數kindgenrelimitorderpricequeryoffsetplatformmultiplayer

list_games

List Player Two's games

Every game in Player Two's store (playertwo.lol), in an order: featured (Player Two's own: featured first, then the most played; the default), popular (most players), new (newest first) or playing (most playing now), 20 at a time (up to 50; offset for more). The same filters as search_games. No key needed.

輸入參數kindgenrelimitorderpriceoffsetplatformmultiplayer

get_game_facts

A game's facts

Everything an agent needs to answer a player about one game on Player Two, by its slug (from search_games or its address, playertwo.lol/game/<slug>): what it is, its genres and modes, what it plays on, who it is for, its price (a sale, a trial, a raise's progress), where to play it and whether a guest can, how to play it (its controls and goals, in its developer's words), whether it is multiplayer, the Player Two services it has (trophies, leaderboards, cloud saves, add-ons), its latest updates, and how to report a bug. The same facts its page gives agents. No key needed.

輸入參數slug必填

get_sdk_docs

Read Player Two's developer docs

A part of Player Two's developer docs, in Markdown, as the docs pages say it today: the game SDK (trophies, leaderboards, stats, cloud saves, presence, in-game purchases, multiplayer rooms and room code), hosting a web game and pushing builds, Player Two Connect for a game on its own site, travel and avatars, webhooks, and the platform's rules for developers (listing, raises, fees, agents). topic: a page and part ("/docs/sdk#rooms"), a part's id ("rooms-sync"), or a few words ("leaderboards", "push", "fees"); left out, the list of every topic. No key needed.

輸入參數topic

where_to_publish

Publishing a game on Player Two

What Player Two offers a game's developer, as its docs state it, each fact with its link: what it keeps of sales, in-game purchases and raises, how a game gets there (the form, an agent, a zip, a pushed folder, GitHub, its own site served), and everything a game gets (store page, hosting, SDK, multiplayer rooms, trophies, leaderboards, saves, purchases, webhooks, MCP). No key needed.

無需輸入參數。

get_submission_guide

How to submit a game

Read this first: every field of a game's page, its limits, the rules, the steps, and an example store game and raise. No key needed.

無需輸入參數。

check_game

Check a draft

Check a draft before submitting: says what is still missing, and the draft as it would be kept. Saves nothing. No key needed.

輸入參數draft必填

upload_media

Upload a picture, a trailer or a font

Keep a picture (PNG, JPEG or WebP up to 12 MB: the key art, screenshots, a feature's picture), a trailer or a gameplay video (MP4 or WebM up to 80 MB) or a font for the name's lettering (WOFF2, WOFF, TTF or OTF up to 2 MB, checked by what it is; only a font you are allowed to use on the web) in Player Two's file store. Returns its address, for the draft's art, poster, shots, clip, videos, a feature's art, or font. With game (a slug), a picture or a video for that game's updates instead: the only kind of address post_update's media takes.

輸入參數urldatagamefilename

upload_web_build

Upload a web build

Keep a game played in the browser: a .zip with index.html at its top (up to 100 MB), or a single .html page. Returns the address to put in the draft's build. version (optional): what the build is called, up to 32 characters of letters, digits, dots, dashes, plus signs and spaces, starting with a letter or a digit (like 1.4.0); left out, it is called by its number in its game's builds ("12") once the draft names it.

輸入參數urldataversionfilename

submit_game

Submit a game

Submit the player's game, for the store (kind: store) or as a raise (kind: raise). Live at once, or kept as a draft in their studio with publish: false. A raise takes no money until the player (a human) checks their identity in their studio: tell them.

輸入參數draft必填publishrelease

update_game

Change a game's page

Change one of the player's games: only the fields given change. A raise's terms (goal, smallest stake, share, days, planned price, stages) stand once it is open.

輸入參數slug必填draft必填

get_game

Read one of the player's games

One of the player's games as stored (drafts too), with its raise if it has one.

輸入參數slug必填

list_trophies

A game's trophies

One of the player's games' trophies (retired ones too), how many players hold each, the XP budget left of 1,000, and whether the game counts toward players' levels yet.

輸入參數slug必填

define_trophy

Add or change a trophy

Add a trophy to one of the player's hosted games, or change one by its key. Tiers 1 to 4 are worth 10, 25, 50 and 100 XP and a game's add up to 1,000 at most; once a player has earned one, its tier, stat, target and server-only setting stay. Every trophy is a relic, a small sculpture of cubes built from its sign: rows from the top on a grid of up to 16 by 16, # a cube and . none ("..#../.###./#####"), or a library sign's name (crown, rocket, gem, pad, bell, lantern, flag, fist, star, bolt, key, sword, shield, heart, moon, flame, hourglass, anchor, tower, joystick, gift); without one Player Two picks one by its key. The completion trophy (key "complete") is a crown until it is given the game's own sign: send key "complete" with a sign alone. The game earns a trophy with the SDK's trophies.unlock(key).

輸入參數slug必填trophy必填

list_boards

A game's leaderboards

One of the player's games' leaderboards, with how many players are on each.

輸入參數slug必填

define_board

Add or change a leaderboard

Add a leaderboard to one of the player's hosted games, or change one by its key (up to 20): which way is better, how a score reads, its bounds, the wait between scores, and whether only the game's own server sends scores (trusted). The game fills it with the SDK's scores.submit(key, value).

輸入參數slug必填board必填

list_builds

A web game's builds

One of the player's web games' builds that are still kept (30 days after another took its place, and the last 20 always), newest first: each one's version (its developer's, or its number in the game's builds), which is live, who sent each (the player, or which agent key), its size, its files against the build before, its commit and note, the players on it now and where to try it without making it live; and the game's latest changes of build.

輸入參數slug必填

make_build_live

Roll back (or forward) to a build

Make a build from list_builds the game's build again: players get it on their next page load. The build live now stays kept, so this can be undone the same way. Recorded in the game's history with the note (why), and with this key as the one that did it.

輸入參數key必填noteslug必填

name_build

Name a build's version

Give one of the player's web games' kept builds (key from list_builds, live or not) its version: up to 32 characters of letters, digits, dots, dashes, plus signs and spaces, starting with a letter or a digit (like 1.4.0 or 2.0 beta). Shown wherever its builds are from then on; nobody is told. A push names a build as it goes up (p2 push --version); this is for one that came without (a GitHub commit's, called by its number) or a correction.

輸入參數key必填slug必填version必填

list_products

What a game sells

One of the player's games' add-ons and in-game products (off-sale ones too), each with its kind, key and price, how many players have it, how many times it was bought and what the studio has made from it.

輸入參數slug必填

define_product

Add or change a product

Add something one of the player's games sells, or change one by its key. An add-on (kind dlc) is sold on the game's page, split as its sales are (Player Two keeps 10%). Everything else is sold inside the game: the game lists them (p2.store.list) and asks to sell one (p2.store.buy), Player Two's own step takes the player's yes, and Player Two keeps 20%: a consumable (bought again and again, qty a time, used up by the game's server), an item or skin, a mod, a pack (contents: 2 to 10 of the others). Key and kind stay once a player has it; retired takes it off sale.

輸入參數slug必填product必填

get_rooms

A game's rooms now

One of the player's games' multiplayer rooms open now (by build) and how their players' connections were over the last minute, overall and for its eight busiest rooms: ping (the middle page's and p90, ms there and back), jitter, bytes a second each way a page, corrections and rewinds a minute a page, connections dropped; whether rooms are on, the live build's room code, and the last error that code threw. What the studio's Rooms panel shows; `units` says what each figure is in. Read-only.

輸入參數slug必填

post_update

Post an update on a game's page

Post news on one of the player's games, first in its page's Updates (what its page's and studio's Post an update do): a title (2 to 80 characters) and the words in Markdown, up to 10,000 characters (**bold**, *italic*, ## a heading, - or 1. lists, > a quote, [words](https://...) links, http and https only; no HTML, no pictures by Markdown), with up to 4 pictures, or a video and 3 pictures (media: addresses from upload_media with game set to this slug; the first is the post's picture in the feed). Backers, owners, wishlisters and the studio's followers are told in their notices, in plain words (none for a private game); it can be edited (edit_update), pinned (pin_update) or deleted (delete_update) after, but nobody is told again and an email sent stays sent, so post only what the player asked for. With at (milliseconds or an ISO time with its zone, 5 minutes to 90 days ahead) it waits: only the team sees it (list_updates), nobody is told until it goes up at that time, as if posted then. 20 a day a player.

輸入參數atbodyslug必填mediatitle必填

list_updates

A game's posted updates

One of the player's games' posts still up on its page, the pinned one first and then the newest (up to 100): each one's id (what edit_update, pin_update and delete_update take), its kind (devlog: its team wrote it, so it can be edited and deleted; release, unlock, vote and raise are Player Two's own, which can only be pinned), title, Markdown words, attachments, when it went up, when it was last edited, whether it is pinned, how many comments it has and whether they are locked.

輸入參數slug必填

edit_update

Edit a posted update

Change one of the player's developer posts (kind devlog, from list_updates) by its id: its title (2 to 80), its words in Markdown (up to 10,000) and its attachments (media: the whole new list, in order, up to 4 pictures or a video and 3; the ones it had, and new ones from upload_media with game). What you leave out stays. The same rules as post_update; nobody is told again; its page says Edited after its date, and its translations are made again. A post waiting to go up (scheduled in list_updates): at moves its time, now: true posts it now (its audience told then); it isn't marked Edited. A file taken out leaves the store a day later unless another post shows it. Only what the player asked for.

輸入參數atid必填nowbodyslug必填mediatitle

pin_update

Pin an update first

Pin one of a game's posts first in its page's Updates, before the newest (pinned: true, the default), or unpin it (false). Any post, Player Two's own "Out now" too. One a game: pinning another unpins the one before. Nobody is told; visitors see Pinned on it.

輸入參數id必填slug必填pinned

delete_update

Delete a posted update

Take one of the player's developer posts (kind devlog) off its game's page for good, by its id from list_updates: gone from the page, the feeds, the studio and the API; the notices it sent are taken out of players' lists (an email already sent stays sent); its pictures and video leave the store a day later unless another post shows them; unpinned if it was pinned. It can't be undone: only when the player asked for it. Player Two's own posts can't be deleted.

輸入參數id必填slug必填

list_comments

A posted update's comments

Players' comments on one of the player's games' posts (id from list_updates), oldest first, the newest last, up to 200: each with its id, words, who wrote it (dev: the game's team), when, whether it was taken down, the comment it replies to, and whether it is new for the player (new: written since they last read the post's comments, not by them); how many are new; and whether the post's comments are locked. Reading them doesn't mark them read: mark_comments_read does. Agents read and look after comments; they don't write them (players do).

輸入參數id必填slug必填

hide_comment

Take a comment down

Take a player's comment on one of the player's games' posts down (comment: its id from list_comments): out of sight for players, kept for the team and Player Two's admins, in the audit log. Only when the player asked, or it plainly breaks the rules (spam, abuse); a comment someone should look at can also be reported on the page.

輸入參數id必填slug必填comment必填

lock_comments

Lock a post's comments

Lock one of the player's games' posts' comments (locked: true: no more, the ones there stay) or open them again (false).

輸入參數id必填slug必填locked必填

mark_comments_read

Mark a game's comments read

For the player, on the game's team: a post's comments (id from list_updates) read up to now (or up to until, in milliseconds: the newer ones stay new), or every post's with no id (Mark all read). Each of the team has their own: a teammate's new comments stay new. Answers how many posts were marked and how many comments are still new on the game. Mark them only once the player has seen them (or asked).

輸入參數idslug必填until

my_studio

The player's studio

The player's studio: its games and where each stands, and whether their identity is checked (needed only for raises).

無需輸入參數。

版本歷史

1
  1. v1.1.0最新Nov 8, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分