Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/TechFernandesLTDA/apex-mcp/llms.txt

Use this file to discover all available pages before exploring further.

The Google Gemini CLI reads MCP server configuration from .gemini/settings.json in your project root, making it straightforward to pair with apex-mcp for Oracle APEX development from the terminal. Once configured, you can prompt Gemini to create applications, generate CRUD pages, inspect schemas, and run SQL — all via the 116 tools that apex-mcp exposes over stdio. The same configuration structure also supports remote HTTP connections and the Google ADK for Python-based automation.
1

Install both Gemini CLI and apex-mcp

Install the Gemini CLI globally via npm:
npm install -g @google/gemini-cli
Then clone and install apex-mcp:
git clone https://github.com/TechFernandesLTDA/apex-mcp
cd apex-mcp
pip install -e .
Verify both are available:
gemini --version
apex-mcp --help
2

Create .gemini/settings.json

Create the file .gemini/settings.json at the root of your project. The Gemini CLI uses the mcpServers key with the same stdio format as Claude Code and Cursor:
{
  "mcpServers": {
    "apex-mcp": {
      "command": "python",
      "args": ["-m", "apex_mcp"],
      "env": {
        "ORACLE_DB_USER": "YOUR_SCHEMA",
        "ORACLE_DB_PASS": "YOUR_PASSWORD",
        "ORACLE_DSN": "YOUR_DSN",
        "ORACLE_WALLET_DIR": "/path/to/wallet",
        "ORACLE_WALLET_PASSWORD": "YOUR_WALLET_PW",
        "APEX_WORKSPACE_ID": "YOUR_WORKSPACE_ID",
        "APEX_SCHEMA": "YOUR_SCHEMA",
        "APEX_WORKSPACE_NAME": "YOUR_WORKSPACE"
      }
    }
  }
}
Replace every YOUR_* placeholder with your actual Oracle and APEX credentials. The ORACLE_WALLET_DIR path must be absolute and point to the directory that contains cwallet.sso.For a global config that applies across all projects, place the same file at ~/.gemini/settings.json and add an explicit "cwd" pointing to the apex-mcp directory:
{
  "mcpServers": {
    "apex-mcp": {
      "command": "python",
      "args": ["-m", "apex_mcp"],
      "cwd": "/absolute/path/to/apex-mcp",
      "env": {
        "ORACLE_DB_USER": "YOUR_SCHEMA",
        "ORACLE_DB_PASS": "YOUR_PASSWORD",
        "ORACLE_DSN": "YOUR_DSN",
        "ORACLE_WALLET_DIR": "/path/to/wallet",
        "ORACLE_WALLET_PASSWORD": "YOUR_WALLET_PW",
        "APEX_WORKSPACE_ID": "YOUR_WORKSPACE_ID",
        "APEX_SCHEMA": "YOUR_SCHEMA",
        "APEX_WORKSPACE_NAME": "YOUR_WORKSPACE"
      }
    }
  }
}
3

Start Gemini CLI and verify apex-mcp is loaded

Launch the Gemini CLI from your project directory:
gemini
Inside the interactive session, list registered MCP servers:
/mcp list
You should see apex-mcp with 116 tools listed. If the server is not found, verify that python is in your PATH and that the apex_mcp package is installed (pip show apex-mcp).
4

Run your first APEX prompt

With apex-mcp connected, Gemini automatically routes tool calls to the correct server. Start with a connection check:
Connect to the Oracle database and list all APEX applications in the workspace.
Then try a more complete workflow:
Create a new APEX app with ID 300, generate CRUD pages for the EMPLOYEES and DEPARTMENTS tables, add a dashboard with a JET bar chart showing headcount by department, then finalize the app.

Remote server (HTTP mode)

If apex-mcp is running on a remote machine or inside a container, use httpUrl instead of command/args:
{
  "mcpServers": {
    "apex-mcp": {
      "httpUrl": "http://your-server:8000/mcp"
    }
  }
}
Start the remote server with:
apex-mcp --transport streamable-http --host 0.0.0.0 --port 8000
Binding to 0.0.0.0 exposes apex-mcp on all interfaces. For anything beyond a local network, place a reverse proxy with authentication (e.g., nginx + OAuth2 Proxy) in front of the server.

Google ADK (Python automation)

For automated pipelines using the Google Agent Development Kit, use MCPToolset with StdioServerParameters to embed apex-mcp directly in your agent:
import asyncio
from google.adk.agents import Agent
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StdioServerParameters

async def main():
    toolset = MCPToolset(
        connection_params=StdioServerParameters(
            command="python",
            args=["-m", "apex_mcp"],
            env={
                "ORACLE_DB_USER": "YOUR_SCHEMA",
                "ORACLE_DB_PASS": "YOUR_PASSWORD",
                "ORACLE_DSN": "YOUR_DSN",
                "ORACLE_WALLET_DIR": "/path/to/wallet",
                "ORACLE_WALLET_PASSWORD": "YOUR_WALLET_PW",
                "APEX_WORKSPACE_ID": "YOUR_WORKSPACE_ID",
                "APEX_SCHEMA": "YOUR_SCHEMA",
                "APEX_WORKSPACE_NAME": "YOUR_WORKSPACE",
            }
        )
    )

    agent = Agent(
        model="gemini-2.0-flash",
        name="apex_developer",
        instruction="Build Oracle APEX applications using the available tools.",
        tools=[toolset],
    )

    async with toolset:
        result = await agent.run("Connect to Oracle and list all APEX apps.")
        print(result)

asyncio.run(main())

FastMCP shortcut

If you have fastmcp installed, you can auto-register apex-mcp with the Gemini CLI in one command:
fastmcp install gemini-cli /path/to/apex-mcp/apex_mcp/server.py
This writes the correct entry to your Gemini CLI config automatically.

Troubleshooting

ProblemSolution
MCP server not foundVerify cwd points to the directory containing the apex_mcp/ package
Tools not listed after /mcp listConfirm python is in $PATH; run python --version to check
ModuleNotFoundError: apex_mcpRun pip install -e . from the apex-mcp directory
HTTP connection refusedStart the server first: apex-mcp --transport streamable-http
Oracle wallet errorsORACLE_WALLET_DIR must be an absolute path containing cwallet.sso

Build docs developers (and LLMs) love