liter-llm
One MCP server for chat, embeddings, images, speech, OCR and batch jobs across many LLM providers
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
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
Its docs show no set-up for a particular client: add this address in your client the way it adds a remote MCP server.
https://deepseek-mcp.ragweld.com/mcpOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs DEEPSEEK_API_KEY. Replace each <NAME> with your value.
claude mcp add deepseek -e DEEPSEEK_API_KEY=<DEEPSEEK_API_KEY> -- npx -y deepseek-mcp-server@1{
"mcpServers": {
"deepseek": {
"command": "npx",
"args": [
"-y",
"deepseek-mcp-server@1"
],
"env": {
"DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
}
}
}
}{
"mcpServers": {
"deepseek": {
"command": "npx",
"args": [
"-y",
"deepseek-mcp-server@1"
],
"env": {
"DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
}
}
}
}{
"servers": {
"deepseek": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"deepseek-mcp-server@1"
],
"env": {
"DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
}
}
}
}[mcp_servers.deepseek]
command = "npx"
args = ["-y", "deepseek-mcp-server@1"]
[mcp_servers.deepseek.env]
DEEPSEEK_API_KEY = "<DEEPSEEK_API_KEY>"gemini mcp add --scope user -e DEEPSEEK_API_KEY=<DEEPSEEK_API_KEY> deepseek npx -- -y deepseek-mcp-server@1DEEPSEEK_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. |
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.
| To run it yourself | Node.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.
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.
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.
chat_completioncreate_responsecompletionlist_modelsget_user_balanceupload_filelist_filesretrieve_filedelete_filereset_conversationlist_conversations