Skip to main content
Glama
README.md
# 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

A3.8/5.0

Scored across 13 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues