oracle-unshipped-orders-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@oracle-unshipped-orders-mcpshow unshipped orders for customer CUST001"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Oracle Unshipped Orders MCP Server
MCP (Model Context Protocol) server for retrieving unshipped orders from Oracle/Red Prairie Blue Yonder WMS database.
π Security Features
Environment Variables: All credentials stored in
.env(git-ignored)Connection Pooling: Efficient database connection management
No Hardcoded Credentials: Zero credentials in source code
Oracle Best Practices: Uses oracledb official driver with secure connection handling
Related MCP server: MCP Oracle Server
π Quick Start
1. Install Dependencies
cd oracle-unshipped-orders-mcp
npm install2. Configure Database Credentials
IMPORTANT: Create a .env file (this file is git-ignored and will NOT be committed):
cp .env.example .envEdit .env and add your actual Oracle credentials:
ORACLE_USER=your_actual_username
ORACLE_PASSWORD=your_actual_password
ORACLE_CONNECTION_STRING=your_host:1521/your_service_nameExample:
ORACLE_USER=wmsuser
ORACLE_PASSWORD=SecureP@ssw0rd123
ORACLE_CONNECTION_STRING=db.bolthousefresh.com:1521/REDPRAIRIE3. Build the Project
npm run build4. Test the MCP Server
npm testThe server will:
β Connect to your Oracle database
β Initialize connection pool
β Start the MCP server on stdio
β Be ready to accept tool calls
π οΈ Available Tools
get_unshipped_orders
Retrieves all unshipped orders for a specific customer.
Input:
stcust(string, required): Ship-to Customer ID
Output:
{
"success": true,
"customer": "CUST001",
"total_orders": 5,
"orders": [
{
"ORDNUM": "ORD12345",
"WH_ID": "DC01",
"STCUST": "CUST001",
"BTCUST": "CUST001",
"BT_ADR_ID": "ADDR001",
"ADDDTE": "2026-06-25",
"EXPSHIP": "2026-07-02",
"APPTTIME": "10:00",
"CPONUM": "PO98765",
"PRTNUM": "PART123",
"ORDQTY": 100,
"ORDLIN": 1,
"INPQTY": 100,
"PCKQTY": 100,
"STGQTY": 100,
"SHPQTY": 0
}
]
}Query Logic:
Filters orders with
shpqty = 0(zero shipped quantity)Includes orders with
dispatch_dte is null(not yet dispatched)Excludes alcohol items (
non_alc_flg = 0)Joins truck dispatch details for expected ship dates and appointment times
π Project Structure
oracle-unshipped-orders-mcp/
βββ src/
β βββ index.ts # Main MCP server code
βββ dist/ # Compiled JavaScript (generated)
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ .env.example # Template for credentials (safe to commit)
βββ .env # YOUR ACTUAL CREDENTIALS (git-ignored)
βββ .gitignore # Protects sensitive files
βββ README.md # This fileπ Security Checklist
Before committing to GitHub:
β
.envfile is listed in.gitignoreβ No credentials in source code
β Only
.env.example(with placeholders) is committedβ Verify:
git statusshould NOT show.env
π’ Deployment to Railway
Option 1: Railway CLI
railway login
railway init
railway upIn Railway dashboard, add environment variables:
ORACLE_USERORACLE_PASSWORDORACLE_CONNECTION_STRING
Option 2: GitHub Integration
Push code to GitHub (credentials are git-ignored)
Connect Railway to your GitHub repo
Add environment variables in Railway dashboard
Deploy automatically on push
π§ͺ Testing Locally with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsThis opens a web interface where you can:
Test the
get_unshipped_orderstoolInspect requests/responses
Debug connection issues
π SQL Query Details
The MCP executes this query (with customer filter):
SELECT o.ordnum, o.wh_id, o.stcust, o.btcust, o.bt_adr_id,
o.adddte, dtl.expship, mst.appttime, o.cponum,
ol.prtnum, ol.ordqty, ol.ordlin,
sl.inpqty, sl.pckqty, sl.stgqty, sl.shpqty
FROM ord o
INNER JOIN ord_line ol ON o.wh_id = ol.wh_id AND o.ordnum = ol.ordnum
INNER JOIN shipment_line sl ON ol.wh_id = sl.wh_id AND ol.ordnum = sl.ordnum
AND ol.ordlin = sl.ordlin AND ol.ordsln = sl.ordsln
INNER JOIN shipment shp ON sl.wh_id = shp.wh_id AND sl.ship_id = shp.ship_id
INNER JOIN stop stp ON shp.stop_id = stp.stop_id
INNER JOIN car_move car ON stp.car_move_id = car.car_move_id
INNER JOIN trlr trl ON car.trlr_id = trl.trlr_id
INNER JOIN usrtruckdspdetail dtl ON dtl.ordnum = o.ordnum AND dtl.wh_id = o.wh_id
INNER JOIN usrtruckdspmaster mst ON mst.wh_id = dtl.wh_id AND mst.mstordnum = dtl.mstordnum
WHERE trl.dispatch_dte IS NULL
AND sl.shpqty = 0
AND ol.non_alc_flg = 0
AND o.stcust = :stcust
ORDER BY o.ordnum, ol.ordlinπ Troubleshooting
"Database pool not initialized"
Check
.envfile exists and has correct credentialsVerify Oracle connection string format:
host:port/service_name
"ORA-12154: TNS:could not resolve the connect identifier"
Verify
ORACLE_CONNECTION_STRINGformatCheck network connectivity to Oracle server
Ensure firewall allows connection on Oracle port (usually 1521)
"ORA-01017: invalid username/password"
Double-check credentials in
.envVerify user has SELECT privileges on required tables
No results returned
Verify customer ID (
stcust) exists in databaseCheck if customer has unshipped orders matching the criteria
Test query directly in SQL*Plus or SQL Developer
π References
π€ Author
Rakesh - Sr. Systems Programmer/Analyst
New Carrot Farms LLC dba Bolthouse Fresh Foods
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/RKumar1982-BFF/oracle-unshipped-orders-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server