Comprehensive management of DEVONthink records and databases via MCP
Modified based on dvcrn/mcp-server-devonthink
DEVONthink MCP Server
This MCP server provides access to DEVONthink functionality via the Model Context Protocol (MCP). It enables listing, searching, creating, modifying, and managing records and databases in DEVONthink Pro on macOS. Additionally, it includes tools to resolve bibliography metadata for DEVONthink attachments based on exported bibliography data.

Features
- Exposes a comprehensive set of DEVONthink operations as MCP tools
- List, search, and look up records by various attributes
- Create, delete, move, and rename records and groups
- Retrieve and modify record content, properties, and tags
- Create records from URLs in multiple formats
- List open databases and group contents
- Resolve bibliography metadata for DEVONthink attachments via bibliography exports
- Locate DEVONthink records directly from citation keys or attachment metadata
- All tools are type-safe and validated with Zod schemas
Tools
Core Tools
is_running- Checks if DEVONthink is currently running
- No input required
- Returns:
{ "success": true | false }
create_record- Creates new records (notes, bookmarks, groups) with specified properties
- Input: record type, name, parent group, and optional metadata
delete_record- Deletes records by ID, name, or path
- Input: record identifier
move_record- Moves records between groups
- Input: record ID and destination group
get_record_properties- Retrieves detailed metadata and properties for records
- Input: record identifier
search- Performs text-based searches with various comparison options
- Input: query string and search options
lookup_record- Looks up records by filename, path, URL, tags, comment, or content hash (exact matches only)
- Input: lookup type and value
create_from_url- Creates records from web URLs in multiple formats
- Input: URL and format options
get_open_databases- Lists all currently open databases
- No input required
list_group_content- Lists the content of a specific group
- Input: group identifier
get_record_content- Retrieves the content of a specific record
- Input: record identifier
rename_record- Renames a specific record
- Input: record ID and new name
add_tags- Adds tags to a specific record
- Input: record ID and tags
remove_tags- Removes tags from a specific record
- Input: record ID and tags
classify- Gets classification proposals for a record using DEVONthink's AI
- Input: record UUID, optional database name, comparison type, and tags option
- Returns: Array of classification proposals (groups or tags) with scores
compare- Compares records to find similarities (hybrid approach)
- Input: primary record UUID, optional second record UUID, database name, and comparison type
- Returns: Either similar records (single mode) or detailed comparison analysis (two-record mode)
get_bib_metadata- Resolves bibliography metadata for a DEVONthink record or Finder path
- Input: Finder path, record UUID, DEVONthink ID + database, or DEVONthink location path (optional
bibliographyJsonPath/bibliographyBibPathoverride export locations) - Returns: The matched bibliography item with top-level
citationKey,bibliographyId, attachment list, and a short summary string for LLM prompts
get_records_by_citation_key- Resolves a citation key to its attachment metadata and matching DEVONthink records
- Input:
citationKeyalong with optional overrides for JSON/BibTeX export paths - Returns: Bibliography metadata (JSON or BibTeX) plus any DEVONthink records whose Finder paths match the attachment entries
Example: Search Tool
{
"query": "project plan",
"comparison": "contains",
"database": "Inbox"
}
Returns:
{
"results": [
{ "id": "123", "name": "Project Plan", "path": "/Inbox/Project Plan.md" }
]
}
Installation
Claude Code
claude mcp add --scope user devonthink --env BIBLIOGRAPHY_JSON=/path/to/bibliography.json -- npx -y github:TomBener/devonthink-mcp
The --scope user flag installs the MCP server for your user account (available in all projects). You can also use --scope local for the current workspace only.
Codex
codex mcp add devonthink --env BIBLIOGRAPHY_JSON=/path/to/bibliography.json -- npx -y github:TomBener/devonthink-mcp
Configuration
Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"devonthink": {
"command": "npx",
"args": ["-y", "github:TomBener/devonthink-mcp"],
"env": {
"BIBLIOGRAPHY_JSON": "/path
Tools (18)
is_runningChecks if DEVONthink is currently runningcreate_recordCreates new records with specified propertiesdelete_recordDeletes records by ID, name, or pathmove_recordMoves records between groupsget_record_propertiesRetrieves detailed metadata and properties for recordssearchPerforms text-based searches with various comparison optionslookup_recordLooks up records by filename, path, URL, tags, comment, or content hashcreate_from_urlCreates records from web URLs in multiple formatsget_open_databasesLists all currently open databaseslist_group_contentLists the content of a specific groupget_record_contentRetrieves the content of a specific recordrename_recordRenames a specific recordadd_tagsAdds tags to a specific recordremove_tagsRemoves tags from a specific recordclassifyGets classification proposals for a record using DEVONthink's AIcompareCompares records to find similaritiesget_bib_metadataResolves bibliography metadata for a DEVONthink record or Finder pathget_records_by_citation_keyResolves a citation key to its attachment metadata and matching DEVONthink recordsEnvironment Variables
BIBLIOGRAPHY_JSONPath to the exported bibliography JSON file for metadata resolutionConfiguration
{"mcpServers": {"devonthink": {"command": "npx", "args": ["-y", "github:TomBener/devonthink-mcp"], "env": {"BIBLIOGRAPHY_JSON": "/path/to/bibliography.json"}}}}