diff --git a/src/oracle/Dockerfile b/src/oracle/Dockerfile index 8f70e3a0..e1421dd0 100644 --- a/src/oracle/Dockerfile +++ b/src/oracle/Dockerfile @@ -21,4 +21,4 @@ WORKDIR /app RUN npm ci --ignore-scripts --omit-dev -ENTRYPOINT ["node", "dist/index.js"] \ No newline at end of file +ENTRYPOINT ["node", "dist/index.js"] diff --git a/src/oracle/README.md b/src/oracle/README.md index c0807bf6..ec6552b8 100644 --- a/src/oracle/README.md +++ b/src/oracle/README.md @@ -1,18 +1,18 @@ -# Oracle +# Oracle Database -A Model Context Protocol server that provides read-only access to Oracle databases. This server enables LLMs to inspect database schemas, execute and explain read-only queries. +A Model Context Protocol server that provides read-only access to Oracle Database. This server enables LLMs to inspect database schemas, execute and explain read-only queries. ## Components ### Tools - **query** - - Execute read-only SQL queries against the connected database + - Execute read-only SQL queries against the connected Oracle Database - Input: `sql` (string): The SQL query to execute - All queries are executed within a READ ONLY transaction - **explain** - - Explain plan SQL queries against the connected database + - Explain plan SQL queries against the connected Oracle Database - Input: `sql` (string): The SQL query to execute - Requires GRANT SELECT_CATALOG_ROLE TO your_user; @@ -21,14 +21,20 @@ A Model Context Protocol server that provides read-only access to Oracle databas - Input: `name` (string): The table name - Table owner is equal to USER SQL function returning value +- **connect** + - Reconnect using new credentials + - Input: `connectionString` (string): SQLNet connect string for example host.docker.internal:1521/freepdb1 + - Input: `user` (string): Username for example scott + - Input: `password` (string): Password, for example tiger + ### Resources -The server provides schema information for each table in the database current connected user: +The server provides schema information for each table in the Oracle Database current connected user: - **Table Schemas** (`oracle://USER//schema`) - JSON schema information for each table - Includes column names and data types - - Automatically discovered from database metadata + - Automatically discovered from Oracle Database metadata ## Usage with Claude Desktop @@ -36,8 +42,8 @@ To use this server with the Claude Desktop app, add the following configuration ### Docker -* when running docker on MacOS, use host.docker.internal if the server is running on the host network (eg localhost) -* username/password must be passed as environment variable +* when running docker on macOS, use host.docker.internal if the server is running on the host network (eg localhost) +* username/password must be passed as environment variables ```json { @@ -84,8 +90,8 @@ Replace `/freepdb1` with your database name. ### Demo Prompts -Sample prompts using Oracle HR schema and -[OracleFree 23c embedded RDBMS - Faststart - Docker Desktop Extension](https://open.docker.com/extensions/marketplace?extensionId=mochoa/oraclefree-docker-extension) . +Sample prompts using the Oracle Database sample HR schema and +[Oracle Database 23ai Free embedded database - Faststart - Docker Desktop Extension](https://open.docker.com/extensions/marketplace?extensionId=mochoa/oraclefree-docker-extension) . - query SELECT COUNTRY_NAME, CITY, COUNT(DEPARTMENT_ID) FROM COUNTRIES JOIN LOCATIONS USING (COUNTRY_ID) JOIN DEPARTMENTS USING (LOCATION_ID)