Sql Ag Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Sql Ag Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This project deploys a read-only Model Context Protocol server for the Bolthouse_Ag_AI SQL Server database using the sqlprd_ag_ai login.
It is based on the existing MCP4 behavior, adapted for Railway:
/mcpPORT support| Tool | Purpose |
|---|---|
execute_sql_query | Runs a read-only query with capped inline results |
execute_sql_query_paged | Returns a requested page; requires ORDER BY |
submit_sql_export | Starts a background CSV/CSV.GZ export |
get_sql_export_status | Polls an export job and returns its download URL |
The expected agent flow for a large download is:
submit_sql_export.job_id.get_sql_export_status until status is completed.result.download_url.Railway must be able to reach the SQL Server host on TCP port 1433. An internal-only IP such as 10.x.x.x is not normally reachable from Railway unless your organization provides a VPN, tunnel, or other private-network path. If SQL Server is exposed through a public endpoint, restrict its firewall as tightly as your network design permits.
The sqlprd_ag_ai login should have read access only to Bolthouse_Ag_AI. SQL Server permissions are the primary security boundary; the application also rejects non-read-only SQL.
By default, query metadata is written to Railway logs without recording the SQL text. To write full audit records into SQL Server:
sql/create_audit_table.sql.AUDIT_TABLE=dbo.MCP_Query_Audit_AG_Railway. git init
git add .
git commit -m "Add Bolthouse Agriculture Railway MCP"
git branch -M main
git remote add origin https://github.com/YOUR-ORG/YOUR-REPO.git
git push -u origin mainNever commit .env, SQL passwords, or API tokens.
Dockerfile. API_TOKEN=<long-random-secret>
DB_SERVER=<SQL Server hostname or reachable IP>
DB_PORT=1433
DB_NAME=Bolthouse_Ag_AI
DB_USER=sqlprd_ag_ai
DB_PASS=<SQL password>
DB_DRIVER=ODBC Driver 18 for SQL Server
DB_ENCRYPT=yes
DB_TRUST_SERVER_CERTIFICATE=yes
SERVICE_NAME=Bolthouse Agriculture AI Read Only MCP PUBLIC_BASE_URL=https://YOUR-SERVICE.up.railway.appPUBLIC_BASE_URL.Your MCP URL is:
https://YOUR-SERVICE.up.railway.app/mcpUse the value of API_TOKEN as the bearer token in the MCP registration.
Railway container storage is ephemeral. Exports can disappear during a redeploy or restart unless a Railway Volume is attached.
Recommended setup:
/data.EXPORT_DIR; the application automatically detectsRAILWAY_VOLUME_MOUNT_PATH and stores exports under /data/exports.
running process.
Completed export files and the export registry persist on the volume. Active background jobs do not survive a restart and must be submitted again.
Health check:
curl https://YOUR-SERVICE.up.railway.app/healthInline query:
curl -X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"SELECT DB_NAME() AS database_name"}' \
https://YOUR-SERVICE.up.railway.app/querySubmit an export:
curl -X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"SELECT TOP (1000) * FROM dbo.YourTable","gzip_output":true}' \
https://YOUR-SERVICE.up.railway.app/exportsCheck the job:
curl \
-H "Authorization: Bearer YOUR_API_TOKEN" \
https://YOUR-SERVICE.up.railway.app/jobs/JOB_IDSIGNED_URL_TTL_SECONDS.MAX_INLINE_ROWS protects MCP responses from oversized JSON payloads./health route is public but reveals no credentials.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.