# Use okdata in DeepSeek Harness: the built-in MCP client

> Add okdata to a DeepSeek Harness profile through its built-in MCP client, so DeepSeek models can fetch social data from 17 platforms.

Canonical page: https://okdata.online/integrations/deepseek-harness/

DeepSeek Harness runs DeepSeek models as agents with your own tools. Its built-in MCP client takes a remote server with fixed headers, which is all okdata needs. Once the profile has it, ask in plain words; the model finds the endpoint, states the price and fetches one page at a time.

## Connect it

Address: `https://api.okdata.online/mcp`

1. Edit `$DSH_HOME/profiles/<profile>/cordis.patch.yml` (or `$DSH_HOME/cordis.patch.yml` for every profile; `$DSH_HOME` is `~/.dsh` by default) and add an entry for the built-in MCP client.

cordis.patch.yml: 

```yaml
- insert:
    - id: mcp-okdata
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: okdata
        transport: streamable-http
        url: https://api.okdata.online/mcp
        headers:
          Authorization: 'Bearer okd_…'
        toolCallTimeoutMs: 120000
```

- A new file holds `[]`: replace it rather than appending below it. Check with `dsh --profile <profile> --dump-config`, then start a new session.

## Check it works

> List the okdata tools.

okdata is connected with 5 tools: `find` describe the data you need in words; get up to five capabilities with what they need, the price and a ready call. It never offers another platform in place of the one asked for; `describe` read the full contract of one to five capabilities: parameters, links taken, price and the most a call can cost, paging, fields and an example item; `call` fetch one page of data as text: the first lines say what it cost, the balance left and how to get the next page. Failed calls are free; max_price caps a call; `read_more` read the rest of an answer that was cut at about 20 KB, or the same result in another view, for 24 hours; `account` balance and the key’s spending limits, a receipt for one call, usage by day or capability; which capabilities are up, even without a key. Only `call` costs money. The catalog has 214 endpoints on 17 platforms.

## A first conversation

> What is on Weibo hot search right now?

| Tool call | Result | Cost |
|---|---|---|
| `find {"query":"weibo hot search"}` | weibo.trends.list · $0.002 per call · about 50 board entries per page | Free |
| `call {"capability":"weibo.trends.list"}` | One page of about 50 entries | $0.002 |

2 tool calls · 1 charged · $0.002

## Tips for DeepSeek Harness

- **Let the free tools run without asking.** Allow `find`, `describe` and `account`; keep `call` on “ask” if you want to approve every charge.
- **Ask for the cost first.** “Tell me what this will cost before you call anything” works in every client.
- **Give each client its own key.** Create one per app in the console; revoking it then touches nothing else.
- **Retries are safe.** A resent call with the same `idempotency_key` is never charged twice, and failed calls are free.

## What to know about DeepSeek Harness

- DeepSeek Harness is a developer preview and says its settings may change.
- Its tool timeout is 60 seconds unless set; the entry above gives two minutes.
- If the server cannot be reached the harness still starts, but no okdata tools appear.

Then try: “Use okdata to show me what is on Weibo's hot search right now.”

From DeepSeek Harness's own documentation, read on 2026-11-12. Menus move; if a step differs, the client's page is right.

- https://github.com/deepseek-ai/deepseek-harness
- https://github.com/deepseek-ai/deepseek-harness/discussions/8202

## If something is off

| What you see | Why | Fix |
|---|---|---|
| DeepSeek Harness does not list the okdata tools | It was started before the server was added, or the address differs from the one above. | Check the entry, then restart DeepSeek Harness or start a new chat. |
| `find` works, `call` says `unauthorized` | The key did not arrive. `find` and `describe` need none, so they still answer. | Check the header is `Authorization` with `Bearer ` and a key starting with `okd_`, then restart. |
| `call` says `insufficient_balance` | The balance does not cover the most this call can cost. Nothing was charged. | Ask it to run `account`, then top up in the console. |
