ARL-DMS MCP Server
Provides search, listing, and text-fetching capabilities for documents stored across multiple Google Drive folders (policies, legal data, land, etc.).
Indexes and provides search access to document links stored in Google Sheets (ESG MLOD SSOT sheets and SBU submission sheets).
Provides live search and lookup of the risk register stored in PostgreSQL, with filtering by query, category, SBU, and limit.
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., "@ARL-DMS MCP Serversearch DMS for 'Bangladesh Labor Act' details"
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.
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.
Related MCP server: Zileo Docs
Tools
dms_search(query, source?, limit)— search documents across all repositoriesdms_list(source?, limit)— list files in a repositorydms_details(id | name)— details card + 3-tier compliance mappingdms_fetch(id, name?)— fetch document text from public Drivedms_risk_lookup(query?, category?, sbu?, limit)— live PostgreSQL risk registerdms_bdlaws_act(name?)— official bdlaws link + metadata for the 20 actsdms_stats()— inventory statistics
Run
node server-arl-dms.jsEnvironment variables (override via MCP server environment block):
RISK_PG_HOST/RISK_PG_PORT/RISK_PG_DATABASE/RISK_PG_USER/RISK_PG_PASSWORD— PostgreSQL risk registerARL_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)
"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.
Available Tools
13 toolsdms_bdlaws_actA
Return the official Bangladesh law link and metadata for the 20 registered core business/corporate acts (Companies Act, Labour Act, VAT Act, etc.) from bdlaws.minlaw.gov.bd.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional act name filter (e.g. Labour, Companies, VAT) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states what the tool returns (link and metadata) and that it covers exactly 20 acts, which is good behavioral disclosure. Since there are no annotations, the description serves as the primary source of behavioral information. It could be improved by noting if there are any side effects or network dependencies, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that starts with the key action ('Return') and specifies the exact scope and source. Every part of the sentence is necessary and informative, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter, no output schema, and no annotations, the description does a good job explaining the tool's purpose and return value. It covers what it returns (link, metadata) and the scope (20 acts from bdlaws.minlaw.gov.bd). It could be slightly more complete by mentioning if the tool enforces exact name matching or supports partial names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with a single optional parameter 'name' that is already described as 'Optional act name filter'. The description adds context by listing example values (Labour, Companies, VAT) that help the agent understand acceptable inputs. With high schema coverage, the description contributes additional meaningful examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Return' and the resource 'official Bangladesh law link and metadata', and uniquely identifies it as covering the specific set of 20 core business/corporate acts. This distinct focus on Bangladesh law acts differentiates it from sibling tools like dms_search or dms_fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is specifically for Bangladesh corporate/business acts, providing clear context for when to use it (e.g., retrieving the Companies Act, Labour Act). While it doesn't explicitly state when not to use it or mention alternatives, the narrow scope and optional filter give strong implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_detailsA
Get a details card for one document by drive id or name: name, id, URL, path, doc type, source, and the 3-tier compliance mapping scaffold.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Drive file/folder id | |
| name | No | Document name (exact or partial) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility for disclosing behaviors. It transparently lists the output fields (name, id, URL, path, doc type, source, compliance mapping scaffold), but does not specify read-only nature, error handling (e.g., what if id/name is missing), or performance impacts. The lack of any behavioral caveats is mitigated by the clear, non-destructive implied purpose, yielding a solid 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action ('Get a details card for one document') and efficiently lists the output fields. No waste, every word adds value. Perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by enumerating all expected return fields. The tool complexity is low (2 optional params, no enums, no nested objects) and the description fully covers what an agent needs to know to select and invoke this tool correctly. Complete for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining that parameters (id or name) are alternative identification methods ('by drive id or name') and describes the output this input unlocks. It clarifies the purpose of the parameters beyond the schema's generic 'Drive file/folder id' and 'Document name (exact or partial)', earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a details card for one document.' It specifies the identification methods (drive id or name) and lists the exact fields returned (name, id, URL, path, doc type, source, compliance mapping scaffold). This level of specificity distinguishes it from siblings like dms_search (searching) and dms_list (listing), achieving a high purpose clarity score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool retrieves details for a single document, implying use when you need comprehensive metadata for one document. It does not explicitly state when not to use it or compare to alternatives, but the context signals (no required params, two optional identifiers) suggest flexibility. A slight deduction for lacking direct 'when to use vs. alternatives' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_fetchA
Fetch the text content of a publicly shared Google Drive document (docx/gdoc/xlsx/gslides/pdf attempts) by drive id. Returns up to 20k chars.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Drive file id | |
| name | No | Optional file name to detect format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a 20k character limit and that it attempts several formats, but does not mention authentication requirements, error handling for non-public documents, or rate limits. The 'attempts' phrasing is vague about success guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and scope. Every word is earned; no filler or repetition. Efficiently conveys purpose and return limit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with two params and no output schema, the description covers what it does, the input, return limit, and format support. However, it omits error scenarios (e.g., file not found, not public) and does not clarify authentication needs or whether the tool works for non-public documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both params. The description adds context about public sharing and format attempts but does not explicitly connect the optional 'name' parameter to format detection. It adds some value beyond the schema but could be more explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch the text content of a publicly shared Google Drive document by drive id', giving a specific verb and resource. It distinguishes from siblings like dms_search (search) and dms_details (metadata) by focusing on content retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need text content from a publicly shared document with a drive ID, but it lacks explicit when-to-use or when-not-to-use guidance. It does not mention alternatives like dms_details for metadata or dms_search for finding documents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_legal_controlsB
Query the Compliance Control Library (63 controls) from the Legal Compliance Workbook: control description, category, P/D/C, effectiveness, test method.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 100) | |
| compliance_id | No | Filter by Compliance ID (e.g. "CMP-001") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavioral traits. It only says 'Query', implying a read operation, but does not explicitly state it is non-destructive, whether it requires authentication, whether results are paginated, or how the filter behaves. The lack of any behavioral details beyond the verb is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and resource. It is tight, with no redundant words, and efficiently conveys the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two optional parameters, no output schema, and no annotations, the description provides a basic overview of inputs and outputs. However, it omits details like pagination behavior, the meaning of 'P/D/C', and what happens when no filter is applied. It is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. The description adds no additional meaning beyond the schema—it does not explain the filter behavior, default limit behavior, or what 'P/D/C' stands for. Baseline 3 is appropriate as the schema carries the load, but the description could have enriched the semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a specific resource ('Compliance Control Library (63 controls) from the Legal Compliance Workbook') and lists the exact fields returned (description, category, P/D/C, effectiveness, test method). This distinguishes it from sibling tools like dms_legal_kpi or dms_legal_register, which target different data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as dms_legal_requirement or dms_search. There is no mention of prerequisites, exclusions, or typical use cases. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_legal_documentsB
Query the Documents & Records Register (63 records) from the Legal Compliance Workbook: required evidence, retention, storage, evidence class.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 100) | |
| compliance_id | No | Filter by Compliance ID (e.g. "CMP-001") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, so the description carries the full burden of behavioral disclosure. The description does not mention whether the tool is read-only (though 'query' implies it), whether any authentication is required, or what happens if no parameters are provided (e.g., returns all 63 records?). It also omits details about pagination, rate limits, or side effects. Given the absence of annotations, the description should compensate, but it falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at one sentence and front-loads the key action ('query the Documents & Records Register') immediately. It adds value without being verbose. However, it could be slightly improved by removing unnecessary specificity (e.g., the exact record count '63' might become stale, but for now it is fine).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a moderate complexity (2 optional parameters, no output schema, no annotations), the description provides a basic level of completeness by identifying the source and scope. However, it omits guidance on usage context, behavioral traits, and how output is structured. For a tool with a specific purpose like querying legal documents, the description should explain what the returned records look like or how to interpret the 'evidence class' etc. The lack of output schema makes this gap more significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters with clear descriptions: 'limit' (max rows, default 100) and 'compliance_id' (filter by string). The schema description coverage is 100%, so the schema already provides meaning. The tool's description adds context by mentioning the specific workbook and record categories, which complements the parameter meanings. However, the description could add more semantics, such as how 'compliance_id' relates to the records, but it already goes beyond just the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: query the Documents & Records Register, specifying the source (Legal Compliance Workbook) and the scope (63 records). It covers the key resource ('Documents & Records Register') and the verb ('query'), and it distinguishes itself from siblings by specifying the exact register and workbook. The mention of 'required evidence, retention, storage, evidence class' adds detail on the nature of the records, making its purpose distinct from sibling tools like dms_legal_requirement or dms_legal_register.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus its many siblings (e.g., dms_legal_register, dms_search, dms_list). It does not explain what makes this tool the best choice for querying legal documents or when one should prefer an alternative. There is no mention of prerequisites, limitations, or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_legal_kpiA
Return compliance KPI/KRI definitions and Lookups (master data) from the Legal Compliance Workbook.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately describes the output type ('compliance KPI/KRI definitions and Lookups') but does not disclose any behavioral traits such as auth needs, rate limits, or side effects. The text is consistent with a read-only lookup operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, delivering complete information clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero-parameter complexity and absence of return schema, the description covers the tool's purpose. However, it could be more complete by mentioning the absence of filtering or that it returns all data, but it meets the minimum viable for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the description does not need to compensate. It successfully adds value by describing the return content, which is sufficient given no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'compliance KPI/KRI definitions and Lookups (master data) from the Legal Compliance Workbook,' using specific nouns. It differentiates from siblings like 'dms_legal_risk' or 'dms_stats' by the 'KPI/KRI definitions and Lookups' focus, though 'Return' could be more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage context or alternatives are mentioned. The description implies it is for master data lookups but does not guide when to choose this over siblings like 'dms_legal_register' or 'dms_risk_lookup'. It meets the minimum viable standard without additional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_legal_registerA
Query the AKIJ Bangladesh Legal Universe (80 instruments) from the Legal Compliance Master Workbook: laws, domains, instrument type, regulator, official source URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| query | No | Search by title/domain/key scope | |
| domain | No | Legal domain filter (e.g. "Tax", "Labour", "Companies") | |
| instrument_type | No | Instrument type filter (e.g. "Act", "Rules", "SRO") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the tool as a query (read operation), naming the fields returned. However, it does not disclose whether results are paginated, sorted, or limited beyond the limit parameter, nor any rate limits or access restrictions. This is adequate but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the tool's purpose and resource, then lists key fields. Every part is useful, but it could be slightly more concise by removing the parenthetical '80 instruments' if not critical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 simple string/number parameters, the description is largely complete for a query tool. It names the source and return fields. It could mention that the tool returns a list of instruments, but the output format is not described. Still, the simplicity of the tool keeps gaps small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists example values for 'domain' and 'instrument_type', which adds some semantic context beyond the schema's generic descriptions. However, it doesn't explain how these filters interact (AND/OR) or provide format guidance for 'query'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Query', the specific resource 'AKIJ Bangladesh Legal Universe (80 instruments) from the Legal Compliance Master Workbook', and lists the key fields returned (laws, domains, instrument type, regulator, official source URL). It explicitly names the sibling tools 'dms_search' and 'dms_legal_kpi', which helps differentiate this tool as a query-oriented legal register.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it queries a specific legal universe, which implies use when you need legal instrument data from that source. It does not explicitly state when NOT to use it or mention alternatives among the siblings, though the name 'legal_register' and the field list suggest a filtered search tool distinct from general 'dms_search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_legal_requirementC
Query the Master Compliance Register (63 requirements, 119 fields) from the Legal Compliance Workbook: legal basis, obligation, applicability, owner, risk, evidence, compliance status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Compliance ID (e.g. "CMP-001") | |
| limit | No | Max rows (default 50) | |
| query | No | Search by law name / domain / obligation text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It does not state whether the tool is read-only, whether authentication is needed, how pagination works (though 'limit' hints at it), or what happens on empty results. The mention of 63 requirements and 119 fields provides some scope but insufficient transparency for a safe agent usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is reasonably concise but densely packs numbers and a list of fields. It lacks front-loading of the primary action ('Query') and could benefit from a more structured layout to improve scanability. The length is acceptable but not optimally efficient for quick agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and no annotations, the description should explain return values and differentiate from siblings. It lists output fields from the workbook, giving some idea of results, but does not specify the structure (e.g., is it a list of objects?), pagination details, or how this tool complements the dozen sibling tools. Completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a clear description (e.g., 'Compliance ID (e.g. "CMP-001")'). The description adds context about the register's size and fields but does not enhance understanding of how to use the parameters beyond the schema baseline. The additional context is modest, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries the Master Compliance Register from a specific workbook, listing the key fields it retrieves. However, it does not explicitly differentiate this tool from siblings like dms_legal_register or dms_legal_risk, which may cause confusion when multiple compliance-related tools exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as dms_legal_register (also a register query) or dms_legal_documents. There is no mention of prerequisites, context for use, or exclusion criteria, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_legal_riskB
Query the Compliance Risk Register (63 risks) from the Legal Compliance Workbook: risk statement, likelihood/impact, inherent/residual score, rating, owner, treatment.
| Name | Required | Description | Default |
|---|---|---|---|
| sbu | No | Risk owner filter | |
| limit | No | Max rows (default 50) | |
| query | No | Search by risk statement or compliance ID | |
| min_rating | No | Minimum rating: Critical, High, Medium, Low |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read operation but does not state whether the query returns a fixed order, supports pagination beyond the limit parameter, or has any rate limits or authentication requirements. The absence of any side-effect or limitation detail leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 30 words, front-loaded with the action ('Query') and immediately specifying the target resource and key fields. Every word adds value; there is no redundancy or filler. Perfectly concise for a straightforward query tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (4 optional parameters, no nested objects) and the lack of output schema, the description provides a good overview of the returned fields. Still, it could be more explicit about the response format (likely a list of objects) and whether the result ordering is deterministic. The mention of '63 risks' helps set expectations. Slightly incomplete but sufficient for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with concise descriptions, meeting the baseline. The description does not add any additional context for parameters like sbu, limit, query, or min_rating beyond what the schema already provides. It lists output fields but that is unrelated to parameter semantics. Thus, no extra score is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries the 'Compliance Risk Register (63 risks)' and lists the fields returned. It uses a specific verb and resource, making the purpose clear. However, given the sibling tool 'dms_risk_lookup' which may overlap, the description does not explicitly distinguish this tool from that one, preventing a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its many siblings (e.g., dms_risk_lookup, dms_legal_register). It does not mention prerequisites, exclusions, or alternative tools. The usage context is only implied by the tool's name and the static register size, which is insufficient for confident selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_listA
List documents in a DMS source repository (drive, risk-team, legal-data, land, sheet, bdlaws) with id, path, doc type and url.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 100) | |
| source | No | Source repository to list. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that documents are listed with id, path, doc type, and url, but does not disclose any permissions, rate limits, pagination behavior, or whether the operation is read-only. While 'list' implies a read operation, the description lacks explicit safety or side-effect context, similar to the update_drive example which scored 2 for no annotations and missing reversibility/permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action, scope, and output fields without any redundancy. Every word contributes to understanding the tool's purpose and acceptable inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two optional parameters and no output schema. The description covers the essential aspects: the repositories, the filtered behavior (via source param), and the returned fields. It lacks explicit mention of sorting or default limit beyond the schema's 'default 100', but for a list operation, this is reasonably complete given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions), but the main description adds value by enumerating the valid source repository values (drive, risk-team, legal-data, land, sheet, bdlaws) and listing the output fields. This goes beyond the schema's simple 'string' type and provides meaningful context that the agent can use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with the resource 'documents in a DMS source repository', enumerates the valid repositories (drive, risk-team, legal-data, land, sheet, bdlaws), and states the output fields (id, path, doc type, url). This clearly distinguishes it from siblings like dms_search or dms_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing documents with optional source filtering, and the 'source' parameter clarifies 'Omit for all'. However, it does not explicitly mention when to use this tool instead of alternatives like dms_search for searching or dms_details for specific document details, so no direct or implied exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_risk_lookupA
Query the Bangladesh legal/compliance risk register (PostgreSQL, 8,288 risks) by keyword, category, or SBU. Returns risk code, title, scores, ratings, status.
| Name | Required | Description | Default |
|---|---|---|---|
| sbu | No | SBU code or name (e.g. ACCL, AIL, ARL) | |
| limit | No | Max results (default 10) | |
| query | No | Keyword in risk title/code/description | |
| category | No | Risk category name (e.g. Legal & Regulatory, Compliance, Operational) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states it is a query (read operation) to a PostgreSQL database with 8,288 risks, which implies safety but does not confirm idempotency, mention authentication needs, rate limits, or potential performance (e.g., slow on large result sets). The return format is hinted (risk code, title, scores, ratings, status) but not fully specified. Basic behavioral context is present but insufficient for a tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the resource (Bangladesh legal/compliance risk register), notes the data size (8,288 risks), lists all filter dimensions, and summarizes return fields. Every phrase earns its place with no redundancy. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return fields (risk code, title, scores, ratings, status) sufficiently. The lack of usage guidance against sibling tools and no explanation of risk score/rating interpretation are minor gaps, but for a straightforward query tool the description is mostly complete. It would benefit from a brief note on primary key (risk code) or result order.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have descriptions in the input schema (100% coverage). The tool description adds no semantic value beyond what the schema already provides – it merely groups filters by mention. The baseline of 3 applies, and no extra meaning (e.g., format hints, required conditions, default behaviors) is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a specific resource – the Bangladesh legal/compliance risk register – with explicit filter dimensions (keyword, category, SBU) and return fields. This distinguishes it from sibling tools like dms_search (general search) and dms_legal_risk (possibly legal-specific risks). The verb 'Query' and focused resource name provide precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use when needing risk register data filtered by keyword/category/SBU. However, it does not contrast with alternatives (e.g., dms_search, dms_legal_register) or give when-not-to-use guidance. No explicit exclusions or conditions are provided, leaving an agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_searchA
Search the ARL-DMS document library (14,535 indexed files across Drive root, Risk Team, Legal Data, Land, ESG sheets, SBU sheets, and BD Laws). Returns matching documents with name, path, drive id, url, doc type and source.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 15) | |
| query | Yes | Search terms (e.g. "leave policy", "land tax", "labour act") | |
| source | No | Optional source filter: drive, risk-team, legal, land, sheet, esg, sbu, bdlaws |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It mentions scale (14,535 files) and return fields, but does not confirm read-only behavior, authorization needs, search heuristics, or pagination beyond the limit parameter. The lack of explicit safety traits limits agent confidence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and scope. Every word contributes: the verb, target library, scope summary, and return fields. No repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basics: what is searched, what is returned, and the source filter. However, it omits pagination behavior, result ordering, handling of no results, and comparison with sibling tools. Given the tool's complexity and lack of output schema, more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds value by contextualizing the source parameter (e.g., mapping 'drive' to 'Drive root') and listing return fields not in the schema. It also states the total indexed file count, helping the agent understand search scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the ARL-DMS document library, enumerates the indexed sources, and lists the return fields. It distinguishes itself from siblings like dms_fetch or dms_list by specifying the broad search scope across multiple sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a cross-source document search is needed, but it does not explicitly state when to prefer this tool over alternatives like dms_list or dms_fetch. No exclusions or comparisons are provided, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dms_statsA
Return DMS inventory statistics: total files/folders, counts by source and document type, registered sources, BD laws count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the tool returns statistics (read operation), which is appropriate, but does not mention performance implications, data freshness, or whether counts are real-time or cached. The description is adequate for a read-only inventory summary tool, but could add more behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the core action ('Return DMS inventory statistics') and then lists the specific data points returned. Every element is relevant, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description completely explains the tool's return value. The list of statistics (files/folders, sources, document types, BD laws) is comprehensive for an inventory overview tool. No additional context seems necessary for an agent to correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the schema already conveys no inputs are needed. The description adds value by explaining what the returned statistics include, which is the complete set of aggregate data the tool produces, effectively compensating for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns DMS inventory statistics and enumerates specific categories (total files/folders, counts by source and document type, registered sources, BD laws count). This provides a precise, distinctive purpose compared to sibling tools like dms_search or dms_details, which focus on searching or fetching individual records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool provides aggregate statistics for an overview, distinguishing it from detail-oriented siblings, but offers no explicit guidance on when to use this vs. alternatives like dms_legal_kpi. No exclusions or prerequisites are mentioned, though the 'total' qualifier suggests it covers all sources, which is helpful context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.1.0- First observed
dms_bdlaws_act - First observed
dms_details - First observed
dms_fetch - First observed
dms_legal_controls - First observed
dms_legal_documents - First observed
dms_legal_kpi - First observed
dms_legal_register - First observed
dms_legal_requirement - First observed
dms_legal_risk - First observed
dms_list - First observed
dms_risk_lookup - First observed
dms_search - First observed
dms_stats
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Team docs served to AI agents over MCP - search, Markdown reads, version pinning, read audit.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that indexes Markdown, Word, HTML, and PDF documents into a SQLite knowledge graph with CJK+Latin full-text search and cross-document reference tracking. Runs drift audits to surface stale policies, conflicting research claims, superseded ADRs, and undocumented code exports.108MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for indexing, semantic search, and generation of multi-format documents. Exposes 13 tools over JSON-RPC 2.0 so an LLM can search your local PDF, Excel, and Word files, and create or edit Excel and Word documents.AGPL 3.0
- AlicenseAqualityBmaintenanceA local MCP server that enables LLMs to securely search and read files within designated Google Drive folders. Supports Google Docs, Google Sheets, PDFs, and plain text with strict folder-scoping via service account authentication.4MIT
- FlicenseAqualityCmaintenanceA local AI document assistant MCP server that enables listing, reading, and editing documents via tools, resources, and prompts, allowing LLMs to manage document workflows through natural language.3-
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/sakibntanmoy006/arl-dms-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server