apex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ORACLE_DSN | Yes | TNS alias or connect string | |
| APEX_SCHEMA | Yes | Schema that owns APEX objects | |
| ORACLE_DB_PASS | Yes | Oracle schema password | |
| ORACLE_DB_USER | Yes | Oracle schema name | |
| APEX_WORKSPACE_ID | Yes | Numeric APEX workspace ID | |
| ORACLE_WALLET_DIR | Yes | Directory containing wallet files (e.g., cwallet.sso) | |
| APEX_WORKSPACE_NAME | Yes | APEX workspace name | |
| ORACLE_WALLET_PASSWORD | Yes | Wallet encryption password |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| apex_setup_guideB | Show setup requirements and instructions for this APEX MCP server. |
| apex_check_requirementsA | Verify Oracle connection, APEX workspace, and grants are configured. |
| apex_check_permissionsA | Check Oracle grants and APEX object access permissions. |
| apex_fix_permissionsA | Auto-fix common Oracle permission issues (grants, synonyms). |
| apex_refresh_templatesA | Refresh Universal Theme 42 template IDs from the live database. |
| apex_health_checkA | Run APEX health check: score 0-100 with issues list. |
| apex_get_audit_logA | Get audit log of recent MCP operations in this session. |
| apex_connectA | Connect to Oracle ADB via mTLS wallet. Must be called first. |
| apex_run_sqlB | Execute any SQL statement (SELECT/DML/DDL). Returns rows or affected count. |
| apex_statusA | Show current connection status, session state, and active app. |
| apex_list_appsA | List all APEX applications in the workspace. |
| apex_create_appA | Create a new APEX app and start an import session. Call apex_finalize_app() when done. |
| apex_finalize_appA | Finalize and commit the app. Must be called after all pages/components are added. |
| apex_delete_appA | Delete an APEX application permanently. |
| apex_export_appA | Export an app as SQL install script. |
| apex_describe_pageA | Describe a page's components in human-readable text. |
| apex_dry_run_previewA | Toggle dry-run mode: log PL/SQL without executing. Returns log when disabled. |
| apex_undo_lastA | Undo the last created component (region, item, button, etc.). |
| apex_add_pageC | Add a new page to the app. page_mode: Normal or Modal Dialog. |
| apex_list_pagesA | List all pages in the current session or an existing app. |
| apex_add_regionB | Add a region to a page. Types: STATIC, IR (Interactive Report), PLSQL, chart, blank. |
| apex_add_itemB | Add a form item. Types: text, number, date, select, textarea, hidden, yes_no, display_only. Auto-prefixed P{page_id}_. |
| apex_add_buttonA | Add a button to a region (CREATE, SAVE, DELETE, CANCEL, or custom). |
| apex_add_processC | Add a page process: PL/SQL block, DML on table, or branch redirect. |
| apex_add_dynamic_actionA | Add a dynamic action (client-side event handler). Actions: execute_javascript, set_value, refresh, show, hide, submit. |
| apex_add_lovB | Create a List of Values (LOV) — static or SQL-based — for select items. |
| apex_add_auth_schemeB | Create an authorization scheme (IS_ADMIN, IS_MANAGER, etc.). |
| apex_add_nav_itemA | Add a navigation menu item linking to a page. |
| apex_add_app_itemA | Create an application-level item (global variable available on all pages). |
| apex_add_app_processA | Create an application-level process (runs on every page load or session init). |
| apex_list_tablesA | List all tables/views in the current Oracle schema with row counts. |
| apex_describe_tableA | Describe table columns, types, PKs, and FKs. Cached per session. |
| apex_detect_relationshipsA | Auto-detect FK relationships between a list of tables. |
| apex_generate_crudA | Generate full CRUD: IR list page + form page with DML processes for a table. |
| apex_generate_dashboardB | Generate a dashboard page with KPI metric cards and JET charts. |
| apex_generate_loginA | Generate a login page (page 101) with APEX authentication. |
| apex_create_userB | Create an APEX workspace user with role (ADMIN/DEVELOPER/END_USER). |
| apex_list_usersA | List all users in the APEX workspace. |
| apex_add_page_jsC | Add inline JavaScript to a specific page. |
| apex_add_global_jsB | Add global JavaScript to all pages via Page 0. |
| apex_generate_ajax_handlerB | Create an AJAX callback process (PL/SQL) callable from client-side JS. |
| apex_get_app_detailsA | Get full metadata for an existing APEX app (pages, auth, theme). |
| apex_get_page_detailsA | Get all components on a page (regions, items, buttons, processes). |
| apex_list_regionsA | List regions on a page of an existing app. |
| apex_list_itemsA | List items on a page of an existing app. |
| apex_list_processesA | List page processes of an existing app. |
| apex_list_dynamic_actionsA | List dynamic actions on a page of an existing app. |
| apex_list_lovsA | List all LOVs (Lists of Values) in an existing app. |
| apex_list_auth_schemesA | List authorization schemes in an existing app. |
| apex_update_regionC | Update a region's SQL source, title, or template in an existing app. |
| apex_update_itemB | Update an item's LOV, label, type, or default in an existing app. |
| apex_delete_pageA | Delete a page from an existing app. |
| apex_delete_regionA | Delete a region from an existing app. |
| apex_delete_itemA | Delete an item from an existing app. |
| apex_delete_buttonB | Delete a button from an existing app. |
| apex_update_pageA | Update page properties (title, mode, auth) in an existing app. |
| apex_copy_pageC | Copy a page to a new page ID within the same app. |
| apex_diff_appA | Compare app structure before/after changes (diff of pages, regions, items). |
| apex_add_item_validationA | Add server-side validation to a page item (NOT_NULL, REGEX, SQL, PL/SQL). |
| apex_add_item_computationC | Add a computation to set an item's value (STATIC, SQL, PL/SQL, ITEM). |
| apex_add_jet_chartA | Add an Oracle JET chart region. Types: bar, line, pie, donut, area. SQL must alias LABEL + VALUE. |
| apex_add_gaugeB | Add a gauge/dial chart with min/max/thresholds. SQL must return a VALUE column. |
| apex_add_funnelA | Add a funnel chart. SQL must alias LABEL + VALUE ordered by sequence. |
| apex_add_sparklineA | Add sparkline mini-charts with trend lines. Provide metrics list with sql + trend_sql. |
| apex_add_metric_cardsC | Add styled KPI metric cards (gradient/flat/outline). Each metric: label + sql + icon + color. |
| apex_add_calendarB | Add a calendar region. SQL must include a date column and a title column. |
| apex_generate_analytics_pageB | Generate a full analytics page with metric cards + multiple JET charts in one call. |
| apex_generate_report_pageA | Generate an IR report page with optional filter items (text/select/date). |
| apex_generate_wizardA | Generate a multi-step wizard (2-6 steps) with progress bar, items, and navigation buttons. |
| apex_add_notification_regionB | Add an inline notification/alert (info/success/warning/error) with optional dismiss. |
| apex_add_page_cssA | Add inline CSS to a specific page via a hidden PL/SQL region. |
| apex_add_global_cssA | Add global CSS to ALL pages via Page 0. Use for branding and theme overrides. |
| apex_add_interactive_gridA | Add an Interactive Grid (editable spreadsheet). Supports inline editing + add row. |
| apex_bulk_add_itemsB | Add multiple form items in one call. Each: {name, type, label, lov, required, default}. |
| apex_validate_appA | Validate an APEX app: check SQL, page refs, missing items. Returns score 0-100 + issues. |
| apex_preview_pageA | Get the preview URL for a page (f?p=APP:PAGE). |
| apex_add_search_barA | Add a search bar that filters an IR region on keystroke via Dynamic Action. |
| apex_generate_from_schemaA | Generate a complete app from a list of tables: CRUD pages + dashboard + navigation. |
| apex_generate_modal_formA | Create an inline modal popup form (no separate page). Returns region_static_id for JS open. |
| apex_add_master_detailA | Create master IR + detail IR on same page. Row click in master refreshes detail. |
| apex_add_timelineA | Add a vertical timeline region. SQL must return date_col, title_col, body_col. |
| apex_add_breadcrumbA | Add breadcrumb navigation with ordered entries [{label, page_id}]. |
| apex_add_faceted_searchA | Add faceted search: filter SELECT_LISTs + IR. Facets: [{column, label, type}]. |
| apex_add_chart_drilldownB | Add chart drilldown: click chart series → set hidden item → refresh IR. |
| apex_add_file_uploadA | Add a FILE_BROWSE item + after-submit process to store uploads as BLOB. |
| apex_generate_rest_endpointsA | Generate ORDS REST endpoints (GET/POST/PUT/DELETE) for a table. |
| apex_export_pageA | Export a single page as SQL install script. |
| apex_generate_docsA | Auto-generate Markdown documentation for an app (pages, regions, items). |
| apex_begin_batchA | Start batch mode: queue PL/SQL operations for a single DB round-trip. |
| apex_commit_batchA | Execute all queued batch operations. rollback_on_error=True (default) rolls back on failure. |
| apex_add_hero_bannerB | Add a hero banner with title, subtitle, CTA button, and gradient background. |
| apex_add_kpi_rowB | Add a horizontal row of KPI cards. Each: {label, sql, icon, color}. |
| apex_add_progress_trackerA | Add a step progress tracker (horizontal steps with active state). |
| apex_add_alert_boxA | Add a styled alert box (info/success/warning/error) with title and message. |
| apex_add_stat_deltaA | Add a stat card with current value, delta, and trend arrow (up/down). |
| apex_add_quick_linksC | Add a grid of quick-link cards. Each: {label, page_id, icon, color}. |
| apex_add_leaderboardC | Add a ranked leaderboard table. SQL must alias RANK, NAME, VALUE. |
| apex_add_tag_cloudC | Add a tag/word cloud from SQL (TAG + WEIGHT columns). |
| apex_add_percent_barsC | Add horizontal percent bars. Each: {label, value, max, color}. |
| apex_add_icon_listC | Add an icon list with labels. Each: {icon, label, description, page_id}. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create_crud_app | Step-by-step workflow to create a full CRUD application for a database table. |
| create_dashboard_app | Workflow to create an analytics dashboard with charts and KPIs. |
| create_full_app_from_schema | Workflow to auto-generate a complete app from all tables in the schema. |
| inspect_existing_app | Workflow to thoroughly inspect an existing APEX application. |
| add_rest_api | Workflow to expose a table as REST API endpoints via ORDS. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_config | Current apex-mcp configuration and connection status. |
| resource_session | Current import session state (active app, pages, components). |
| resource_tables | List of database tables in the current schema (requires connection). |
| resource_apps | List of APEX applications in the current workspace (requires connection). |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/TechFernandesLTDA/apex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server