← Back to directory
D

DeepSeek MCP Server

Community
MCP server for DeepSeek V4.1 Flash chat, Responses, FIM, and Files APIs
Category
Dev Tools #60 of 438
Stars
★ 362 Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Node.js 20+ · Docker · Hosted (no local runtime)
Credentials
API key / credential required
License
MIT
Last commit
Tools
11
64FMRS · C

A community-maintained MCP server for DeepSeek that covers V4.1 Flash chat, Responses, FIM, Files, model, and balance endpoints, with well-defined tools that declare output schemas and behavior annotations. It fits developers who want DeepSeek inside an MCP client, but requires careful handling of API keys and hosted tokens, attention to uploaded-file storage and expiry, and awareness that the hosted endpoint may lag the latest release.

Strongest · Setup experience 15/20 Weakest · Reliability 10/20

Reliability
10/20
Security and permissions
13/20
Maintenance
12/20
Documentation
14/20
Setup experience
15/20
Why each score
Reliability 10/20
The manifest declares two package registries (npm, OCI) plus a streamable-http remote, and the README describes eleven tools, output schemas, behavior annotations, and a 1.0.1 changelog. However, this is a static read only: no CI workflow, committed test files, or build artifacts are visible, and the claimed credentialed/live smoke tests are unverifiable README assertions. Upstream DeepSeek specs (V4.1 Flash, 1M context, 2026-07-28 protocol) cannot be cross-confirmed from the source. Hence a mid score: the happy path is plausible but reproducible execution evidence and error-handling detail are missing, and static calibration caps this dimension at 12.
Security and permissions 13/20
Credential handling looks clean: DEEPSEEK_API_KEY and the remote Authorization bearer are marked isSecret/isRequired, install examples use REPLACE_WITH_DEEPSEEK_KEY placeholders rather than real tokens, and no red line is triggered. Upload boundaries are explicitly scoped: base64 or supported data URLs only, no local paths, no arbitrary URL fetching, 64 MiB cap, signature checks, and an expiry window of 3,600–2,592,000 seconds, with delete_file as an explicit user call. Deductions: the hosted endpoint is third-party operated and token/data-flow behavior is only asserted; uploaded data persists in the user's DeepSeek account with no sensitivity warning or confirmation step and no least-privilege design; key rotation, audit, and transport hardening are unmentioned. No evidence of malware, theft, or covert exfiltration, so no red line; score 13.
Maintenance 12/20
MIT license is present, the repo is unarchived with 0 open issues and 352 stars, and the README documents a 0.6.0→1.0.1 migration plus dependency upgrades, suggesting active upkeep. But the static source shows no commit history, release cadence, dependency-update mechanism, or security-response channel (e.g., SECURITY.md); the OCI image is stuck at 0.5.0 and does not match the 1.0.1 feature set, indicating version drift; and the hosted endpoint is stated to run on its own, possibly lagging, release cycle with unclear governance. Missing evidence counts as deduction; score 12.
Documentation 14/20
Documentation is fairly layered: install via npx/Codex/Claude Code, MCP client JSON config, the tool inventory, visual-input examples (URL, base64 data URL, file_id), an upload safety boundary, Streamable HTTP with origin allowlisting, an environment-variable table, protocol compatibility and 0.6.0 migration notes, registry identity, and official reference links. Deductions: no full per-tool parameter schemas, no error-code/troubleshooting section, no cost or rate-limit figures; key specs (V4.1 Flash, 1M context, 2026-07-28 protocol, SDK v2) are unverifiable claims from the source files; the hosted-version lag is only vaguely flagged. Usable overall but with hidden assumptions; score 14.
Setup experience 15/20
The install path is clear and short: Node 20+, a single npx -y deepseek-mcp-server@1 command for stdio, plus Codex CLI, Claude Code, and generic JSON config examples, with host/port/origin-allowlist variables for HTTP mode—all copy-pasteable into mainstream clients. Deductions: the hosted endpoint requires a separately obtained bearer token and may lag the npm release; no Docker run example is given despite the declared OCI package; and static-only review cannot confirm that the published npx package actually connects. Capped at 15 per calibration; score 15.

Static review · not runListed 2026-09-18

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • Developers integrating DeepSeek V4.1 Flash into MCP clients
  • Chat or analysis workflows that combine text and image inputs
  • Users who want to self-host the server over stdio or a local streamable-http endpoint

Not for

  • Users who need image, video, or audio generation (this server is image understanding only)
  • Users looking for an officially DeepSeek-maintained server
  • Environments without a DeepSeek API key or network access to the DeepSeek API

Required permissions

  • Requires the DEEPSEEK_API_KEY environment variable to make upstream DeepSeek API requests
  • The hosted endpoint at https://deepseek-mcp.ragweld.com/mcp requires Authorization: Bearer <token>
  • upload_file sends base64 image data that is stored by DeepSeek under your account
  • Local streamable-http mode binds a host and port and can enforce an origin allowlist via MCP_HTTP_ALLOWED_ORIGINS

Risks and side effects

  • Data uploaded via upload_file is stored by DeepSeek under your account and persists unless you set an expiry or call delete_file; expiry must be between 3,600 and 2,592,000 seconds
  • Uploads are limited to 64 MiB and signature-checked before upload; upload_file does not accept local file paths and does not fetch arbitrary URLs on the server
  • Conversation memory lives in the process, is cleared on restart, and is bounded by CONVERSATION_MAX_MESSAGES
  • The hosted deployment has its own release cycle and may lag the npm/GitHub release, so inspect tools/list before relying on a new tool
  • This server is community-maintained and is not an official DeepSeek release

Setup

Before you start

Runtime:Node.js 20+ · Docker · Hosted (no local runtime)

DEEPSEEK_API_KEY requiredsecret API key required for DeepSeek platform requests; create it in your DeepSeek developer account.
Other optional settings (9)
DEEPSEEK_BASE_URL optional Upstream DeepSeek API base URL, defaults to https://api.deepseek.com.
DEEPSEEK_REQUEST_TIMEOUT_MS optional Request timeout in milliseconds for DeepSeek calls, default 120000.
DEEPSEEK_DEFAULT_MODEL optional Default model to use, currently deepseek-flash.
MCP_TRANSPORT optional Transport mode, stdio or streamable-http, defaults to stdio.
MCP_HTTP_HOST optional HTTP transport listen host, defaults to 127.0.0.1.
MCP_HTTP_PORT optional HTTP transport listen port, defaults to 3001.
MCP_HTTP_PATH optional HTTP endpoint path, defaults to /mcp.
MCP_HTTP_ALLOWED_ORIGINS optional Comma-separated origin allowlist for browser clients; requests with an unlisted Origin header get 403.
CONVERSATION_MAX_MESSAGES optional Maximum messages retained in the process-local conversation store, default 200.

Node.js 20 or newer is required. 1) Run directly over stdio: DEEPSEEK_API_KEY="your-key" npx -y deepseek-mcp-server@1. 2) Claude Code: claude mcp add deepseek --env DEEPSEEK_API_KEY="your-key" -- npx -y deepseek-mcp-server@1. 3) Codex CLI: codex mcp add deepseek --env DEEPSEEK_API_KEY="your-key" -- npx -y deepseek-mcp-server@1. 4) Or configure an MCP client with command npx, args ["-y", "deepseek-mcp-server@1"], and the DEEPSEEK_API_KEY environment variable. 5) For a local HTTP endpoint, set MCP_TRANSPORT=streamable-http along with MCP_HTTP_HOST/MCP_HTTP_PORT; the default is http://127.0.0.1:3001/mcp.

.mcp.json
{
  "mcpServers": {
    "deepseek": {
      "command": "npx",
      "args": ["-y", "deepseek-mcp-server@1"],
      "env": {
        "DEEPSEEK_API_KEY": "REPLACE_WITH_DEEPSEEK_KEY"
      }
    }
  }
}

Shown for Claude Code. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "deepseek": {
      "command": "npx",
      "args": [
        "-y",
        "deepseek-mcp-server@1"
      ],
      "env": {
        "DEEPSEEK_API_KEY": "REPLACE_WITH_DEEPSEEK_KEY"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add deepseek -e DEEPSEEK_API_KEY=REPLACE_WITH_DEEPSEEK_KEY -- npx -y deepseek-mcp-server@1

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After connecting, the client's tool list should show 11 tools including chat_completion, list_models, and get_user_balance. Running list_models or get_user_balance and getting real model or balance data confirms the connection works.

Troubleshooting

  1. Verify Node.js is version 20 or newer
  2. Confirm DEEPSEEK_API_KEY is set and valid
  3. When using streamable-http, check MCP_HTTP_HOST, MCP_HTTP_PORT, and MCP_HTTP_PATH; the default path is /mcp
  4. If browser requests with an Origin header get 403, verify MCP_HTTP_ALLOWED_ORIGINS is an exact comma-separated allowlist
  5. If the hosted endpoint fails, check that the Authorization header uses the Bearer <token> format
  6. Run DEEPSEEK_API_KEY="key" npm run test:live for a credentialed smoke test

Things to try

Once connected, you can ask your AI assistant things like:

  • Use chat_completion to describe this image: https://example.com/photo.png
  • Call list_models to show which DeepSeek models are currently available
  • Upload this PNG image, then use its file_id to explain what's in the diagram
  • Check my DeepSeek account balance and availability

Tools 11

chat_completion read-only
Text or visual Chat Completions with thinking controls, function tools, JSON output, streaming aggregation, and optional conversation_id memory.
create_response read-only
Stateless Responses API calls with text/images, reasoning controls, function/custom tools, web search, structured output, and semantic streaming aggregation.
completion read-only
FIM completion through /beta/completions.
list_models read-only
Live model discovery.
get_user_balance read-only
Account availability and balances.
upload_file writes
Upload base64 JPEG, PNG, GIF, or WebP data and receive a reusable DeepSeek file_id.
list_files read-only
List uploaded files with cursor, order, and purpose filters.
retrieve_file read-only
Retrieve metadata for one file_id.
Show 3 more tools
delete_file destructive
Delete one uploaded file.
reset_conversation writes
Clear one local in-memory conversation.
list_conversations read-only
List local in-memory conversation IDs.

Use cases

Call DeepSeek for text chat and image understanding directly from an MCP client
FIM completion for code or text infill tasks
Upload and reuse images through the Files API across multiple requests
Check available models and account balance from inside a client

Supported clients

Claude Code
Codex
Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

This is a community-maintained Model Context Protocol server that wraps DeepSeek's current V4.1 Flash API. It exposes eleven tools covering text and visual Chat Completions, stateless Responses API calls, FIM completion, Files API lifecycle operations (upload, list, retrieve, delete), live model discovery, account balance checks, and bounded in-memory conversations. Built on the MCP TypeScript SDK v2, it supports both stdio and streamable-http transports and negotiates the 2026-07-28 protocol era while falling back to stateless legacy clients. Note that "multimodal" here means image understanding only; the server does not generate images, video, or audio. It is not maintained by DeepSeek itself.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 64.1k · Tools 2 Compare with this →

Source revision 7a08656b733b Data synced 2026-11-02 Read the FMRS scoring method