DeepSeek MCP Server

Calls DeepSeek's chat, Responses, FIM, Files, model and balance APIs from an MCP client

By David Montgomery (individual) TypeScript Remote (hosted) · Streamable HTTPLocal · stdio AI and ML

58 popularity score ★ 363 ↓ 542/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

Its docs show no set-up for a particular client: add this address in your client the way it adds a remote MCP server.

Addresssent with Authorization: Bearer <TOKEN>
https://deepseek-mcp.ragweld.com/mcp
Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs DEEPSEEK_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add deepseek -e DEEPSEEK_API_KEY=<DEEPSEEK_API_KEY> -- npx -y deepseek-mcp-server@1
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "deepseek": {
      "command": "npx",
      "args": [
        "-y",
        "deepseek-mcp-server@1"
      ],
      "env": {
        "DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "deepseek": {
      "command": "npx",
      "args": [
        "-y",
        "deepseek-mcp-server@1"
      ],
      "env": {
        "DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "deepseek": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "deepseek-mcp-server@1"
      ],
      "env": {
        "DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.deepseek]
command = "npx"
args = ["-y", "deepseek-mcp-server@1"]

[mcp_servers.deepseek.env]
DEEPSEEK_API_KEY = "<DEEPSEEK_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e DEEPSEEK_API_KEY=<DEEPSEEK_API_KEY> deepseek npx -- -y deepseek-mcp-server@1

Settings 10

DEEPSEEK_API_KEY Required: DeepSeek API key; the server will not start without it.
DEEPSEEK_DEFAULT_MODEL Optional: Model used when a call names none; default deepseek-flash.
DEEPSEEK_BASE_URL Optional: API base address; default https://api.deepseek.com.
DEEPSEEK_REQUEST_TIMEOUT_MS Optional: Request timeout in milliseconds; default 120000.
MCP_TRANSPORT Optional: stdio (default) or streamable-http; any other value falls back to stdio.
MCP_HTTP_HOST Optional: Address the HTTP transport binds to; default 127.0.0.1.
MCP_HTTP_PORT Optional: HTTP transport port; default 3001.
MCP_HTTP_PATH Optional: HTTP endpoint path; default /mcp.
MCP_HTTP_ALLOWED_ORIGINS Optional: Comma-separated browser origins allowed; requests with any other Origin get 403.
CONVERSATION_MAX_MESSAGES Optional: Messages kept in the in-memory conversation store; default 200.

What it does

DeepSeek MCP Server connects an MCP client to the DeepSeek API using your own API key. Through it an assistant can send a prompt to DeepSeek's models and get the answer back, so a second model can be asked for a draft, a review or a reasoning pass from inside the same conversation. It covers the OpenAI-compatible Chat Completions and Responses routes, fill-in-the-middle code completion on the beta completions route, model listing, the account balance, and DeepSeek's Files API for storing images to reuse in later prompts. Image input is for understanding pictures; it does not generate images, audio or video.

The chat tool can keep a conversation by ID in the server's own memory, so follow-up calls need not resend the history; that store lives only in the running process and is cleared on restart. The default model is `deepseek-flash`, changeable with `DEEPSEEK_DEFAULT_MODEL`. It runs over stdio by default and can instead serve streamable HTTP on 127.0.0.1:3001/mcp.

Beyond the 11 tools, the 1.0.1 source also registers four MCP resources (an endpoint map, runtime metadata, a live model list and a per-conversation message view) and one prompt, `deepseek_chat_starter` (src/mcp-server.ts at v1.0.1). It is written by an independent developer (DMontgomery40), not by DeepSeek; its README says it is linked from DeepSeek's integration list.

What it needs

To run it yourselfNode.js 20+

Node.js 20 or newer (the launch command uses npx). A DeepSeek API account and key in `DEEPSEEK_API_KEY`; the server throws at start without it. DeepSeek bills API usage to that account. The hosted endpoint at deepseek-mcp.ragweld.com takes a bearer token; its docs do not say how to obtain one.

Limits

npm's latest is 1.0.1, while the GitHub README describes an unpublished 1.4.0; its additions (`MCP_HTTP_AUTH_TOKEN`, `MCP_TOOL_RATE_LIMIT`, the `apply_patch` tool, required auth on non-loopback HTTP binds) are absent from 1.0.1, whose config.ts reads none of them. `upload_file` takes base64 or a data URL only, not local paths or URLs, up to 64 MiB decoded, JPEG/PNG/GIF/WebP. FIM completion is beta and non-thinking. Streamed replies arrive as one result. Conversation memory keeps 200 messages by default (`CONVERSATION_MAX_MESSAGES`) and is lost on restart. The Docker image stops at 0.5.0.

Who it suits

Suits developers who already pay for the DeepSeek API and want a second model, image understanding or code fill-in available as tools inside Claude Code, Codex or another MCP client, run locally with their own key. It is a community server, not DeepSeek's own. Anyone wanting to expose it over HTTP beyond loopback should know that 1.0.1 has no built-in auth for that endpoint and put it behind an authenticating proxy, or wait for a later npm release. Those without a DeepSeek account gain nothing from it.

Tools 11

chat_completion
Send text or image messages to a DeepSeek chat model, with thinking, function tools, JSON output and optional stored conversation
create_response
Make a stateless Responses API call with text or images, reasoning settings and structured output
completion
Fill-in-the-middle code completion on DeepSeek's beta completions route
list_models
List the models currently available to the account
get_user_balance
Show whether the account can make calls and its balances
upload_file
Upload a base64 image to DeepSeek Files and get a reusable file_id
list_files
List uploaded files with paging, order and purpose filters
retrieve_file
Get the metadata of one uploaded file
delete_file
Delete one uploaded file from DeepSeek storage
reset_conversation
Clear one conversation from the server's in-memory store
list_conversations
List the conversation IDs held in memory

Similar servers