Devon
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| is_runningA | Check if the DEVONthink application is currently running. |
| create_recordA | Create a new record in DEVONthink. Specify name and type (e.g. 'markdown', 'txt', 'rtf', 'html', 'bookmark', 'group'). Optionally provide content, url, a parent group UUID, and database name. Returns the full properties of the newly created record. |
| delete_recordA | Delete a record from DEVONthink. This operation is permanent — the record is moved to Trash or permanently deleted. Provide uuid (preferred), recordId + databaseName, or recordPath + databaseName. Returns the uuid and name of the deleted record for confirmation. |
| move_recordA | Move a record to a different group in DEVONthink. Resolve the source record by uuid (preferred), recordId + databaseName, recordName + databaseName, or recordPath + databaseName. Provide destinationGroupUuid to specify where to move the record. Returns the updated record properties after the move. |
| get_record_propertiesA | Get detailed properties and metadata for a DEVONthink record. Returns uuid, name, type, path, location, database, size, dates, tags, comment, url, kind, mimeType, flagged, locking, wordCount, and more. Provide uuid (preferred), recordId + databaseName, or recordPath + databaseName. |
| get_record_by_identifierA | Get a DEVONthink record using its UUID or ID. UUID lookup works across all open databases. Numeric ID lookup requires databaseName to be specified. |
| searchB | Search DEVONthink records. Examples: {"query": "invoice"} or {"query": "project review", "groupPath": "/Meetings", "databaseName": "MyDB"}. Note: groupPath requires databaseName and must be database-relative (e.g., "/Meetings" not "/MyDB/Meetings"). |
| lookup_recordB | Look up records in DEVONthink by a specific attribute. |
| create_from_urlC | Create a record in DEVONthink from a web URL. |
| get_open_databasesA | Get a list of all currently open databases in DEVONthink. |
| current_databaseB | Get information about the currently selected database in DEVONthink. |
| selected_recordsB | Get information about currently selected records in DEVONthink. |
| list_group_contentA | Lists the content of a specific group in DEVONthink. Supply a group UUID to list any group directly, or omit uuid to list the root of the current (or named) database. |
| get_record_contentA | Gets the content of a specific record in DEVONthink. Returns plain text for text-based records, or HTML source for web/HTML records. Binary records (PDF, images) return null for content. UUID is required; databaseName is optional. |
| rename_recordA | Renames a specific record in DEVONthink. UUID is required. Provide the new name as newName. Returns renamed: true with uuid, oldName, and newName for confirmation. |
| add_tagsC | Adds tags to a DEVONthink record. |
| remove_tagsC | Removes tags from a specific record in DEVONthink. |
| classifyB | Get classification proposals for a DEVONthink record. |
| compareC | Compare DEVONthink records for similarities. |
| replicate_recordA | Replicate a record within the same database to a destination group. Replicants share the same underlying data — editing one affects all replicants. Destination group UUID is required. Resolve the source record by uuid (preferred), recordId + databaseName, or recordPath + databaseName. Returns the properties of the new replicant. |
| duplicate_recordA | Duplicate a record to any destination group, creating an independent copy. Unlike replicants, duplicates are completely separate records — editing one does not affect the other. The duplicate can be placed in a different database from the original. Destination group UUID is required. Returns the properties of the newly created duplicate. |
| convert_recordA | Convert a record to a different format, creating a new record. The original record is not modified. Supported formats: bookmark, simple, rich, note, markdown, HTML, webarchive, 'PDF document', 'single page PDF document', 'PDF without annotations', 'PDF with annotations burnt in'. Optionally place the converted record in a specific destination group. Returns the properties of the newly created converted record. |
| update_record_contentA | Updates the content of an existing record in DEVONthink. For text records, sets plain text. For HTML/Markdown records, sets the source. UUID is required. Returns updated: true with uuid and name on success. |
| set_record_propertiesA | Set properties on a DEVONthink record. Settable properties: comment, flag (flagged), locked (locking), excludeFromChat, excludeFromClassification, excludeFromSearch, excludeFromSeeAlso, excludeFromTagging, excludeFromWikiLinking. Resolve record by uuid (preferred), recordId + databaseName, or recordPath + databaseName. Only provided properties are updated; others remain unchanged. |
| ask_ai_about_documentsB | Ask AI questions about specific DEVONthink documents for analysis, comparison, or extraction. |
| check_ai_healthA | Check if DEVONthink's AI services are available and working properly. |
| create_summary_documentB | Create an AI-generated summary document from multiple DEVONthink documents. |
| get_ai_tool_documentationA | Get detailed documentation for DEVONthink AI tools including examples and use cases. Optionally specify a toolName to get docs for a single tool; omit to get docs for all four. |
| list_smart_groupsA | List all DEVONthink smart groups by parsing SmartGroups.plist. Returns name, UUID (from sync.UUID), sync date, and UseUUIDKey flag for each smart group. Smart groups are NOT accessible via the standard AppleScript API — this is the only way to enumerate them. Use the returned uuid with the search tool (groupUuid parameter) to query the contents of a smart group. |
| list_smart_rulesA | List all DEVONthink smart rules by parsing SmartRules.plist. Returns name, UUID (from sync.UUID), enabled state, indexOffset, lastExecution timestamp, and sync date for each rule. Smart rules are NOT accessible via the standard AppleScript API — this is the only way to enumerate them. |
| parse_eml_headersA | Extract MIME headers from an .eml file for email thread correlation. Returns message_id, in_reply_to, references (array), subject, from, to, cc, and date. Handles CRLF/LF line endings, folded headers, and RFC 2047 encoded words in Subject/From/To. Input: { "filePath": "/path/to/email.eml" } |
| get_column_layoutA | Read the column layout for a DEVONthink smart group or smart rule from preferences. Returns the ordered visible columns, all table view columns, and column widths. Looks up by name (or UUID). Supports partial name matching. Input: { "name": "Archivieren - Jobs" } or { "name": "Jobs", "uuid": "4A469368-..." } |
| copy_column_layoutA | Copy the column layout (column order, visible columns, and column widths) from one DEVONthink smart group or smart rule to another. All three layout keys are copied atomically. Supports partial name matching. Input: { "sourceName": "Archivieren - Jobs", "targetName": "Jobs - To Review" } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| devonthink-instructions | Usage guide for the DEVONthink MCP server: workflows, tool routing, search syntax, and behavioral defaults. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/mnott/Devon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server