current_database
Retrieve details about the active database in DEVONthink to understand your current workspace context and available resources.
Instructions
Get information about the currently selected database in DEVONthink.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The handler implementation for the `current_database` tool, which executes a JXA script to retrieve the current database details.
export const currentDatabaseTool = defineTool({ name: "current_database", description: "Get information about the currently selected database in DEVONthink.", schema: z.object({}), run: async (_args, executor) => { const script = ` ${JXA_APP} var db = app.currentDatabase(); if (!db || !db.uuid()) throw new Error("No current database found"); JSON.stringify({ uuid: db.uuid(), name: db.name(), path: db.path() }); `.trim(); const { stdout } = executor.run(script); return JSON.parse(stdout) as { uuid: string; name: string; path: string; }; }, }); - src/tools/index.ts:15-75 (registration)The `current_database` tool is imported and added to the `allTools` array, which registers all available tools for the MCP server.
import { currentDatabaseTool } from "./database/get-current-database.js"; // Records import { getRecordByIdTool } from "./records/get-record-by-id.js"; import { getRecordPropertiesTool } from "./records/get-record-properties.js"; import { getRecordContentTool } from "./records/get-record-content.js"; import { createRecordTool } from "./records/create-record.js"; import { deleteRecordTool } from "./records/delete-record.js"; import { updateRecordContentTool } from "./records/update-record-content.js"; import { setRecordPropertiesTool } from "./records/set-record-properties.js"; import { renameRecordTool } from "./records/rename-record.js"; import { moveRecordTool } from "./records/move-record.js"; import { replicateRecordTool } from "./records/replicate-record.js"; import { duplicateRecordTool } from "./records/duplicate-record.js"; import { convertRecordTool } from "./records/convert-record.js"; // Groups import { listGroupContentTool } from "./groups/list-group-content.js"; import { selectedRecordsTool } from "./groups/get-selected-records.js"; // Search import { searchTool } from "./search/search.js"; import { lookupRecordTool } from "./search/lookup-record.js"; // Tags import { addTagsTool } from "./tags/add-tags.js"; import { removeTagsTool } from "./tags/remove-tags.js"; // Web import { createFromUrlTool } from "./web/create-from-url.js"; // Intelligence import { classifyTool } from "./intelligence/classify.js"; import { compareTool } from "./intelligence/compare.js"; // AI import { askAiAboutDocumentsTool } from "./ai/ask-ai-about-documents.js"; import { checkAiHealthTool } from "./ai/check-ai-health.js"; import { createSummaryDocumentTool } from "./ai/create-summary-document.js"; import { getAiToolDocumentationTool } from "./ai/get-ai-tool-documentation.js"; // Custom (our extensions, not from upstream) import { listSmartGroupsTool } from "./custom/list-smart-groups.js"; import { listSmartRulesTool } from "./custom/list-smart-rules.js"; import { parseEmlHeadersTool } from "./custom/parse-eml-headers.js"; import { getColumnLayoutTool, copyColumnLayoutTool } from "./custom/column-layout.js"; /** All 33 tools in registration order */ export const allTools: McpTool[] = [ // Core (28 tools matching upstream API surface) isRunningTool, createRecordTool, deleteRecordTool, moveRecordTool, getRecordPropertiesTool, getRecordByIdTool, searchTool, lookupRecordTool, createFromUrlTool, getOpenDatabasesTool, currentDatabaseTool,