Skip to main content
Glama
DMontgomery40

DeepSeek MCP Server

DeepSeek MCP Server

Model Context Protocol server for the current DeepSeek V4 API.

As of August 18, 2026, DeepSeek's public API reference documents:

  • POST /chat/completions with deepseek-v4-flash and deepseek-v4-pro

  • POST /responses with native OpenAI Responses API request and response shapes

  • 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: "low" | "high" | "max", JSON output, function tools, logprobs, streaming, and conversation memory.

  • create_response: Stateless native Responses API calls with text or structured input, reasoning effort controls, function tools, server-side web search, structured output, and semantic streaming.

  • 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.

Related MCP server: DeepSeek MCP Server

Hosted Remote

  • URL: https://deepseek-mcp.ragweld.com/mcp

  • Auth: Authorization: Bearer <token>

Codex CLI:

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:

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:

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

DEEPSEEK_API_KEY="REPLACE_WITH_DEEPSEEK_KEY" npx -y deepseek-mcp-server

Docker:

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:

DEEPSEEK_API_KEY=your-api-key

Optional:

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
MCP_HTTP_ALLOWED_ORIGINS=https://app.example.com,http://localhost:3000
CONVERSATION_MAX_MESSAGES=200

MCP_HTTP_ALLOWED_ORIGINS is only needed for browser-based clients. Streamable HTTP requests that send an Origin header are rejected with 403 unless the exact origin appears in this comma-separated allowlist; normal MCP clients that omit Origin are unaffected.

Verification

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, a native Responses API call, FIM completion, and MCP tool calls.

Protocol Compatibility

This release uses the supported @modelcontextprotocol/sdk v1 line and the 2025-era MCP initialization flow. Migrating to the split v2 packages and the 2026-07-28 protocol era is intentionally outside this maintenance update because it changes lifecycle and packaging contracts rather than being a drop-in dependency bump.

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

License

MIT

Available Tools

7 tools
chat_completionA

Primary DeepSeek V4 chat tool for single-turn and multi-turn generation. Defaults to deepseek-v4-flash; use deepseek-v4-pro for higher-capability reasoning. Provide either message (simple single user turn) or messages (full chat history); if both are provided, messages is used. Thinking mode is enabled by DeepSeek by default; pass thinking:{type:"disabled"} for non-thinking mode, and use reasoning_effort:"low"|"high"|"max" when thinking is enabled. Use conversation_id to persist context across calls and clear_conversation=true to reset stored state before sending the next turn. Set include_raw_response=true only for debugging because it returns the full provider payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
stopNo
modelNodeepseek-v4-flash
toolsNo
top_pNo
streamNo
messageNo
user_idNo
logprobsNo
messagesNo
thinkingNo
extra_bodyNo
max_tokensNo
temperatureNo
tool_choiceNo
top_logprobsNo
stream_optionsNo
conversation_idNo
response_formatNo
presence_penaltyNo
reasoning_effortNo
frequency_penaltyNo
clear_conversationNo
include_raw_responseNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains default behavior (model default, thinking mode enabled by default), how to override (thinking:{type:'disabled'}), and side effects (conversation_id persists context, clear_conversation resets state, include_raw_response returns full provider payload). It lacks some details like rate limits or error behavior, but for a chat tool, it covers the key behavioral traits well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient, covering all major usage points in three sentences. It front-loads the core purpose and then lists key option combinations without verbosity. Every sentence adds new information, and the structure flows logically from core usage to advanced options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (23 params, nested objects, no output schema), the description is remarkably complete. It covers selection of input format, model, thinking mode, context persistence, and debugging. While it doesn't cover every parameter (e.g., stop, tools, response_format), those are standard OpenAI-compatible parameters that the agent can infer from the schema. The description addresses the highest-value decisions for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the 23 parameters. It does this excellently by explaining the most important parameters and their interplay: message vs messages, thinking, reasoning_effort, conversation_id, clear_conversation, and include_raw_response. It also clarifies model default choices. This is critical guidance that the raw schema does not provide, making the description highly valuable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies this as the primary DeepSeek V4 chat tool for single-turn and multi-turn generation, with a specific verb ('chat'), resource ('DeepSeek V4'), and behavior. It also distinguishes itself from sibling tools by being the primary chat tool, while sibling names like 'completion' and 'create_response' suggest overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool, including model selection ('defaults to deepseek-v4-flash; use deepseek-v4-pro for higher-capability reasoning'), message format selection ('Provide either message or messages; if both are provided, messages is used'), and optional behaviors like conversation persistence and raw response inclusion. It doesn't explicitly name sibling alternatives, but the guidance is clear and context-rich.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

completionB

DeepSeek V4 Pro FIM completion tool for prompt/suffix fill-in-the-middle workflows. Defaults to deepseek-v4-pro. Use this when you need raw completion text instead of chat message formatting. Set include_raw_response=true only when you need the full provider payload for debugging.

ParametersJSON Schema
NameRequiredDescriptionDefault
echoNo
stopNo
modelNodeepseek-v4-pro
top_pNo
promptYes
streamNo
suffixNo
logprobsNo
extra_bodyNo
max_tokensNo
temperatureNo
presence_penaltyNo
frequency_penaltyNo
include_raw_responseNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. Only mentions model default and include_raw_response usage, but lacks details on response format, limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-loading purpose and usage, zero wasted words. Efficient and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite clear purpose, the description is insufficient for a tool with 14 parameters and no output schema. Missing parameter meanings and response semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 14 parameters, description only addresses 'model' and 'include_raw_response' marginally. No information on other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it's a FIM completion tool for prompt/suffix workflows, contrasts with chat formatting, and specifies the default model. Differentiates from sibling 'chat_completion'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use (raw completion vs chat) and when to set 'include_raw_response'. Does not explicitly state when not to use but provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_responseA

Create a stateless DeepSeek V4 response using the native OpenAI-compatible Responses API. Defaults to deepseek-v4-flash. Provide input, instructions, or both. Use reasoning.effort for thinking control, tools for function or server-side web-search tools, and stream=true for semantic SSE aggregation. This tool does not persist provider-side response state; send the full input history for multi-turn work. Set include_raw_response=true only for debugging because it returns the full provider payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
userNo
inputNo
modelNo
toolsNo
top_pNo
streamNo
reasoningNo
extra_bodyNo
temperatureNo
tool_choiceNo
instructionsNo
top_logprobsNo
max_output_tokensNo
include_raw_responseNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses critical behaviors: statelessness, the need to send full history for multi-turn, the streaming behavior, and the debug-only nature of `include_raw_response`. It also clarifies server-side web-search tools. This rich behavioral context goes well beyond the bare minimum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is six sentences, each providing distinct value: purpose, input requirements, parameter usage, statelessness caveat, and debugging flag. It is front-loaded with the core purpose and avoids fluff. Highly efficient for the complexity covered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (15 parameters, nested objects, no annotations, no output schema), the description covers the core operational aspects well, including state handling, streaming, and debugging. However, it omits a clear description of the default response format or return value, and since no output schema exists, this is a slight gap. Still, it is a strong contextual overview.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It adds meaning for key parameters like `input`, `instructions`, `reasoning.effort`, `tools`, `stream`, and `include_raw_response`, but leaves many parameters (e.g., `text`, `user`, `model`, `top_p`, `temperature`, `tool_choice`, `max_output_tokens`) without any commentary. This is a partial compensation, not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a stateless DeepSeek V4 response via the Responses API, with a specific verb and resource. However, it does not explicitly distinguish itself from sibling tools like chat_completion or completion, so the differentiation is only implicit through 'Responses API' and 'stateless'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: requiring `input`, `instructions`, or both; directing use of `reasoning.effort`, `tools`, `stream`, and `include_raw_response` for specific scenarios. It lacks explicit when-not-to-use guidance or alternative tool mentions, hence no full exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_balanceA
Read-only

Return the current DeepSeek account balance and availability status. This tool takes no parameters and is read-only. Use it for account health checks when diagnosing provider-side failures.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description reinforces read-only nature and no parameters; annotations already provide readOnlyHint, but description adds 'availability status' and health check context, which is beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy, front-loaded with purpose, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple no-parameter read-only tool with no output schema; covers purpose, parameters, usage context, and behavioral safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description explicitly states 'takes no parameters', adding clarity beyond the empty input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States verb 'Return' and specific resources 'DeepSeek account balance and availability status'. Clearly distinguishes from sibling tools that handle completions or conversations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises use for 'account health checks when diagnosing provider-side failures', providing clear context and when-not scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_conversationsA
Read-only

List all conversation IDs currently stored in this MCP process memory. This tool takes no parameters and does not call the DeepSeek API. Useful for debugging conversation persistence behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint. Description adds that it does not call the DeepSeek API, which is extra transparency beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first defines purpose, second adds context. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description states it lists conversation IDs but does not specify output format (e.g., array of strings). For a simple debugging tool, this is adequate but could be more complete by hinting at return type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage is 100%. Baseline for 0 params is 4. Description does not add param info but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists all conversation IDs stored in memory, with a specific verb ('list') and resource ('conversation IDs'). It distinguishes itself from siblings by noting no API call and no parameters, making it unique as a simple read-only list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states it is useful for debugging conversation persistence and that it takes no parameters. While it doesn't explicitly say when not to use, the context implies it's for debugging, and it distinguishes from siblings by noting no API calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA
Read-only

List available DeepSeek models for model selection and validation. This tool takes no parameters. Use it before passing an explicit model ID to generation tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the description does not need to emphasize safety. The description adds that the tool takes no parameters, which is accurate. However, it does not disclose other behavioral aspects like caching or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose, and contains no extraneous information. Every sentence is informative and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, usage context, and parameter behavior. Given the tool's simplicity (no parameters, read-only), this is adequate. It could optionally mention the return format, but it's not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameters, and the description explicitly states 'takes no parameters', which adds clarity beyond the empty schema. This compensates for the lack of parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing available DeepSeek models for model selection and validation. It uses a specific verb ('list') and resource ('available DeepSeek models'), and distinguishes it from sibling generation and balance tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Use it before passing an explicit model ID to generation tools.' This tells when to use the tool and implies it's a prerequisite for generation, though it does not explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reset_conversationA
Idempotent

Delete stored in-memory chat history for a conversation_id. Use this when you want to keep the same ID but start a fresh thread. This only affects server-side memory in the current MCP process.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare idempotentHint: true. The description adds context about in-memory operation and process scope, which is beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The action is stated first, then usage guidance. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a simple delete operation, the description covers purpose, when to use, and scope. It lacks details about error behavior on non-existent conversation_id, but for a straightforward tool it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage. The description mentions conversation_id by name but does not explain its meaning or constraints beyond the schema. For a single required parameter, it partially compensates but could be more explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete stored in-memory chat history for a `conversation_id`', specifying the action and resource. It distinguishes from sibling tools like chat_completion and list_conversations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: 'Use this when you want to keep the same ID but start a fresh thread.' It also clarifies scope: 'This only affects server-side memory in the current MCP process.' However, it lacks explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.6.0
    • Changedchat_completion2 fields changed
      • changedInput schema / properties / reasoning_effort / enum
        Previous value: -[
        -  "high",
        -  "max"
        -]New value: +[
        +  "low",
        +  "high",
        +  "max"
        +]
      • addedInput schema / properties / user_id
        Added value: +{
        +  "maxLength": 512,
        +  "minLength": 1,
        +  "pattern": "^[a-zA-Z0-9_-]+$",
        +  "type": "string"
        +}
    • Addedcreate_response
  2. 7 tool updatesv0.5.0
    • Changedchat_completion32 fields changed
      • addedInput schema / properties / clear_conversation
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / conversation_id
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / extra_body
        Added value: +{
        +  "additionalProperties": {},
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / frequency_penalty / default
        Removed value: -0.1
      • addedInput schema / properties / include_raw_response
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / logprobs
        Added value: +{
        +  "type": "boolean"
        +}
      • removedInput schema / properties / max_tokens / default
        Removed value: -8000
      • addedInput schema / properties / message / minLength
        Added value: +1
      • addedInput schema / properties / messages / items / additionalProperties
        Added value: +{}
      • addedInput schema / properties / messages / items / properties / content / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / messages / items / properties / content / type
        Removed value: -"string"
      • addedInput schema / properties / messages / items / properties / name
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / messages / items / properties / prefix
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / messages / items / properties / reasoning_content
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / properties / messages / items / properties / role / enum
        Previous value: -[
        -  "system",
        -  "user",
        -  "assistant"
        -]New value: +[
        +  "system",
        +  "user",
        +  "assistant",
        +  "tool"
        +]
      • addedInput schema / properties / messages / items / properties / tool_call_id
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / messages / items / properties / tool_calls
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / messages / items / required
        Previous value: -[
        -  "role",
        -  "content"
        -]New value: +[
        +  "role"
        +]
      • addedInput schema / properties / messages / minItems
        Added value: +1
      • changedInput schema / properties / model / default
        Previous value: -"deepseek-reasoner"New value: +"deepseek-v4-flash"
      • removedInput schema / properties / presence_penalty / default
        Removed value: -0
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "enum": [
        +    "high",
        +    "max"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {
        +    "type": {
        +      "enum": [
        +        "text",
        +        "json_object"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "type"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / stop
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 16,
        +      "minItems": 1,
        +      "type": "array"
        +    }
        +  ]
        +}
      • addedInput schema / properties / stream
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / stream_options
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {
        +    "include_usage": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / temperature / default
        Removed value: -0.7
      • addedInput schema / properties / thinking
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "type": {
        +      "enum": [
        +        "enabled",
        +        "disabled"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / tool_choice
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "none",
        +        "auto",
        +        "required"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "additionalProperties": {},
        +      "properties": {
        +        "function": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "name": {
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "type": {
        +          "const": "function",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "function"
        +      ],
        +      "type": "object"
        +    }
        +  ]
        +}
      • addedInput schema / properties / tools
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "function": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "description": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "parameters": {
        +            "additionalProperties": {},
        +            "propertyNames": {
        +              "type": "string"
        +            },
        +            "type": "object"
        +          },
        +          "strict": {
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "type": {
        +        "const": "function",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "function"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / top_logprobs
        Added value: +{
        +  "maximum": 20,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • removedInput schema / properties / top_p / default
        Removed value: -1
    • Addedcompletion
    • Addedget_user_balance
    • Addedlist_conversations
    • Addedlist_models
    • Removedmulti_turn_chat
    • Addedreset_conversation
  3. 2 tool updatesv1.0.0
    • First observedchat_completion
    • First observedmulti_turn_chat

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct purpose: chat vs. FIM completion, account balance, conversation listing, model listing, and conversation reset. No overlapping functionality.

Naming Consistency4/5

Names use consistent snake_case with verb_noun pattern (e.g., get_user_balance, list_conversations). 'completion' deviates slightly as a bare noun, but is conventional for FIM tools.

Tool Count5/5

Six tools cover essential operations for a DeepSeek API server: generation (chat and FIM), account health, model introspection, and conversation management. Neither too sparse nor excessive.

Completeness4/5

Core workflows are covered: chat, completion, account check, model listing, conversation reset. Minor gaps include no explicit delete_conversation or streaming support, but these are reasonable omissions.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DMontgomery40/deepseek-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server