Atlas / MCP servers / arikusi / Deepseek Mcp Server

Deepseek Mcp ServerBLOCK

mcp/arikusi/deepseek-mcp-server

MCP server for DeepSeek V4 (v4-flash, v4-pro, 1M context): chat, reasoning, function calling, thinking mode, cost tracking. deepseek-chat/reasoner aliases supported.

Verdict
BLOCK
Grade
D
Trust score
63 /100
Exposed tools
4 4r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
21
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

DeepSeek MCP Server

MCP server for DeepSeek V4 (v4-flash and v4-pro, 1M context) with multi-turn sessions, function calling, thinking mode, and cost tracking.

Compatible with Claude Code, Gemini CLI, Cursor, Windsurf, and any MCP-compatible client. Officially listed on the MCP Registry, Smithery, Glama, LobeHub, and Fronteir AI.

Read from source at commit 26ad3de46633OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add deepseek-mcp-server --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} -- npx -y @arikusi/[email protected]
claude-code (npm)
claude mcp add deepseek-mcp-server --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} -- npx -y @arikusi/[email protected]
03

Exposed tools (4)

4 read · 0 write · 0 destructive.

ToolRiskDescription
deepseek_chatread
deepseek_fimread
deepseek_sessionsread
get_weatherreadGet the weather for a location
04

Trust audit

BLOCKgrade D · trust 63/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (2 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (17)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
worker/worker-configuration.d.ts:3047
exec(input?: (string | URLPatternInit), baseURL?: string): URLPatternResult | null;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
worker/worker-configuration.d.ts:3338
exec(cmd: string[], options?: ContainerExecOptions): Promise<ExecProcess>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
worker/worker-configuration.d.ts:12118
exec(query: string): Promise<D1ExecResult>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
Dockerfile:31
CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:3000/health || exit 1
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/transport-auth.test.ts:67
baseUrl = `http://127.0.0.1:${addr.port}`;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/transport-auth.test.ts:134
baseUrl = `http://127.0.0.1:${addr.port}`;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/transport-http.test.ts:26
baseUrl = `http://127.0.0.1:${addr.port}`;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/transport-isolation.test.ts:47
baseUrl = `http://127.0.0.1:${addr.port}`;
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
worker/worker-configuration.d.ts:293
atob(data: string): string;
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
worker/worker-configuration.d.ts:381
declare function atob(data: string): string;
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, ajv, openai, redos-detector, zod, @types/express, @types/node, @vitest/coverage-v8
Why it matters. 10 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
worker/package.json
@modelcontextprotocol/sdk, zod, typescript, wrangler
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:81
- **Missing authentication on the self-hosted HTTP endpoint.** In HTTP transport mode the server holds your `DEEPSEEK_API_KEY` and uses it for every `deepseek_chat` call, yet `POST /mcp` had no authen
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:103
- **BREAKING (HTTP transport only).** Each HTTP session now gets an isolated `SessionStore` instance. Conversation history, session listings, and session deletion are scoped to the HTTP session that c
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:148
- **Remote Endpoint**: Hosted BYOK (Bring Your Own Key) endpoint at `https://deepseek-mcp.tahirl.com/mcp`. Users send their own DeepSeek API key as Bearer token — no server-side key stored.
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:165
- **Streamable HTTP Transport**: New `TRANSPORT=http` mode with Express-based Streamable HTTP server. Per-session McpServer instances with shared DeepSeekClient. Supports POST/GET/DELETE on `/mcp` end
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:619
Send your DeepSeek API key as `Authorization: Bearer <key>`. No server-side API key stored — your key is used directly per request. Powered by Cloudflare Workers (global edge, zero cold start).
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 26ad3de46633full audit observations/trust-audit/mcp-server/arikusi__deepseek-mcp-server.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1226ad3de46633BLOCKD63first audit
06

Questions

What is the @arikusi/deepseek-mcp-server MCP server?

MCP server for DeepSeek V4 (v4-flash, v4-pro, 1M context): chat, reasoning, function calling, thinking mode, cost tracking. deepseek-chat/reasoner aliases supported.

What tools does @arikusi/deepseek-mcp-server expose?

4 in total: 4 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is @arikusi/deepseek-mcp-server safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (63/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does @arikusi/deepseek-mcp-server need?

It reads DEEPSEEK_API_KEY and HTTP_AUTH_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @arikusi/deepseek-mcp-server run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as deepseek-mcp-worker at 2.3.0.

How current is this page?

The grade is for one exact copy of the source (26ad3de46633), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement