devonthink3-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DT3_CONFIG | No | Absolute path to the settings file. Default: ~/.config/devonthink3-mcp/config.json | |
| DT3_EXCLUDE_TAGS | No | Comma-separated list of extra tags to exclude. The tag 'mcp-private' is always excluded. | |
| DT3_IMPORT_ROOTS | No | JSON array of absolute directory paths permitted for single-file imports. Example: '["/Users/you/Documents/MCP Import"]'. | |
| DT3_DATABASE_MODE | No | Access mode for databases. 'selected' allows only specified UUIDs; 'open' follows all open databases. Default: selected. | |
| DT3_ENABLE_WRITES | No | Set to '1' to enable write tools. Any other non-'0' value is rejected. Default: disabled. | |
| DT3_DATABASE_UUIDS | No | Comma-separated list of permitted database UUIDs in selected mode. Empty value selects selected mode unless DT3_DATABASE_MODE is explicitly provided. No wildcard allowed. | |
| DT3_EXCLUDE_DATABASE_UUIDS | No | Comma-separated list of denied database UUIDs, applied in both modes. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dt3_statusA | Check DEVONthink 3 readiness and scope configuration. Does not launch the app. |
| dt3_databasesA | List permitted currently open databases and their root UUIDs. Refresh as databases open/close. Run the local setup CLI to change access policy. |
| dt3_selectionA | Read metadata for the current DEVONthink selection, filtered by access policy. |
| dt3_searchA | Search one permitted database with native DEVONthink query syntax, e.g. name:report or tag:review. Metadata only; use read_text for content. Live pagination follows native result order. |
| dt3_list_groupA | Browse direct children, including empty groups and records without indexed text. Follow next_offset to continue. |
| dt3_get_recordA | Read document metadata and a revision for safe editing. Optionally include custom metadata (16,000-character limit). Original paths and binary bytes are not exposed. |
| dt3_read_textA | Read a bounded chunk of DEVONthink indexed plain text with citation and extraction status. No OCR, transcription, or spreadsheet recalculation is performed. |
| dt3_relatedA | Find native similar documents, classification suggestions, duplicate files, or incoming/outgoing item references. Results are permission-filtered. Suggestions are advisory; duplicate detection follows DEVONthink, not a fresh disk hash. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| research | Research a question with cited DEVONthink evidence |
| organize | Plan a group cleanup from native classification and duplicate evidence |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | Scope, citation, pagination and mutation workflow |
TDQS
Scored across 8 tools
Each tool targets a distinct operation: status, database enumeration, selection metadata, search, group browsing, record metadata retrieval, content extraction, and related-item discovery. Even the overlapping get_record and read_text are clearly differentiated by returning metadata vs. content, leaving no ambiguity.
All tools share the dt3_ prefix and use a consistent snake_case convention with descriptive verbs (list, get, read) or clear nouns (status, databases, selection). The pattern is uniform and predictable, making tool selection straightforward.
8 tools is well-scoped for a DEVONthink integration, covering the core read-side workflow (status, databases, selection, search, navigation, retrieval, content access, and related items) without being overly sparse or bloated.
The surface is strong for read and browse operations, but lacks any create, update, or delete tools. While the get_record description hints at editing via external workflows, the MCP server itself does not provide write capabilities, leaving a notable gap in lifecycle coverage.