# l0-py-blocks-mcp MCP server

A Model Context Protocol (MCP) server for Selise Blocks Cloud integration

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-selisedigitalplatforms-l0-py-blocks-mcp
- Repository: https://github.com/SELISEdigitalplatforms/l0-py-blocks-mcp
- Website: https://cloud.seliseblocks.com

## Install
- Endpoint: https://ai.seliseblocks.com/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: x-blocks-user-pat (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://ai.seliseblocks.com/mcp
- Header: x-blocks-user-pat

## Tools
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- check_blocks_cli - Check if Blocks CLI is installed and available.

Returns:
    JSON string with CLI availability status Endpoint: https://ai.seliseblocks.com/mcp
- install_blocks_cli - Install Blocks CLI using npm.

Returns:
    JSON string with installation result Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- get_auth_status - Check current authentication status and token validity.

Returns:
    JSON string with authentication status Endpoint: https://ai.seliseblocks.com/mcp
- get_global_state - Get the current global state including authentication and application domain.

Returns:
    JSON string with current global state Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp
- 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 Endpoint: https://ai.seliseblocks.com/mcp

## Resources
- datagateway-crud - datagateway-crud recipe

This recipe provides a comprehensive guide on how to implement CRUD operations using DataGateway in a Blocks application.
It covers the following key steps:
1. Setting up DataGateway in your Blocks project.
2. Creating and configuring schemas to define your data structure.
3. Implementing Create, Read, Update, and Delete operations using GraphQL queries and mutations.
4. Best practices for managing data and ensuring data integrity.
5. Example code snippets to illustrate each operation.
6. Tips for optimizing performance and handling errors effectively.
7. Additional resources and documentation for further learning. MIME type: text/plain
- confirmation-modal-patterns - This resource provides a comprehensive guide on implementing confirmation modals in web applications.
It covers best practices for designing user-friendly confirmation dialogs, including when to use them,
how to structure the content, and how to handle user interactions effectively.
The guide includes code examples and patterns for various scenarios, such as deleting items,
submitting forms, and navigating away from unsaved changes.
Additionally, it discusses accessibility considerations to ensure that confirmation modals are usable by all users. MIME type: text/plain
- react-hook-form-integration - react-hook-form-integration recipe
This recipe provides a comprehensive guide on how to integrate React Hook Form with your Blocks application.
It covers the following key steps:
1. Setting up React Hook Form in your project.
2. Creating and managing form state using hooks.
3. Implementing validation and error handling.
4. Best practices for optimizing performance and user experience.
5. Example code snippets to illustrate each concept.
6. Tips for troubleshooting common issues.
7. Additional resources and documentation for further learning. MIME type: text/plain
- component-quick-reference - component-quick-reference recipe
This recipe provides a quick reference guide for the various components available in the Blocks framework.
It includes:
1. A list of all components with a brief description of each.
2. Code snippets demonstrating how to use each component.
3. Best practices for component usage and composition.
4. Tips for customizing and extending components.
5. Links to detailed documentation for each component. MIME type: text/plain
- selise-component-hierarchy - selise-component-hierarchy recipe
This recipe provides a detailed overview of the component hierarchy used in Selise applications.
It covers:
1. The structure and organization of components within the Selise framework.
2. Relationships and dependencies between different components.
3. Guidelines for navigating and understanding the component tree.
4. Best practices for component reuse and composition.
5. Visual diagrams to illustrate the hierarchy and relationships.
6. Tips for extending and customizing components within the hierarchy.
7. Links to additional resources and documentation for further exploration. MIME type: text/plain

## Prompts
- blocks_cli_check - Check Blocks cli version check version of blocks cli in the client machine
- install_blocks_cli - Install latest Blocks cli Install Blocks CLI using npm
- initiate_project_using_blocks_cli - Initiate Project Using Blocks CLI Initiate a project using Blocks CLI with the provided project key, name, and application domain. Arguments: project_key, project_name, app_domain

## Metadata
- Owner: io.github.SELISEdigitalplatforms
- Version: 1.0.0-beta.4
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Dec 29, 2025
- Source: https://registry.modelcontextprotocol.io
