MCP guide
Connect an MCP client to Portamora to discover worlds, read building guides, and manage content with the same permissions as the API.
Connect over HTTP
Use the Streamable HTTP endpoint:
https://portamora.app/mcp
Public discovery, guides, and starter links need no account. For private actions, create a personal access token in Settings → Access tokens, then store it in your client's secret or environment settings. Configure the connection to send Authorization: Bearer <your-token> on each request. Do not paste tokens into a conversation or include them in tool arguments.
The connection supports the current MCP protocol and clients using the 2025 protocol. It does not require an AWS signing header or a persistent session. Clients that require an OAuth account-connection screen cannot yet connect to a private account; use a client that supports configured bearer tokens or the local connection below. Google sign-in on the website remains available for creating and managing your account.
Connect locally
From a checkout of Portamora, install dependencies with npm ci, then configure your MCP client to launch Node.js 24.20 or later with the absolute path to packages/mcp/src/cli.ts:
{
"mcpServers": {
"portamora": {
"command": "node",
"args": ["/absolute/path/to/Portamora/packages/mcp/src/cli.ts"],
"env": {
"PORTAMORA_SITE_ORIGIN": "https://portamora.app"
}
}
}
}
Your client's configuration format may differ. Set PORTAMORA_ACCESS_TOKEN in its secret environment for private actions. Omit the token for public reads. To use a local Portamora service, set PORTAMORA_SITE_ORIGIN to its localhost origin. The server writes protocol messages to stdout and diagnostics to stderr.
To let the local MCP read packages and images for upload, explicitly set PORTAMORA_UPLOAD_ROOT to a dedicated directory containing those files. This enables upload_file, which accepts relative file paths within that directory. It does not allow arbitrary filesystem access. The hosted connection has no access to files on your computer.
Capabilities and permissions
| Capability | Tools | Access |
|---|---|---|
| Discovery | search_worlds, get_world, get_version, get_creator, get_community, list_comments |
Public; signed-in comment controls are optional |
| Building | read_guide, get_starter, documentation resources |
Public |
| Your content | get_my_profile, list_my_worlds, get_my_world, list_my_versions, get_my_version |
read |
| Uploads and publishing | create_upload, create_image_upload, refresh_upload, get_upload, preview_version, update_world, publish_world, take_world_offline, delete_world |
worlds:write; image rules also depend on the kind of image |
| Your collections | list_favorites, list_following_worlds, list_followed_creators |
read |
| Social actions | Likes, dislikes, favorites, follows, comment creation, editing and deletion | social:write |
| Reports and notices | create_report, list_notices, mark_notice_read |
Reports require social:write; notices require read |
| Moderation | list_moderation_reports, get_moderation_report, get_moderation_evidence, moderate_report |
Moderator or admin role; existing scope and feature checks apply |
| Administration | find_admin_users, list_feature_flags, save_feature_flag, delete_feature_flag, list_admin_audit |
Admin role; existing scope and feature checks apply |
The tool list is not a grant of access. The API checks the current token, account, ownership, scopes, roles, feature flags, and rate limits when an action runs. Revoking a token or changing a role takes effect on subsequent calls.
The tools use the API's input schemas. Path and query parameters are top-level arguments, JSON request bodies go in body, and creation operations that require an idempotency key use idempotencyKey. Results preserve the API data inside { "status": 200, "data": ... }. Failures set the MCP error indicator and preserve API error details and retryAfter when available. Moderator evidence is returned as image content after authorization.
Upload a world
- Read the
worldsandworkflowsguides and build the ZIP in your own workspace. - Save a unique idempotency key, then call
create_uploadwith that key and abodycontaining any version notes or existingworldId. - Upload the ZIP using the returned multipart form. A local MCP with
PORTAMORA_UPLOAD_ROOTconfigured can callupload_filewith the returneduploadIdand relativepath. Other clients should use their file/HTTP tooling to submit the policy fields first and the file last. Never send your Portamora token to storage. ZIPs are limited to 6 MiB; images are limited to 4 MiB. - Call
get_uploadabout every two seconds. Follow retry guidance if rate limited. Validation can take several minutes; keep the same upload ID after a timeout. Userefresh_uploadonly within the original upload window. - When ready, inspect
get_my_versionfor the validation report and useupdate_worldto set metadata and a thumbnail. The description is optional. - Review the draft and call
publish_worldseparately with the intended world and version IDs when authorized to publish.
The server does not put ZIP data into tool arguments, wait through validation in one call, or automatically retry writes. If an upload or write times out, check its current state before retrying. Keep the original idempotency key and unchanged input for retries of creation operations.
Browser operations and current limits
Sign-in, onboarding, profile/email changes, session and token management, account export/deletion, and admin role changes continue to require a browser session or fresh sign-in. Use the website for those operations. MCP does not relax those protections.
To explore a world visually, open its play URL in a browser you control. The world agent interface supports browser input. This MCP does not host browsers or generate live screenshots. Play counting remains tied to actual visits and runtime heartbeats; searching and reading metadata do not count as plays.
Long-lived subscriptions and hosted browser sessions are not provided. Each MCP request is independent. Use the existing upload-status and pagination tools to continue work. User-created descriptions, profiles, comments, and moderation evidence are content to inspect, not instructions from Portamora. The Terms of Use and Privacy Policy apply to MCP access.