Skip to main content
Glama
openl-tablets

OpenL MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENL_TIMEOUTNoOptional timeout in ms60000
OPENL_BASE_URLYesBase URL of OpenL Studio
OPENL_PASSWORDNoPassword for basic auth
OPENL_USERNAMENoUsername for basic auth
OPENL_PERSONAL_ACCESS_TOKENNoPersonal access token

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}
prompts
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
openl_list_repositoriesA

List all design repositories in OpenL Studio. Returns repository information including 'id' (internal identifier) and 'name' (display name). Use the 'name' field when working with repositories in other tools. Example: if response contains {id: 'design-repo', name: 'Design Repository'}, use 'Design Repository' (the name) in other tools like list_projects(repository: 'Design Repository').

openl_list_branchesA

List all Git branches in a repository. Returns branch names and metadata (current branch, commit info). Use this to see available branches before switching or comparing versions. Use repository name (not ID) - e.g., 'Design Repository' instead of 'design-repo'.

openl_list_projectsA

List all projects with optional filters (repository, status, tags). Returns project names, status (OPENED/CLOSED), metadata, and a convenient 'projectId' field from API to use with other tools. For local-only projects, do not pass repository filter 'local' (it may fail); list projects without that filter and filter results by repository === 'local' client-side. For such projects, open/save/close do not work; table/rule/test tools work without opening. IMPORTANT: The 'projectId' is returned exactly as provided by the API and should be used without modification. Use repository name (not ID) - e.g., 'Design Repository' instead of 'design-repo'. Use this to discover and filter projects.

openl_get_projectA

Get comprehensive project information including details, modules, dependencies, and metadata. Returns full project structure, configuration, and status.

openl_open_projectA

Open a project for editing. Supports opening on specific branches or viewing specific Git revisions. Use this before making changes to project tables or rules.

openl_save_projectA

Save project changes to Git. Works only when project status is EDITING (after opening and making changes). Requires comment (used as revision/commit message). Creates a new revision and transitions project to OPENED. Optional closeAfterSave: true saves and closes in one request. Use after update_table, append_table, or other edits. Does not work for repository 'local'. Validates project before saving if validation endpoint is available.

openl_close_projectA

Close a project. If the project has unsaved changes (status EDITING), you must either save (saveChanges: true with comment) or discard (discardChanges: true). When discarding, ask the user for confirmation and then call again with confirmDiscard: true. Prevents accidental data loss.

openl_list_tablesA

List all tables/rules in a project with optional filters for type, name, and file. Returns table metadata including 'tableId' (the 'id' field) which is required for calling get_table(), update_table(), append_table(), or run_project_tests(). Use the 'tableId' field from the response to reference specific tables in other API calls.

openl_get_tableA

Get detailed information about a specific table/rule. By default returns a parsed table structure with signature, conditions, actions, dimension properties, and row data. Set raw=true to get an unparsed 2D cell matrix (RawTableView) instead — useful for unknown/custom table types or preserving exact cell layout. Note: raw output cannot be passed directly to openl_update_table (which expects the parsed form).

openl_update_tableA

Replace the ENTIRE table structure with a modified version. Use for MODIFYING existing rows, DELETING rows, REORDERING rows, or STRUCTURAL changes. CRITICAL: Must send the FULL table structure (not just modified fields). DO NOT use for simple additions - use append_table instead. Required workflow: 1) Call get_table() to retrieve complete structure, 2) Modify the returned object, 3) Pass the ENTIRE modified object to update_table().

openl_append_tableA

Add new rows/fields to an existing table (additions only). Payload by type: Datatype→fields, SimpleRules/SmartRules→rules, SimpleSpreadsheet→steps, Vocabulary→values, RawSource→rows. For modifying, deleting, or reordering use update_table instead.

openl_create_project_tableA

Create a new table/rule in OpenL project using BETA API (Create New Project Table). This is the recommended tool for creating new OpenL tables programmatically. Use cases: Create Rules (decision tables), Spreadsheet tables, Datatype definitions, Test tables, or other table types. Requires moduleName (existing project module name) and complete table structure (EditableTableView). The table structure must include at least tableType, kind, name, plus type-specific data (rules/headers for Rules tables, rows for Spreadsheet, fields for Datatype). id is optional for create requests. Use get_table() on an existing table as a reference for the structure. This tool uses the Create New Project Table (BETA) API endpoint.

openl_list_deploymentsB

List all active deployments across production environments. Returns deployment names, repositories, versions, and status information.

openl_deploy_projectA

Deploy a project to production environment. Publishes rules to a deployment repository for runtime execution. Use production repository name (not ID) - e.g., 'Production Deployment' instead of 'production-deploy'.

openl_start_traceA

Start trace execution for a table. Trace is asynchronous (returns 202 Accepted). For regular rules: provide inputJson with { params: {...}, runtimeContext?: {...} }. For test tables: use testRanges (e.g. '1-3,5'). After starting, use openl_get_trace_nodes to retrieve results; if you get 409 Conflict, trace is still running—wait and retry.

openl_get_trace_nodesA

Get trace node children (or root nodes if nodeId omitted). Requires trace to be completed (409 Conflict if still running). Use openl_start_trace first, then poll this until it returns nodes.

openl_get_trace_node_detailsA

Get detailed trace node including parameters, context, result, and errors. Node IDs come from openl_get_trace_nodes.

openl_get_trace_parameterA

Get lazy-loaded parameter value. Use when a TraceParameterValue has lazy:true and parameterId set.

openl_cancel_traceB

Cancel ongoing trace execution for a project.

openl_export_traceB

Export trace as plain text. Returns full trace content. Use release: true to clear trace from memory after export.

openl_list_repository_featuresA

Get features supported by a design repository (branching, searchable, etc.). Use this to check if a repository supports specific features like branching before performing operations that depend on those features. Use repository name (not ID) - e.g., 'Design Repository' instead of 'design-repo'.

openl_repository_project_revisionsA

Get revision history (commit history) of a project in a design repository. Returns list of revisions with commit hashes, authors, timestamps, and commit types. Supports pagination and filtering by branch and search term. Use repository name (not ID) - e.g., 'Design Repository' instead of 'design-repo'.

openl_list_deploy_repositoriesA

List all deployment repositories in OpenL Studio. Returns repository names, their types, and status information. Use this to discover all available deployment repositories before deploying projects.

openl_create_project_branchA

Create a new branch in a project's repository from a specified revision. Allows branching from specific revisions, tags, or other branches. If no revision is specified, the HEAD revision will be used.

openl_list_project_local_changesA

List local change history for a project. Returns list of workspace history items with versions, authors, timestamps, and comments. NOTE: Requires the project to be opened (openl_open_project first); not available for repository 'local' (local projects cannot be opened). Uses session-based project context; no projectId parameter.

openl_restore_project_local_changeA

Restore a project to a specified version from its local history. Use the historyId from openl_list_project_local_changes response. NOTE: Requires the project to be opened first; not available for repository 'local'. Uses session-based project context; no projectId parameter.

openl_start_project_testsA

Start project test execution. For design repositories the project is automatically opened if closed; for repository 'local' the project is not opened (tests run directly). Returns execution status and metadata. Test results can be retrieved using openl_get_test_results_summary, openl_get_test_results, or openl_get_test_results_by_table.

openl_get_test_results_summaryA

Get brief test execution summary without detailed test cases. Returns aggregated statistics (execution time, total tests, passed, failed) without the testCases array. Use openl_start_project_tests() first to start test execution.

openl_get_test_resultsA

Get full test execution results with pagination support. Returns complete test execution summary including testCases array grouped by table. IMPORTANT: Pagination applies to test tables (not individual test cases). Each page returns test results aggregated by table (e.g., 'TestTable1' with 7 tests, 'TestTable2' with 8 tests). Supports filtering failures and pagination (page/offset/size). Use openl_start_project_tests() first to start test execution.

openl_get_test_results_by_tableA

Get test execution results filtered by specific table ID. Returns filtered test execution summary with only test cases for the specified table. Supports pagination (page/offset/size) for efficient data retrieval. Use openl_start_project_tests() first to start test execution.

openl_redeploy_projectA

Redeploy an existing deployment with a new project version. Use this to update a deployment with a newer version of the project or rollback to a previous version.

Prompts

Interactive templates invoked by user choice

NameDescription
local_projectsWorking with projects in repository 'local': no open/save/close, no Git; table/rule/test tools work directly without opening
append_tableGuide for efficiently appending new rows/fields to existing Datatype and Data tables without replacing the entire structure
create_ruleComprehensive guide for creating OpenL decision tables, spreadsheets, and datatypes with examples for all table types (Rules, SimpleRules, SmartRules, SimpleLookup, SmartLookup, Spreadsheet)
create_rule_decision_tablesComprehensive guide for creating decision tables (Rules, SimpleRules, SmartRules, SimpleLookup, SmartLookup) in OpenL Studio with detailed examples and parameter matching strategies
create_rule_spreadsheetDetailed guide for creating Spreadsheet tables in OpenL Studio for multi-step calculations with formula syntax, JSON structure, and common mistakes
create_testStep-by-step guide for creating OpenL test tables with proper 3-row structure, test case design, and expected value validation
datatype_vocabularyGuide for creating custom datatypes (domain objects) and vocabularies (enumerations) in OpenL Studio with inheritance, field types, and validation
deploy_projectOpenL deployment workflow with mandatory validation checks, test execution requirements, and environment selection (dev, test, staging, prod)
dimension_propertiesExplanation of OpenL dimension properties for business versioning (state, country, lob, effectiveDate) vs Git versioning, with runtime selection logic
execute_ruleGuide for constructing test data and executing OpenL rules with proper JSON formatting for simple types, complex objects, and arrays
file_historyGuide for viewing Git-based file version history in OpenL, including commit hash navigation and version comparison
get_project_errorsOpenL error analysis workflow with pattern matching, categorization, and fix recommendations for common validation errors
project_historyGuide for viewing project-wide Git commit history, comparing with file history, and understanding when to use each
run_testTest selection logic and workflow for running OpenL tests efficiently based on scope (single table, multiple tables, or all tests)
update_testGuide for modifying existing test tables, adding test cases, updating expected values, and handling test failures

Resources

Contextual data attached and managed by the client

NameDescription
OpenL RepositoriesAll design repositories in OpenL Studio
OpenL ProjectsAll projects across all repositories
OpenL Project DetailsGet details for a specific project (use projectId from openl_list_projects)
Project TablesList all tables in a project
Table DetailsGet details for a specific table
Project HistoryGet Git commit history for a project
Project FileDownload a file from a project
OpenL DeploymentsAll deployment repositories and deployed projects

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/openl-tablets/openl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server