Skip to main content
Glama

finder_quick_look_file

Preview files on macOS using Quick Look to view content without opening applications. Provide the file path to display a preview.

Instructions

[Finder and file operations] Preview a file using Quick Look

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesFile path to preview

Implementation Reference

  • Handler that generates AppleScript to open Quick Look preview for the given file path by selecting it in Finder and pressing spacebar.
    script: (args) => `
      try
        set filePath to POSIX file "${args.path}"
        tell application "Finder"
          activate
          select filePath
          tell application "System Events"
            -- Press Space to trigger Quick Look
            delay 0.5 -- Small delay to ensure Finder is ready
            key code 49 -- Space key
          end tell
        end tell
        return "Quick Look preview opened for ${args.path}"
      on error errMsg
        return "Failed to open Quick Look: " & errMsg
      end try
    `,
  • JSON Schema defining the input: object with required 'path' string.
    schema: {
      type: "object",
      properties: {
        path: {
          type: "string",
          description: "File path to preview",
        },
      },
      required: ["path"],
    },
  • MCP 'listTools' request handler constructs tool name 'finder_quick_look_file' from category.finder + script.quick_look_file
      tools: this.categories.flatMap((category) =>
        category.scripts.map((script) => ({
          name: `${category.name}_${script.name}`, // Changed from dot to underscore
          description: `[${category.description}] ${script.description}`,
          inputSchema: script.schema || {
            type: "object",
            properties: {},
          },
        })),
      ),
    }));
  • MCP 'callTool' request handler parses 'finder_quick_look_file' into category='finder' and script='quick_look_file'
    const toolName = request.params.name;
    this.log("info", "Tool execution requested", { 
      tool: toolName,
      hasArguments: !!request.params.arguments
    });
    
    try {
      // Split on underscore instead of dot
      const [categoryName, ...scriptNameParts] =
        toolName.split("_");
      const scriptName = scriptNameParts.join("_"); // Rejoin in case script name has underscores
  • src/index.ts:4-27 (registration)
    Imports and registers the 'finder' category containing the quick_look_file script into the MCP server.
    import { finderCategory } from "./categories/finder.js";
    import { clipboardCategory } from "./categories/clipboard.js";
    import { notificationsCategory } from "./categories/notifications.js";
    import { itermCategory } from "./categories/iterm.js";
    import { mailCategory } from "./categories/mail.js";
    import { pagesCategory } from "./categories/pages.js";
    import { shortcutsCategory } from "./categories/shortcuts.js";
    import { messagesCategory } from "./categories/messages.js";
    import { notesCategory } from "./categories/notes.js";
    
    const server = new AppleScriptFramework({
      name: "applescript-server",
      version: "1.0.4",
      debug: false,
    });
    
    // Log startup information using stderr (server isn't connected yet)
    console.error(`[INFO] Starting AppleScript MCP server - PID: ${process.pid}`);
    
    // Add all categories
    console.error("[INFO] Registering categories...");
    server.addCategory(systemCategory);
    server.addCategory(calendarCategory);
    server.addCategory(finderCategory);

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/joshrutkowski/applescript-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server