Skip to main content

Claude Desktop Integration

This guide shows how to configure Claude Desktop to use Dotset for protected MCP server access.

Overview

Claude Desktop uses MCP servers to provide Claude with tools like filesystem access, database queries, and more. Dotset adds a security layer by wrapping these servers with access control.

Configuration Location

Claude Desktop configuration is located at:
OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Basic Setup

Option 1: Using dotset wrap

Wrap any MCP server with Dotset’s access control:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "wrap",
        "--", "npx", "-y", "@anthropic/mcp-server-filesystem", "./"
      ]
    }
  }
}

Option 2: Using dotset run (Full Protection)

For full protection including pre-flight scans:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "run",
        "--", "npx", "-y", "@anthropic/mcp-server-filesystem", "./"
      ]
    }
  }
}

Server Examples

PostgreSQL Database

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "wrap",
        "--", "npx", "-y", "@modelcontextprotocol/server-postgres"
      ],
      "env": {
        "DATABASE_URL": "postgres://localhost/mydb"
      }
    }
  }
}

Filesystem Access

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "wrap",
        "--", "npx", "-y", "@anthropic/mcp-server-filesystem",
        "/Users/me/projects"
      ]
    }
  }
}

Multiple Servers

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "wrap",
        "--", "npx", "-y", "@modelcontextprotocol/server-postgres"
      ],
      "env": {
        "DATABASE_URL": "postgres://localhost/mydb"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "wrap",
        "--", "npx", "-y", "@anthropic/mcp-server-filesystem", "./"
      ]
    },
    "github": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "wrap",
        "--", "npx", "-y", "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_TOKEN": "your-token-here"
      }
    }
  }
}

Using with dotset.yaml

If you have a dotset.yaml configuration file, you can reference it:
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "run",
        "-c", "/path/to/dotset.yaml",
        "--", "npx", "-y", "@modelcontextprotocol/server-postgres"
      ],
      "env": {
        "DATABASE_URL": "postgres://localhost/mydb"
      }
    }
  }
}

How Approval Works

When Claude tries to use a tool, Dotset prompts you for approval:
  1. Claude requests a tool call — e.g., “read file src/index.ts”
  2. Dotset intercepts — The request is analyzed
  3. You’re prompted — A terminal prompt appears (or web UI if configured)
  4. You decide — Approve, deny, or set a session grant

Terminal Prompts

[Tollgate] Tool call: read_file
  Arguments: { "path": "src/index.ts" }
  Risk: read

  Allow? [y/n/a/d]
Options:
  • y — Allow this call
  • n — Deny this call
  • a — Always allow this tool (session grant)
  • d — Always deny this tool (session grant)

Skip Options

Skip Pre-flight Scan

If you’re using dotset run but want to skip the Hardpoint scan:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "run",
        "--skip-scan",
        "--", "npx", "-y", "@anthropic/mcp-server-filesystem", "./"
      ]
    }
  }
}

Skip Deadfall

Skip the honeypot server:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@dotsetlabs/dotset", "run",
        "--skip-deadfall",
        "--", "npx", "-y", "@anthropic/mcp-server-filesystem", "./"
      ]
    }
  }
}

Troubleshooting

Server Not Starting

  1. Check that Dotset is installed: npm list -g @dotsetlabs/dotset
  2. Run the command manually to see errors
  3. Check Claude Desktop logs

Approval Prompts Not Appearing

  1. Ensure terminal is visible when using terminal approval method
  2. Try the interactive approval method with a web UI
  3. Check that the approval timeout hasn’t expired

Tool Calls Blocked

  1. Check if you accidentally set a “deny always” grant
  2. Review the Tollgate audit logs: tollgate logs
  3. Restart Claude Desktop to clear session grants

See Also