
l0-py-blocks-mcp
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
What it can do
What data it sees
Do you need an account
An API key from the service settings is required
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
How to connect
How to connect l0-py-blocks-mcp to Claude
The server address to paste into Claude settings:
https://ai.seliseblocks.com/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect l0-py-blocks-mcp to ChatGPT
The server address to paste into ChatGPT settings:
https://ai.seliseblocks.com/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect l0-py-blocks-mcp to Cursor
The server address to paste into Cursor settings:
https://ai.seliseblocks.com/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (36)
Raw names from tools/list. Only developers need these.
| activate_social_login | Activate social login for the project by updating authentication configuration. Args: item_id: Configuration item ID (default: "682c40c3872fab1bc2cc8988") project_key: Project key (tenant ID). Uses global tenant_id if not provided refresh_token_minutes: Refresh token validity in minutes (default: 300) access_token_minutes: Access token validity in minutes (default: 15) remember_me_minutes: Remember me token validity in minutes (default: 43200) allowed_grant_types: List of allowed grant types (default: ["password", "refresh_token", "social"]) wrong_attempts_lock: Number of wrong attempts to lock account (default: 5) lock_duration_minutes: Account lock duration in minutes (default: 5) Returns: JSON string with social login activation result |
| get_authentication_config | Get the current authentication configuration for the project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with current authentication configuration |
| add_sso_credential | Add social login credentials for OAuth providers (Google, Facebook, GitHub, etc.). Args: provider: OAuth provider name (e.g., "google", "facebook", "github") client_id: OAuth client ID from provider console client_secret: OAuth client secret from provider console project_key: Project key (tenant ID). Uses global tenant_id if not provided is_enable: Whether to enable this SSO provider (default: True) redirect_uri: OAuth redirect URI (optional) Returns: JSON string with SSO credential save result |
| check_blocks_cli | Check if Blocks CLI is installed and available. Returns: JSON string with CLI availability status |
| install_blocks_cli | Install Blocks CLI using npm. Returns: JSON string with installation result |
| list_roles | List all roles for a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided page: Page number (default: 0) page_size: Number of items per page (default: 10) search: Search filter (default: "") sort_by: Field to sort by (default: "Name") sort_descending: Sort order (default: false) Returns: JSON string with role list result |
| create_role | Create a new role. Args: name: Role name description: Role description slug: Role slug (URL-friendly identifier) project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with role creation result |
| list_permissions | List all permissions for a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided page: Page number (default: 0) page_size: Number of items per page (default: 10) search: Search filter (default: "") sort_by: Field to sort by (default: "Name") sort_descending: Sort order (default: false) is_built_in: Filter by built-in status (default: "") resource_group: Filter by resource group (default: "") Returns: JSON string with permission list result |
| create_permission | Create a new permission. Args: name: Permission name description: Permission description resource: Resource name (arbitrary string) resource_group: Resource group name (arbitrary string) tags: List of action tags (e.g., ["create", "read", "update", "delete"]) project_key: Project key (tenant ID). Uses global tenant_id if not provided type: Permission type (default: 3 for "Data protection") dependent_permissions: List of dependent permission IDs (default: []) is_built_in: Whether it's a built-in permission (default: false) Returns: JSON string with permission creation result |
| update_permission | Update an existing permission. Args: item_id: The ID of the permission to update name: Permission name description: Permission description resource: Resource name (arbitrary string) resource_group: Resource group name (arbitrary string) tags: List of action tags (e.g., ["create", "read", "update", "delete"]) project_key: Project key (tenant ID). Uses global tenant_id if not provided type: Permission type (default: 3 for "Data protection") dependent_permissions: List of dependent permission IDs (default: []) is_built_in: Whether it's a built-in permission (default: false) Returns: JSON string with permission update result |
| get_resource_groups | Get available resource groups for a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with resource groups result |
| set_role_permissions | Assign or remove permissions from a role. Args: role_slug: Role slug identifier add_permissions: List of permission IDs to add to the role (default: []) remove_permissions: List of permission IDs to remove from the role (default: []) project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with role permission assignment result |
| get_role_permissions | Get permissions assigned to specific role(s). Args: role_slugs: List of role slugs to filter by project_key: Project key (tenant ID). Uses global tenant_id if not provided page: Page number (default: 0) page_size: Number of items per page (default: 10) search: Search filter (default: "") is_built_in: Filter by built-in status (default: "") resource_group: Filter by resource group (default: "") Returns: JSON string with role permissions result |
| enable_email_mfa | Enable Email Multi-Factor Authentication for a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with Email MFA configuration result |
| enable_authenticator_mfa | Enable Authenticator Multi-Factor Authentication for a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with Authenticator MFA configuration result |
| get_projects | Get projects from Selise Blocks API and extract application domains. Args: tenant_group_id: Tenant Group ID to filter projects (optional) page: Page number for pagination (default: 0) page_size: Number of items per page (default: 100) Returns: JSON string with projects data and extracted application domains |
| set_application_domain | Manually set the application domain and tenant ID for repository creation. Args: domain: Application domain URL tenant_id: Tenant ID for the project project_name: Project name (optional) tenant_group_id: Tenant Group ID (optional) Returns: JSON string with confirmation |
| create_project | Create a new project in Selise Cloud. Args: project_name: Name of the project to create repo_name: Repository name (e.g., 'username/repo') repo_link: Full GitHub repository URL repo_id: Repository ID from GitHub or Git provider is_production: Whether this is a production environment (default: False) Returns: JSON string with project creation results |
| get_auth_status | Check current authentication status and token validity. Returns: JSON string with authentication status |
| get_global_state | Get the current global state including authentication and application domain. Returns: JSON string with current global state |
| create_schema | Create a new schema in Selise Blocks GraphQL API. Args: schema_name: Name of the schema to create project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with schema creation result |
| list_schemas | List schemas from Selise Blocks GraphQL API. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided keyword: Search keyword for filtering schemas page_size: Number of items per page (default: 100) page_number: Page number for pagination (default: 1) sort_descending: Sort in descending order (default: True) sort_by: Field to sort by (default: "CreatedDate") Returns: JSON string with schemas listing result |
| get_schema | Get a schema's current fields using its ID (step 1 of schema field management). Args: schema_id: The ID of the schema to retrieve project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with schema fields and metadata |
| update_schema_fields | Update schema fields (step 2 of schema field management). Args: schema_id: The ID of the schema to update fields: List of SchemaField objects for the schema (existing + new). Each SchemaField has Name (str), Type (str), and IsArray (bool) properties. Reserved fields (ItemId, CreatedDate, LastUpdatedDate, CreatedBy, Language, LastUpdatedBy, OrganizationIds, Tags) are automatically filtered out. project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with update result |
| finalize_schema | Finalize schema changes by retrieving updated schema (step 3 of schema field management). Args: schema_id: The ID of the schema to finalize project_short_key: Project short key. project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with finalized schema data |
| configure_blocks_data_gateway | Configure Blocks Data Gateway for GraphQL operations. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided connectionString: Connection string for the database databaseName: Name of the database Returns: JSON string with data gateway configuration result |
| get_blocks_data_gateway_config | Get Blocks Data Gateway configuration. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with data gateway configuration result |
| save_captcha_config | Save CAPTCHA configuration for Google reCAPTCHA or hCaptcha. Args: provider: CAPTCHA provider - "recaptcha" for Google reCAPTCHA or "hcaptcha" for hCaptcha site_key: Public site key from CAPTCHA provider console secret_key: Private secret key from CAPTCHA provider console project_key: Project key (tenant ID). Uses global tenant_id if not provided is_enable: Whether to enable the configuration immediately (default: False) Returns: JSON string with CAPTCHA configuration save result |
| list_captcha_configs | List all CAPTCHA configurations for a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with list of CAPTCHA configurations |
| update_captcha_status | Enable or disable a CAPTCHA configuration. Args: item_id: The ID of the CAPTCHA configuration to update is_enable: True to enable, False to disable the configuration project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with status update result |
| get_translation_languages | Get available languages for translation in a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with available languages including language names, codes, and default status |
| get_translation_modules | Get available modules for translation in a project. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with available modules including module names and IDs |
| get_module_keys | Get available keys in a specific module for translation in a project. Args: module_id: The ID of the module to get keys from project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with available keys including key names, IDs, and resources |
| create_module | Create a new module for translation in a project. Args: module_name: Name of the module to create project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with module creation result including module ID and name |
| save_module_keys_with_translations | Save multiple translation keys with their translations to modules in a project. Args: request: SaveKeysTranslationRequest object containing: - ProjectKey: Project key (tenant ID). Uses global tenant_id if not provided - Translations: List of SaveKeyTranslationRequest objects, each containing: - KeyName: The translation key name - ModuleId: The module ID - ItemId: The Key ID (existing itemId on update else empty string on creation) - IsNewKey: On creation of new key it's True and for update it will be False - Resources: List of KeyTranslationResource objects with Value and Culture Returns: JSON string with batch translation keys creation result including status and results for each key |
| publish_translation | Publish translations for a project, making them live and available for use. This function publishes all translation keys and their translations for the specified project, making them available in the production environment. Args: project_key: Project key (tenant ID). Uses global tenant_id if not provided Returns: JSON string with publish operation result including success/failure status |