# DeepSeek MCP Server
Model Context Protocol server for the current DeepSeek V4 API.
As of April 24, 2026, DeepSeek's public API reference documents:
- `POST /chat/completions` with `deepseek-v4-flash` and `deepseek-v4-pro`
- `POST /beta/completions` for V4 Pro FIM completion
- `GET /models`
- `GET /user/balance`
This server exposes only those documented API surfaces. It does not ship a V4 monitor, speculative image/video/upload tools, or automatic model substitution.
## Tools
- `chat_completion`: DeepSeek V4 chat. Defaults to `deepseek-v4-flash`. Supports `thinking: { "type": "enabled" | "disabled" }`, `reasoning_effort: "high" | "max"`, JSON output, function tools, logprobs, streaming, and conversation memory.
- `completion`: DeepSeek V4 Pro FIM completion. Defaults to `deepseek-v4-pro`.
- `list_models`: Reads the live DeepSeek model list.
- `get_user_balance`: Reads account balance and availability.
- `reset_conversation`: Clears an in-memory conversation.
- `list_conversations`: Lists in-memory conversation IDs.
## Hosted Remote
- URL: `https://deepseek-mcp.ragweld.com/mcp`
- Auth: `Authorization: Bearer `
Codex CLI:
```bash
export DEEPSEEK_MCP_AUTH_TOKEN="REPLACE_WITH_TOKEN"
codex mcp add deepseek --url https://deepseek-mcp.ragweld.com/mcp --bearer-token-env-var DEEPSEEK_MCP_AUTH_TOKEN
```
Claude Code:
```bash
export DEEPSEEK_MCP_AUTH_TOKEN="REPLACE_WITH_TOKEN"
claude mcp add --transport http deepseek https://deepseek-mcp.ragweld.com/mcp --header "Authorization: Bearer $DEEPSEEK_MCP_AUTH_TOKEN"
```
Cursor:
```bash
node -e 'const fs=require("fs"),p=process.env.HOME+"/.cursor/mcp.json";let j={mcpServers:{}};try{j=JSON.parse(fs.readFileSync(p,"utf8"))}catch{};j.mcpServers={...(j.mcpServers||{}),deepseek:{url:"https://deepseek-mcp.ragweld.com/mcp",headers:{Authorization:"Bearer ${env:DEEPSEEK_MCP_AUTH_TOKEN}"}}};fs.mkdirSync(process.env.HOME+"/.cursor",{recursive:true});fs.writeFileSync(p,JSON.stringify(j,null,2));'
```
## Local Stdio
```bash
DEEPSEEK_API_KEY="REPLACE_WITH_DEEPSEEK_KEY" npx -y deepseek-mcp-server
```
Docker:
```bash
docker pull docker.io/dmontgomery40/deepseek-mcp-server:0.5.0
docker run --rm -i -e DEEPSEEK_API_KEY="REPLACE_WITH_DEEPSEEK_KEY" docker.io/dmontgomery40/deepseek-mcp-server:0.5.0
```
## Environment
Required:
```bash
DEEPSEEK_API_KEY=your-api-key
```
Optional:
```bash
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_REQUEST_TIMEOUT_MS=120000
DEEPSEEK_DEFAULT_MODEL=deepseek-v4-flash
MCP_TRANSPORT=stdio
MCP_HTTP_HOST=127.0.0.1
MCP_HTTP_PORT=3001
MCP_HTTP_PATH=/mcp
MCP_HTTP_STATEFUL_SESSION=false
CONVERSATION_MAX_MESSAGES=200
```
## Verification
```bash
npm run build
npm test
DEEPSEEK_API_KEY="REPLACE_WITH_DEEPSEEK_KEY" npm run test:live
DEEPSEEK_MCP_AUTH_TOKEN="REPLACE_WITH_TOKEN" npm run test:remote
```
The live smoke test performs real DeepSeek requests for model listing, balance, non-thinking chat, thinking streaming chat with `reasoning_content`, FIM completion, and MCP tool calls.
## Registry Identity
- MCP Registry name: `io.github.DMontgomery40/deepseek`
- npm package: `deepseek-mcp-server`
- OCI package: `docker.io/dmontgomery40/deepseek-mcp-server:0.5.0`
## Official References
- DeepSeek chat completions:
- DeepSeek FIM completions:
- DeepSeek models:
- DeepSeek balance:
- MCP specification:
## License
MIT