Claude Desktop file access via MCP + LLMind
Claude Desktop supports MCP servers out of the box. The filesystem MCP server exposes a directory to Claude; the files Claude reads through that server also carry their XMP-embedded semantic layer if you've run LLMind over the directory. This guide walks through the 5-step setup.
What you'll build
At the end of this guide, Claude Desktop has access to a directory of LLMind-enriched files. When you ask Claude about a PDF or image in that directory, it reads the file AND the structured description LLMind wrote. No re-uploading. No vector DB. The metadata is portable and signed.
Step 1 — Install LLMind
LLMind installs via pipx (or uv) — both put the CLI on your
PATH in an isolated environment:
pipx install 'llmind-cli[all]'
llmind --version
Requires Python 3.11+. PDF rendering also needs poppler-utils
(brew install poppler on macOS, apt install poppler-utils
on Debian/Ubuntu).
Step 2 — Enrich your directory
Point LLMind at a directory of files. LLMind walks the directory, enriches each supported file (PDFs, images, audio, markdown, text), and writes the signed semantic layer (description, entities, transcription) into each file's XMP packet:
llmind enrich --recursive ~/docs/
Replace ~/docs/ with your directory path. The enrichment is one-time. After this, each file carries its semantic
layer.
Step 3 — Install the filesystem MCP server
The filesystem MCP server is an NPM package maintained by Anthropic. Claude Desktop can invoke it on demand via npx
— no global install needed. The server reads files from a directory you specify and exposes them to Claude through the MCP
protocol.
To use it, you only need npx (which comes with Node.js). If you don't have Node.js installed, download it from
nodejs.org.
Step 4 — Configure Claude Desktop
Claude Desktop reads MCP server configuration from a JSON file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
If the file doesn't exist, create it. Add the filesystem MCP server entry:
{
"mcpServers": {
"docs": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/you/docs"
]
}
}
}
Replace /Users/you/docs with the absolute path to the directory you enriched in Step 2. The server name
("docs") can be anything you want — it just labels this MCP server in Claude's UI.
Step 5 — Test in Claude
Restart Claude Desktop completely (quit and reopen). Open a new chat. Test the setup:
You: What files are in the docs folder?
Claude should list the files from your configured directory. Now ask Claude to summarize a file:
You: Summarize research-paper.pdf
Claude should read the file through the MCP server and use the
XMP-embedded description LLMind wrote to provide rich context. If it doesn't work, check Claude Desktop's developer settings (Settings → Developer) for MCP server logs. The logs show whether the filesystem MCP server started and whether Claude is connecting to it.
Troubleshooting
Wrong config path: Double-check the path to claude_desktop_config.json for your OS.
Permissions: Make sure Claude Desktop has read access to the directory you're exposing. Run ls -la ~/docs/
to verify the directory exists and is readable.
npx not found: Verify Node.js is installed: node --version. If not, install it from
nodejs.org.
Claude Desktop cache: After updating the config, Claude Desktop may cache the old MCP server list. Fully quit Claude Desktop (not just close the window — use the menu: Claude → Quit Claude) and reopen.
For deeper MCP troubleshooting, visit the MCP documentation.