Patterns & Recipes

Connect Claude Desktop via MCP

Step-by-step guide to connecting Claude Desktop or Cursor to your Saltare workspace using the Model Context Protocol

5 min read · Beginner

Claude Desktop, Cursor, and other MCP-aware hosts can talk directly to your Saltare workspace — searching tasks, posting messages, creating documents, and using every tool your in-app agents have access to. This tutorial gets you from zero to a working connection in under ten minutes.

For the full protocol reference, see the MCP docs.

How it works

Claude Desktop  ──JSON-RPC──▶  POST /mcp  ──▶  Saltare AI tools
                                  ▲
                            Bearer token
                            + agent binding

The MCP endpoint at /mcp speaks JSON-RPC 2.0 over HTTPS. Claude Desktop sends tools/list to discover what's available, then tools/call to run them. Every tool call runs as the agent your API key is bound to.

Step 1: Create an agent (if you don't have one)

MCP requires an agent binding — tool calls are attributed to an agent, not a user. If you already have an agent you want to use, skip to Step 2.

  1. Go to your workspace and open Agents
  2. Click New Agent
  3. Name it something like Desktop Assistant
  4. Give it a short description: "My personal MCP bridge for Claude Desktop"
  5. Save it

Step 2: Create an API key with MCP scopes

  1. Go to Settings → API Keys
  2. Click Create API Key
  3. Name it: claude-desktop-mcp
  4. Select scopes:
    • mcp:tools:read — lets Claude list and call read-only tools (search, list, get)
    • mcp:tools:write — lets Claude call tools that create or modify things
    • mcp:resources:read — lets Claude read workspace resources (documents, tasks)
    • Optionally add mcp:tools:destructive if you want Claude to be able to delete things
  5. Bind to agent: select the agent from Step 1
  6. Click Create and copy the sk_sal_… token

Step 3: Configure Claude Desktop

Open Claude Desktop's MCP configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add your Saltare server to the mcpServers block:

{
  "mcpServers": {
    "saltare": {
      "url": "https://app.saltare.com/mcp",
      "headers": {
        "Authorization": "Bearer sk_sal_your_token_here"
      }
    }
  }
}

Save the file and restart Claude Desktop.

Step 4: Verify the connection

In a new Claude Desktop conversation, you should see a hammer icon indicating MCP tools are available. Click it to see the list of tools from your Saltare workspace.

Try a simple query:

What tasks are currently open in my Saltare workspace?

Claude will call search_tasks behind the scenes and return a list of your open tasks. If this works, the connection is live.

Step 5: Try common operations

Search and read

Search my Saltare documents for anything about "API design"
What channels exist in my workspace?
Show me the details of the task "fix-login-bug"

Create and modify

Create a task in Saltare called "Review Q2 roadmap" 
with a due date of next Friday
Post a message in #engineering saying "MCP bridge is live!"
Create a document called "Meeting Notes — April 16" 
with a summary of what we just discussed

Agent memory

Save a memory in Saltare: "User prefers bullet-point 
summaries over long paragraphs"

The memory is saved to the bound agent and will influence its future in-app responses too.

Configuring Cursor

Cursor also supports MCP. Add the same configuration in Cursor's settings:

  1. Open Cursor Settings (gear icon)
  2. Go to MCP Servers
  3. Add a new server:
    • Name: saltare
    • URL: https://app.saltare.com/mcp
    • Headers: Authorization: Bearer sk_sal_…

Now you can reference Saltare workspace content directly from your editor — search tasks, look up documents, and create items without leaving Cursor.

Scope security guide

Choose scopes based on how much control you want to give the MCP host:

Use case Scopes
Read-only research mcp:tools:read, mcp:resources:read
Read + create Add mcp:tools:write
Full access Add mcp:tools:destructive

Start with read-only and add write scopes once you're comfortable. You can always edit the key's scopes in Settings → API Keys without creating a new one.

SSE streaming

For long-running tool calls, the MCP endpoint supports Server-Sent Events. Send Accept: text/event-stream with your request to receive streaming responses:

POST /mcp
Accept: text/event-stream
Authorization: Bearer sk_sal_...
Mcp-Session-Id: <session-id>

The server issues a session ID on the first initialize call. Include it in subsequent requests for session continuity. Sessions expire after 30 minutes of inactivity.

Troubleshooting

"No tools found"

  • Check that your API key has mcp:tools:read scope
  • Verify the URL ends with /mcp, not /mcp/
  • Restart Claude Desktop after editing the config file

"Agent binding required"

  • Go to Settings → API Keys, edit your key, and bind it to an agent
  • Every tools/call request needs an agent binding — tools/list and resources/read work without one

"401 Unauthorized"

  • Verify your token hasn't been revoked or expired
  • Make sure the header is Authorization: Bearer sk_sal_… (note the space after Bearer)
  • Tokens are case-sensitive — copy-paste, don't retype

Rate limits

MCP shares the same 1200 requests/minute limit as the REST API, keyed by API key. Normal Claude Desktop usage won't approach this limit, but if you're running automated workflows through MCP, monitor the X-RateLimit-Remaining header.

Tips

  • Create a dedicated agent for your MCP bridge so its memories and actions are separate from your in-app agents
  • Use descriptive key names like claude-desktop-home and claude-desktop-work if you use multiple machines
  • Set IP allowlists if your MCP client runs on a server with a stable IP
  • Review the tool catalog — the MCP endpoint exposes the same 67 tools your in-app agents use, filtered by scope