ARL-DMS MCP Server
# ARL-DMS MCP Server
Exposes the AKIJ Resources Document Management System (DMS) to MCP clients
(opencode, Claude, etc.) over stdio JSON-RPC 2.0.
## Sources served
| # | Source | Type | Contents |
|---|--------|------|----------|
| 1 | ERP (DWH) | MSSQL | Read-only by design (queried via AkijMCP, not here) |
| 2 | Risk database | PostgreSQL (Azure) | 8,288 risks / 16 categories / 198 SBUs / 8,288 controls |
| 3 | One Goal One Team (Drive root) | Google Drive | 1,124 files / 187 folders |
| 4 | Risk Team - All Policies and SOP | Google Drive | 244 documents (user-provided links) |
| 5 | Legal Data | Google Drive | 686 files / 235 folders |
| 6 | Land | Google Drive | 210 files / 50 folders |
| 7 | ESG MLOD SSOT sheets | Google Sheets | 11,636 links from SSOT 1 (+ SSOT 2/3 partial) |
| 8 | SBU submission sheets | Google Sheets | 127 links (5 of 32 sheets public; rest private/401) |
| 9 | Bangladesh Laws (BDLaws portal) | Links | 20 core business/corporate acts |
Index: **14,535 entries** (12,786 files / 1,749 folders) in
`~/.agents/skills/ARL-DMS/library/tree.json`.
## Tools
- `dms_search(query, source?, limit)` — search documents across all repositories
- `dms_list(source?, limit)` — list files in a repository
- `dms_details(id | name)` — details card + 3-tier compliance mapping
- `dms_fetch(id, name?)` — fetch document text from public Drive
- `dms_risk_lookup(query?, category?, sbu?, limit)` — live PostgreSQL risk register
- `dms_bdlaws_act(name?)` — official bdlaws link + metadata for the 20 acts
- `dms_stats()` — inventory statistics
## Run
```bash
node server-arl-dms.js
```
Environment variables (override via MCP server environment block):
- `RISK_PG_HOST` / `RISK_PG_PORT` / `RISK_PG_DATABASE` / `RISK_PG_USER` / `RISK_PG_PASSWORD` — PostgreSQL risk register
- `ARL_DMS_SKILL_DIR` — path to ARL-DMS skill library (defaults to `~/.agents/skills/ARL-DMS`)
- `ARL_DMS_TREE_PATH` / `ARL_DMS_CONFIG_PATH` — explicit index/config paths
## Registration (opencode)
```json
"ARL-DMS": {
"type": "local",
"command": ["node", "/Users/humaninside/Desktop/ESG_SUS_Agents_Skills_MCPs/MCPs/arl-dms/server-arl-dms.js"],
"enabled": true,
"environment": {
"RISK_PG_HOST": "...", "RISK_PG_PORT": "5432",
"RISK_PG_DATABASE": "risk_register",
"RISK_PG_USER": "...", "RISK_PG_PASSWORD": "...",
"ARL_DMS_SKILL_DIR": "/Users/humaninside/.agents/skills/ARL-DMS"
}
}
```
## Notes
- Read-only by design. Never writes to ERP (DWH) or PostgreSQL.
- 28 private SBU sheets (401) are not indexed yet — share them "anyone with
link can view" and re-run the sheet extraction.
- Credentials are provided via the MCP environment block, not the skill config.TDQS
Scored across 13 tools
Each tool targets a distinct entity or action: document search vs. listing vs. details vs. fetch, plus separate registers for risks, controls, requirements, etc. The descriptions clearly differentiate them.
All tools use lowercase with underscores and the 'dms_' prefix. Some are verb-based (search, list, fetch) while others are noun-based (details, stats), showing minor inconsistency but overall predictable.
13 tools cover both document management and legal compliance without being overwhelming. Each tool serves a clear purpose, well-scoped for the server's domain.
The tool set covers searching, listing, retrieving documents, and querying multiple legal/compliance registers (risks, controls, requirements, documents). No obvious gaps for a read-only compliance DMS.