Skip to main content

MCP Server

fibe.gg includes a built-in Model Context Protocol (MCP) server. Any MCP-compatible AI agent or client can connect to the MCP server and manage the entire platform using natural language.

Quick Start

1. Create an API Key

Create an API key with the mcp:access scope plus all resource scopes you want the agent to use:

Navigate to Profile → API Keys in the web UI, or use the API:

POST /api/keys
{
"api_key": {
"label": "MCP Agent Key",
"scopes": [
"mcp:access",
"playrooms:read", "playrooms:write",
"playspecs:read", "playspecs:write",
"playgrounds:read", "playgrounds:write",
"playzones:read", "playzones:write",
"repos:write",
"launch:write",
"import_templates:read", "import_templates:write"
]
}
}

2. Configure Your AI Client

Add the following to your MCP client configuration:

{
"mcpServers": {
"playgrounds-dev": {
"url": "https://fibe.gg/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_TOKEN"
}
}
}
}

3. Start Using It

Ask your AI agent things like:

"List my playrooms and show which ones are active"

"Create a playspec with a Rails app, PostgreSQL, and Redis"

"Launch a playground from my web-stack playspec on playroom 1"

The agent will use the appropriate MCP tools to carry out your request.

Endpoint

MethodPathDescription
POST/mcpSend JSON-RPC 2.0 messages
GET/mcp/sseSSE stream (legacy transport)
DELETE/mcpTerminate session

The server supports both the Streamable HTTP transport (recommended) and the legacy SSE transport.

Authentication

  • Method: Bearer token in the Authorization header
  • Required scope: mcp:access on the API key
  • Per-tool scopes: Each tool additionally checks resource-specific scopes (e.g., playgrounds:write)

All standard API authentication rules apply. An API key without mcp:access will be rejected with a 403 Forbidden error.

Available Tools

Playrooms (Docker Hosts)

ToolRequired ScopeDescription
list_playroomsplayrooms:readList all playrooms
get_playroomplayrooms:readGet playroom details
create_playroomplayrooms:writeCreate a new playroom
delete_playroom ⚠️playrooms:deleteDelete a playroom
test_playroom_connectionplayrooms:readTest SSH/Docker connectivity

Playspecs (Environment Blueprints)

ToolRequired ScopeDescription
list_playspecsplayspecs:readList all playspecs
get_playspecplayspecs:readGet playspec with services and files
create_playspecplayspecs:writeCreate from Docker Compose YAML
delete_playspec ⚠️playspecs:deleteDelete a playspec
validate_composeplayspecs:readValidate Docker Compose YAML

Playgrounds (Running Environments)

ToolRequired ScopeDescription
list_playgroundsplaygrounds:readList all playgrounds
get_playgroundplaygrounds:readGet playground details
create_playgroundplaygrounds:writeCreate and deploy a playground
destroy_playground ⚠️playgrounds:deleteTear down containers
get_playground_statusplaygrounds:readGet deployment status
get_playground_logsplaygrounds:readGet service container logs
get_playground_debugplaygrounds:readGet diagnostic/debug info
recreate_playground ⚠️playgrounds:writeRe-deploy from scratch
extend_playgroundplaygrounds:writeExtend the TTL

Playzones (GitHub Repos)

ToolRequired ScopeDescription
list_playzonesplayzones:readList connected repositories
get_playzoneplayzones:readGet repository details
get_playzone_branchesplayzones:readList branches
create_playzoneplayzones:writeConnect a GitHub repository

Launch

ToolRequired ScopeDescription
launch_playspeclaunch:writeOne-shot: Docker Compose YAML → deployed environment

Templates

ToolRequired ScopeDescription
list_templatesimport_templates:readList your templates
get_templateimport_templates:readGet template details and versions
search_templatesimport_templates:readSearch templates by name, category, and filters
list_template_categoriesimport_templates:readList available template categories
create_templateimport_templates:writeCreate a new template with an initial version
update_templateimport_templates:writeUpdate template metadata (name, description, category)
delete_template ⚠️import_templates:writeDelete a template and all its versions
list_template_versionsimport_templates:readList versions of a template
create_template_versionimport_templates:writeAdd a new version to a template
toggle_template_version_publicimport_templates:writeToggle a version's public/private visibility
delete_template_version ⚠️import_templates:writeDelete a specific version
upload_template_imageimport_templates:writeUpload a cover image for a template
fork_templateimport_templates:writeFork a public template into your account

Agent Data (Artefacts, Feedbacks, Mutters)

ToolRequired ScopeDescription
list_artefactsagents:readList artefacts with optional filters
get_artefactagents:readGet artefact details
upload_artefactagents:writeUpload a file as an artefact
download_artefactagents:readDownload an artefact file
list_feedbacksagents:readList feedbacks with optional filters
get_feedbackagents:readGet feedback details
create_feedbackagents:writeCreate a new feedback entry
update_feedbackagents:writeUpdate feedback content
delete_feedbackagents:deleteDelete a feedback entry
list_agent_muttersagents:readList agent mutters with optional filters
get_agent_mutteragents:readGet mutter details
create_agent_mutteragents:writeCreate a new mutter

Advanced Filtering: The list_artefacts, list_feedbacks, and list_agent_mutters tools all support:

ParameterDescription
queryText search across name/content
playground_idFilter by originating workspace
sortSort field (e.g., created_at, updated_at)
sort_directionasc or desc
limitMax results to return

Webhooks

ToolRequired ScopeDescription
list_webhook_endpointswebhooks:readList all webhook endpoints
create_webhook_endpointwebhooks:writeCreate a new endpoint
update_webhook_endpointwebhooks:writeUpdate an endpoint
delete_webhook_endpointwebhooks:deleteDelete an endpoint
list_webhook_deliverieswebhooks:readView delivery history
test_webhook_endpointwebhooks:writeSend a test event
Destructive Tools

Tools marked with ⚠️ have destructiveHint: true. Well-behaved AI clients will ask for confirmation before executing them.

Available Resources

Resources provide contextual information that AI agents can read:

ResourceURIDescription
Player Profileplaygrounds://player/profileYour account info
Player Quotasplaygrounds://player/quotasResource quotas and current usage
API Scopesplaygrounds://api/scopesAvailable and current key scopes

Security

  • All requests require a valid Bearer token with mcp:access scope
  • Each tool enforces resource-specific scopes (same as the REST API)
  • Ownership rules are enforced — you can only manage your own resources
  • Destructive tools are annotated with destructiveHint: true
  • Read-only tools are annotated with readOnlyHint: true

Testing with MCP Inspector

You can test the MCP server locally using the MCP Inspector:

npx @anthropic-ai/mcp-inspector

Configure with your instance URL (e.g., https://fibe.gg/mcp) and Bearer token.