DokuTrak

Let your agent chase the documents: create, chase, read and collect DokuTrak Document Requests.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,654Tokens (tool definitions)
~2.7 KBTypical response size
Moderate attention impact (1.29% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "dokutrak-mcp": {
      "command": "npx",
      "args": [
        "dokutrak-mcp"
      ]
    }
  }
}

Runnable packages

npmdokutrak-mcp0.1.2stdio

Remote endpoints

https://app.dokutrak.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢prepare_request(preview)

Prepare or edit recipient, checklist, deadline and optional message before connecting. No request is created and nothing is sent. Keep the returned preview through connection, then pass it unchanged to review_request. Missing or invalid details must be corrected.

Input Schema

{
  "type": "object",
  "properties": {
    "preview": {
      "type": "object",
      "properties": {
        "recipientEmail": {
          "type": "string",
          "maxLength": 255,
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        "recipientName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "recipientLanguage": {
          "default": "en",
          "type": "string",
          "enum": [
            "en",
            "fr"
          ]
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        },
        "deadline": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "documents": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              },
              "doc_type": {
                "type": "string",
                "maxLength": 80
              },
              "doc_type_id": {
                "type": "string",
                "maxLength": 80
              },
              "description": {
                "type": "string",
                "maxLength": 1000
              },
              "required": {
                "default": true,
                "type": "boolean"
              },
              "coverage_days": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 3650
              }
            },
            "required": [
              "title"
            ]
          }
        },
        "message": {
          "default": "",
          "type": "string",
          "maxLength": 1000
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "preview"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡review_request(operation_id, preview)

After connection, submit the unchanged preview and a stable UUID operation_id. Open reviewUrl for the Professional to review and explicitly confirm in DokuTrak. Reuse the operation_id for retries. Changed details require a new operation and confirmation. No request or email is created by review.

Input Schema

{
  "type": "object",
  "properties": {
    "operation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
    },
    "preview": {
      "type": "object",
      "properties": {
        "recipientEmail": {
          "type": "string",
          "maxLength": 255,
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        "recipientName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "recipientLanguage": {
          "default": "en",
          "type": "string",
          "enum": [
            "en",
            "fr"
          ]
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        },
        "deadline": {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        "documents": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              },
              "doc_type": {
                "type": "string",
                "maxLength": 80
              },
              "doc_type_id": {
                "type": "string",
                "maxLength": 80
              },
              "description": {
                "type": "string",
                "maxLength": 1000
              },
              "required": {
                "default": true,
                "type": "boolean"
              },
              "coverage_days": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 3650
              }
            },
            "required": [
              "title"
            ]
          }
        },
        "message": {
          "default": "",
          "type": "string",
          "maxLength": 1000
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "operation_id",
    "preview"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡send_request(operation_id, version)

Send only after the Professional confirms the exact version on reviewUrl. Use operation_id and version from review_request. Retries recover the same request. sent means accepted by the email provider, not delivery to the inbox. delivery_unknown requires inspection in DokuTrak; do not start over or resend. No immediate reminder is available.

Input Schema

{
  "type": "object",
  "properties": {
    "operation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
    },
    "version": {
      "type": "string",
      "minLength": 64,
      "maxLength": 64
    }
  },
  "required": [
    "operation_id",
    "version"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_request(request_id, search)

Read checklist receipt, Human Approval status, deadlines and recorded reminder progress. Give request_id or search the title, Client name or email. If several requests match, ask the Professional to select a candidate and call again with its id. Received does not mean approved. This tool sends no reminder. Open DokuTrak to read files or make Human Approval decisions.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
    },
    "search": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools