Connect
ollama logo

Ollama

Ollama runs local models. Its native tool-calling can hit MCP servers via the community ollama-mcp-bridge. Point the bridge at Dock and your local model can read and write Dock workspaces with no data leaving your laptop (except to Dock).

Client
Ollama
Local models runner. MCP via Ollama + ollama-mcp-bridge.
HTTP JSON-RPC (streamable-http)
Dock MCP
trydock.ai/api/mcp
37 tools · OAuth 2.1 + DCR · Bearer
Auth path
1
Mint a dk_ key in Dock Settings → API keys.
2
Paste it as Authorization: Bearer dk_… in the client config.
3
Client calls Dock MCP directly on every request.

Prerequisites

  • Ollama installed with a tool-capable model (e.g. qwen3, llama3.3).
  • A Dock dk_ key.
Bridge
npm i -g ollama-mcp-bridge (community package) or use the built-in MCP client in newer Ollama builds.
ollama-mcp-bridge configjson
{
  "mcpServers": {
    "dock": {
      "url": "https://trydock.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer dk_c914f1c6..."
      }
    }
  },
  "ollamaModel": "qwen3:latest"
}

Troubleshooting

Symptom
Fix
Local model doesn't use tools
Tool-use support varies. Try qwen3, llama3.3, or command-r-plus. Older small models often ignore tool specs.

Frequently asked questions

How do I connect Dock to Ollama?
Add Dock as a remote MCP server in Ollama. Either let Ollama's OAuth 2.1 + DCR flow handle auth (recommended; no credential ceremony), or paste a scoped Dock `dk_` API key in Ollama's MCP config under the `Authorization: Bearer dk_…` header.
Does Ollama work with Dock's MCP server?
Yes. Dock exposes 43 MCP tools at `https://trydock.ai/api/mcp` over HTTP transport with OAuth 2.1 + DCR and Bearer-token auth. Any MCP-spec-compliant client, including Ollama, discovers them via the standard `tools/list` handshake. Learn more →
How do I limit which Dock workspaces Ollama can write to?
When you mint the `dk_` key for Ollama in Settings → API keys, pick the workspace from the dropdown. The key returns 403 on every other workspace regardless of what the prompt asks. To scope across multiple, mint multiple keys or add the agent as an explicit member of each. Learn more →
How do I see what Ollama did in my Dock workspace?
Open the workspace in your browser. Every row Ollama created or updated is stamped with the agent's identity (orb + name) in the createdBy / updatedBy field. The workspace activity feed shows every action chronologically. Learn more →
How do I undo a row Ollama wrote to Dock?
Open the row, click the kebab menu, choose Delete (soft-delete preserves history). For bulk reverts use the activity feed to find the agent's session and delete its rows in batch. To prevent future writes, revoke Ollama's `dk_` key in Settings → API keys.
Can multiple Ollama sessions share state through Dock?
Yes. Every Ollama session reads and writes the same workspace, so handoffs across machines or across long-running multi-session workflows just work. The Dock workspace IS the shared state; no separate message bus required.
Does Ollama need OAuth or a dk_ API key for Dock?
Either works. OAuth 2.1 + DCR is the recommended path: Ollama hits Dock's discovery endpoint at `/.well-known/oauth-authorization-server` and auto-registers as a client. The `dk_` Bearer token path is fine for owned-code agents and CI scripts; pick whichever fits your stack. Learn more →
How do I use Dock with Ollama?
Ollama doesn't ship native MCP support; bridge via a thin wrapper (e.g. `mcp-cli` or a custom Python script) that calls Dock's MCP tools and feeds them to your Ollama model. Or use Ollama via OpenWebUI / LibreChat which do support MCP.
Can I run a fully-local Ollama agent that writes to Dock?
Yes. Use Ollama for inference + a thin Python script that calls Dock's REST API or MCP server with your `dk_` Bearer. The model stays local; only writes hit Dock's hosted API.
How do I keep my Dock API key out of an Ollama setup that lives in version control?
Source `DOCK_API_KEY` from a `.env` file (gitignored) and load it via `python-dotenv` or shell sourcing. Or use a secrets manager like 1Password CLI. Never embed the `dk_` value in code.

Related

Updated