MCP server exposing a DocuWare DMS to LLM-based agents
Project description
docuware-mcp
A Model Context Protocol (MCP) server that exposes a DocuWare DMS to LLM-based agents through a database-style API.
This is an independent project with no affiliation to DocuWare GmbH.
Configuration
Credentials are read from the docuware-client standard environment
variables:
DW_URL=https://dms.example.com
DW_USERNAME=service_account
DW_PASSWORD=<secret>
DW_ORG=<org>
Alternatively, point DW_CREDENTIALS_FILE at a JSON file — useful for
switching between test and production systems, or for keeping secrets
out of shell history:
DW_CREDENTIALS_FILE=/path/to/credentials.json
The file uses the same keys as the environment variables:
{
"url": "https://dms.example.com",
"username": "service_account",
"password": "<secret>",
"organization": "Acme GmbH"
}
organization is optional if the service account belongs to a single
organization. Make sure the file is not world-readable (chmod 600).
For service-to-service deployments, OAuth2 Client Credentials is the
recommended flow — no user account, no browser, no rotating refresh
tokens. Requires a DocuWare "Trusted / Service" App Registration that
provides a client_secret:
DW_URL=https://dms.example.com
DW_CLIENT_ID=<app-registration-id>
DW_CLIENT_SECRET=<secret>
This path is preferred over DW_USERNAME / DW_PASSWORD for unattended
deployments (containers, systemd units, Claude Desktop on a workstation
with secrets injected from a manager). DW_CREDENTIALS_FILE takes
precedence if both are set.
For internal DocuWare installations with self-signed or private-CA
certificates, TLS verification can be disabled with
DW_VERIFY_CERT=false. Do not use this against production systems —
it disables protection against man-in-the-middle attacks.
OAuth2 requires DocuWare 7.10 or later.
Use with an MCP client
docuware-mcp is a stdio-based MCP server: an MCP client (Claude
Desktop, Claude Code, …) launches it as a subprocess and talks to it
over stdin/stdout. You don't run it yourself — the client does.
The recommended install path is via uv,
because uvx will fetch and run the package on demand without a global
install. Install uv once (brew install uv on macOS,
curl -LsSf https://astral.sh/uv/install.sh | sh on Linux,
irm https://astral.sh/uv/install.ps1 | iex in PowerShell on Windows),
then add this entry to your client's MCP config:
{
"mcpServers": {
"docuware": {
"command": "uvx",
"args": ["docuware-mcp"],
"env": {
"DW_CREDENTIALS_FILE": "/path/to/credentials.json"
}
}
}
}
The config file lives at:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS),%APPDATA%\Claude\claude_desktop_config.json(Windows) - Claude Code:
.mcp.jsonin your project root (or runclaude mcp add docuware -- uvx docuware-mcp)
For OpenCode the shape is slightly different —
add to opencode.json (project) or ~/.config/opencode/opencode.json
(user):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"docuware": {
"type": "local",
"command": ["uvx", "docuware-mcp"],
"environment": {
"DW_CREDENTIALS_FILE": "/path/to/credentials.json"
},
"enabled": true
}
}
}
Restart the client after editing. The docuware server should then
appear in the available-tools list, exposing list_archives,
describe_archive, search, get_document, get_document_text,
and status.
Running directly (for debugging)
If you've cloned this repo and want to poke at the server with the MCP Inspector or call it from a script:
docuware-mcp
Speaks MCP over stdio — same protocol the clients above use.
License
BSD-3-Clause.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docuware_mcp-0.1.5.tar.gz.
File metadata
- Download URL: docuware_mcp-0.1.5.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b32ec2dcf8ba9801cdbe36347da8fd81924e8534107530f31cf72537f1903e5a
|
|
| MD5 |
f497212dfeb2d4e8dcb6656cce490c44
|
|
| BLAKE2b-256 |
8db1180cc89e29bb07116f1bde04a6dcc48937199e6c650dfd1350f30b100fef
|
File details
Details for the file docuware_mcp-0.1.5-py3-none-any.whl.
File metadata
- Download URL: docuware_mcp-0.1.5-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7719ca202ccdee77f98e7526da9195c658eb267718e580a263428534c7db864e
|
|
| MD5 |
e39b22ce5a104656b0edb2a984c88f91
|
|
| BLAKE2b-256 |
79359e28c61e9ebf95e142abdb4d0a052d4a6cbe97312752e26f6f6a68fe149a
|