@frolick/mcp
v0.1.0
Published
Official Frolick MCP server — create games, content sets, widgets and boards on Frolick from Claude, Cursor, or any MCP client.
Maintainers
Readme
@frolick/mcp
The official Frolick MCP server — add it to Claude, Cursor, or any Model Context Protocol client and work with the Frolick platform as yourself: browse your content, and create games, content sets, widgets, and boards.
Install
Add this to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"frolick": {
"command": "npx",
"args": ["-y", "@frolick/mcp"],
"env": { "FROLICK_API_TOKEN": "pat_your_token_here" }
}
}
}Get a token at https://app.frolick.ru/profile/settings/api-tokens → Create token (the value is shown once — copy it into the config above).
What it can do
The server is a thin, generic proxy. On startup it fetches a capability manifest from
the platform (/api/v1/mcp/manifest) and registers the current tools dynamically — so the
tool list always matches what Frolick supports, with nothing hard-coded or bundled here.
Typical tools (subject to the live manifest): list_game_types, list_content_sets,
create_content_set, add_content_set_item, set_content_set_field_values,
create_game_template, create_game, create_widget_instance,
create_widget_board, add_widget_to_board, and more. Resources include
frolick://games/catalog and frolick://widgets/catalog.
Public read tools work without a token; anything that touches your account needs
FROLICK_API_TOKEN.
Configuration
| Env var | Default | Purpose |
|---|---|---|
| FROLICK_API_TOKEN | – | Personal Access Token (pat_…). Required for account tools. |
| FROLICK_API_BASE_URL | https://app.frolick.ru | API origin (manifest + calls). |
| FROLICK_MCP_TIMEOUT_MS | 15000 | Per-request timeout. |
| FROLICK_MCP_READONLY | unset | 1 = expose only non-mutating tools. |
Security
- Your token is read from the environment only — never committed to the package.
- It acts on your behalf. Treat it like a password; revoke it anytime in settings.
- This package ships no Frolick source, schemas, or business logic — it only knows how to call the API described by the public manifest at runtime.
Development (contributors)
bun run --filter @frolick/mcp dev # tsx watch against the live manifest
bun run --filter @frolick/mcp inspect # MCP Inspector
bun run --filter @frolick/mcp test # vitest
bun run --filter @frolick/mcp build # emit dist/Publishing
Prerequisites on npmjs.com:
- Create the
@frolickorganization — required before the first publish. Open https://www.npmjs.com/org/create and register the org namefrolick. Without this, publish fails with404 Scope not found. - Add your npm user to that org with Publish permission.
- Enable two-factor authentication on your npm account.
From packages/mcp:
bun run publish:check # verify login, 2FA, and @frolick org exist
bun run publish:npm -- --dry-run # pack tarball via npm (works inside monorepo)
bun run release # check + publish to registry.npmjs.orgbun publish can fail with a misleading 404 until the org exists; prefer bun run release.
Smoke-test the stdio protocol directly:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| FROLICK_API_BASE_URL=https://app.frolick.ru npx tsx src/index.ts