mcp-oracle-novacors
v1.0.2
Published
MCP server for Oracle Database queries (read-only). Drop-in replacement for mcp-oracle-database with stdio transport bug fixed and optional Thick mode support (ORACLE_CLIENT_LIB_DIR).
Maintainers
Readme
mcp-oracle-novacors
MCP server for read-only Oracle Database queries — drop-in replacement for mcp-oracle-database with stdio transport bug fixed (winston logs no longer corrupt the JSON-RPC stream).
What changed from upstream
The original [email protected] (GitHub repo deleted) wrote winston logs to stdout, corrupting the JSON-RPC stream and causing "Not connected" in Claude Code's MCP client after the first query.
This fork redirects all logs to stderr:
// before
new winston.transports.Console({ stderrLevels: ['error'] })
// after
new winston.transports.Stream({ stream: process.stderr })Keeps identical: tool names (query_database, get_database_schema), environment variables (ORACLE_*, LOG_LEVEL, etc.) and response shapes — drop-in replacement.
Install via Claude Code
claude mcp add-json my-oracle '{
"type":"stdio",
"command":"npx",
"args":["-y","mcp-oracle-novacors"],
"env":{
"ORACLE_CONNECTION_STRING":"your-host:1521/your-service",
"ORACLE_USER":"YOUR_USER",
"ORACLE_PASSWORD":"YOUR_PASSWORD",
"ORACLE_POOL_MIN":"2",
"ORACLE_POOL_MAX":"10"
}
}' -s userOr add directly to ~/.claude/mcp.json:
{
"mcpServers": {
"my-oracle": {
"command": "npx",
"args": ["-y", "mcp-oracle-novacors"],
"env": {
"ORACLE_CONNECTION_STRING": "your-host:1521/your-service",
"ORACLE_USER": "YOUR_USER",
"ORACLE_PASSWORD": "YOUR_PASSWORD",
"ORACLE_POOL_MIN": "2",
"ORACLE_POOL_MAX": "10",
"QUERY_TIMEOUT_MS": "30000",
"MAX_ROWS_PER_QUERY": "1000"
}
}
}
}Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| ORACLE_CONNECTION_STRING | Yes | — | Oracle connection string (host:port/service) |
| ORACLE_USER | Yes | — | Database username |
| ORACLE_PASSWORD | Yes | — | Database password |
| ORACLE_POOL_MIN | No | 2 | Minimum connection pool size |
| ORACLE_POOL_MAX | No | 10 | Maximum connection pool size |
| QUERY_TIMEOUT_MS | No | 30000 | Query timeout in milliseconds |
| MAX_ROWS_PER_QUERY | No | 1000 | Maximum rows returned per query |
| LOG_LEVEL | No | info | Logging level |
Build from source
npm install
npm run build
node dist/server.jsLicense
ISC
