Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Each tool has a distinct role: profiles for listing, status for snapshots, start for async initiation, wait for polling, cancel for stopping, and run for full delegation. Start and run overlap slightly in that both initiate tasks, but run is explicitly end-to-end while start is async, making them distinguishable.

    Naming Consistency4/5

    All tools share the deepseek_ prefix, with a mix of nouns (profiles, status) and verbs (start, wait, cancel, run). The pattern is consistent in that getters use nouns and actions use verbs, though a fully consistent verb_noun convention would be clearer.

    Tool Count5/5

    Six tools is well-scoped for managing DeepSeek task delegation: listing options, checking status, starting, waiting, cancelling, and running end-to-end. Each tool earns its place without unnecessary redundancy.

    Completeness4/5

    The surface covers the full lifecycle: profile discovery, async start, status monitoring, waiting for completion, cancellation, and a combined run operation. A minor gap is the lack of an explicit 'list active tasks' tool, but status and wait cover most monitoring needs.

  • Average 3.6/5 across 6 of 6 tools scored. Lowest: 2.7/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states that the task is started asynchronously, but says nothing about return values (e.g., task ID), side effects, failure modes, or how to check progress. This is thin for a tool that initiates a background coding task.

    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 a single, front-loaded sentence with no wasted words. It efficiently communicates the core action, though it is arguably too terse given the tool's complexity.

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

    Completeness1/5

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

    For a tool with 10 parameters, no output schema, and no annotations, a one-sentence description is grossly incomplete. It omits how the async task is tracked, how to retrieve results via sibling tools (deepseek_status, deepseek_wait), what 'Haha Desktop' means, and what happens on failure or timeout. The sibling lifecycle is never referenced.

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

    Parameters2/5

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

    The description adds no parameter-level information. Schema coverage is only 50%, leaving notes, constraints, contextFiles, timeoutSeconds, and acceptanceCommands undocumented. The description could have provided context on the 'objective' (the complete implementation plan) or clarified the relationship between parameters, but it doesn't, so it contributes nothing beyond the partial schema.

    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 uses a specific verb ('Start') and resource ('a DeepSeek coding task'), with the qualifier 'asynchronously' providing a clear distinction from the sibling 'deepseek_run' (presumably synchronous). However, it doesn't fully explain how it differs from other lifecycle tools beyond the async nature.

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

    Usage Guidelines2/5

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

    No explicit guidance is provided on when to choose this tool over deepseek_run (the likely synchronous counterpart) or how to orchestrate with deepseek_status, deepseek_wait, and deepseek_cancel. The word 'asynchronously' is the only implicit hint, which is insufficient for an AI agent selecting among siblings.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It reveals the blocking nature (wait until newer event or finishes) and mentions that afterSequence prevents repeated output, but it omits critical behaviors such as timeout handling (e.g., does it throw or return partial results?), what happens if the task is already finished, and whether it returns event data or just a signal. This leaves major behavioral unknowns for a wait-based tool.

    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 and front-loaded with the primary purpose. The second sentence adds a concise usage tip. Every word earns its place with no redundancy or filler.

    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?

    Given the lack of annotations, output schema, and complete parameter descriptions, this description is insufficiently complete. It does not cover return values, timeout behavior, error cases, or how this tool fits with sibling tools. For a blocking/long-poll operation, many essential aspects are unaddressed, leaving the agent with significant uncertainty.

    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?

    Schema description coverage is 0%, so the description must compensate. It explicitly clarifies afterSequence ('to avoid repeated output'), adding meaning beyond the schema. taskId and timeoutMs are not described, but their names and schema constraints (minimum/maximum) make their basic semantics inferable. The description partially compensates but does not fully explain parameter behavior, especially timeoutMs's role in blocking behavior.

    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 states a specific action: 'Wait until a task emits a newer event or finishes.' This clearly describes the tool's core function and distinguishes it from sibling tools like deepseek_status (which likely checks status without blocking) and deepseek_run (which starts tasks). The focus on waiting for newer events or completion is a unique, well-defined purpose.

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

    Usage Guidelines3/5

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

    The description implies when to use the tool ('Wait until a task emits a newer event or finishes') and provides a specific usage tip: 'Use afterSequence to avoid repeated output.' However, it does not explicitly contrast with alternatives like deepseek_status or deepseek_cancel, nor does it state when not to use this tool. Usage guidance is present but implied rather than explicit.

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

  • Behavior3/5

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

    With no annotations, the description carries the full behavioral burden. It discloses positive behaviors: it creates a session, selects DeepSeek, executes, streams progress, and returns a full result plus file audit. However, it remains silent on failure modes, timeout handling, error reporting, whether the call blocks until completion, or what side effects occur in the workdir. For a code-execution tool, these are material gaps, so this is only partially transparent.

    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 a single front-loaded sentence that states the action, enumerates the internal steps in sequence, and ends with the deliverable. Every phrase adds meaning; there is no filler, repetition, or vague abstraction. It is concise without sacrificing scope.

    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?

    This is a complex tool with 10 parameters, no annotations, and no output schema, yet the description is only one sentence. It covers the high-level flow but omits crucial context: preconditions (Haha Desktop, DeepSeek availability), error/failure semantics, synchronous vs asynchronous behavior, what the 'file audit' contains, and how the optional parameters influence execution. For an orchestration tool of this complexity, the description is under-specified.

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

    Parameters2/5

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

    Schema description coverage is 50% (descriptions exist for objective, workdir, modelId, providerId, allowedFiles, but not for notes, constraints, contextFiles, timeoutSeconds, acceptanceCommands). The description itself adds zero parameter-level detail beyond mentioning 'file audit' (tangentially related to allowedFiles). It does not compensate for the undocumented parameters or clarify how timeouts, constraints, or acceptance commands behave. An agent would have to guess at the meaning of half the inputs.

    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 uses a precise verb ('Run') and a well-scoped resource ('one complete A-to-B delegation'), then enumerates the concrete steps performed (create session, select DeepSeek, execute, stream progress, return result and file audit). This makes the purpose unmistakable and clearly distinguishes it from the sibling tools (start/wait/cancel/status/profiles), which only cover stages of the pipeline.

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

    Usage Guidelines3/5

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

    The description implies this is the full-pipeline entry point ('one complete A-to-B delegation'), but it never explicitly says when to use this tool versus deepseek_start, deepseek_wait, or deepseek_cancel. It also omits prerequisites (e.g., Haha Desktop running, an active DeepSeek provider) and any exclusions or alternative recommendations. Context is enough for a basic decision, but not explicit.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden of behavioral transparency. It discloses the types of data returned (state, events, response, files, warnings) but omits details such as side effects (likely none, but not stated), error behavior for invalid task IDs, or any rate-limiting/retrieval semantics. The listing of outputs is helpful but leaves significant behavioral context undisclosed.

    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 a single, concise sentence that efficiently lists the tool's outputs. No redundant or extraneous words are present, making it easy to parse quickly.

    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?

    Given the lack of annotations and output schema, the description provides only a high-level list of return values. It does not explain key parameters like 'afterSequence', nor does it cover behavior such as whether the tool polls or is one-shot, what happens on missing tasks, or whether it returns historical data. The tool is relatively simple but still leaves critical context absent.

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

    Parameters2/5

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

    The schema has 0% description coverage, and the description does not explain the parameters. 'taskId' is implicitly the identifier but 'afterSequence' is not mentioned at all, leaving its purpose (likely a sequence-based filter) ambiguous. The description fails to compensate for the schema's 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 identifies the action ('Get') and the resource ('current task state, recent events, final response, changed files, and warnings'), making it distinct from sibling tools like deepseek_start or deepseek_cancel. The specific list of items returned provides a precise purpose.

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

    Usage Guidelines3/5

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

    The description implies usage for retrieving status information but does not explicitly state when to use this tool versus alternatives like deepseek_wait. There is no mention of scenarios where a different tool would be more appropriate, though the context suggests it is for non-blocking status checks.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It discloses that the tool sends stop_generation to Haha Desktop, indicating a mutative action, but it does not explain side effects, error conditions, or whether cancellation is confirmed. This is adequate but not rich.

    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 a single, front-loaded sentence that wastes no words. It immediately states the verb and target, then adds the mechanism. Perfectly 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?

    For a simple cancellation tool with one parameter and no output schema, the description provides the essential context: what it does and how. It lacks details about return values or post-conditions, but given the simplicity, it is mostly complete.

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

    Parameters2/5

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

    The schema has 0% description coverage, and the description does not elaborate on taskId at all. Although the parameter name is self-explanatory, the description fails to compensate for the lack of schema documentation, leaving the agent to infer its meaning from context.

    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 action (cancel) and the target (a running DeepSeek task), with a specific mechanism (sending stop_generation). It distinguishes itself from siblings like deepseek_start, deepseek_status, and deepseek_run by focusing specifically on cancellation.

    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 intended usage is clear: use this when you need to stop a running DeepSeek task. However, it does not explicitly mention when not to use it or suggest alternative tools, so it stops short of full guidance.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries the full burden. It reveals a key behavioral trait: the tool returns sanitized data and 'Never returns API keys, base URLs, or headers.' This is a meaningful safety guarantee. It doesn't discuss error handling or auth, but for a simple read-only listing tool, this suffices.

    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, with the primary action front-loaded. Every word adds value: 'sanitized' sets expectations, 'providers and model ids' specifies output, and the second sentence clarifies exclusions. No redundancy or filler.

    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?

    For a list-only tool with no parameters and no output schema, the description fully covers what the agent needs to know: the output content (providers and model ids) and safety guarantees (no secrets returned). The sibling tool names provide context that this is a support tool for run management, so completeness is adequate.

    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 tool has zero parameters and the schema coverage is 100% (empty object). With no parameters to explain, the baseline for zero params is 4. The description does not need to compensate for parameter details.

    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 function with a specific verb ('List') and resource ('sanitized Claude Code Haha providers and model ids'). It also adds a safety qualifier ('sanitized') and explicitly what it never returns. This distinguishes it from the sibling tools (status, start, wait, cancel, run), which are action-oriented.

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

    Usage Guidelines3/5

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

    The description does not explicitly state when to use this tool versus alternatives. However, the verb 'List' and the resource 'providers and model ids' imply it is for retrieving profile information, contrasting with the action-oriented sibling names. No exclusions or alternative guidance is provided, so it's implied rather than explicit.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

DS-Claude-haha-MCP MCP server

Copy to your README.md:

Score Badge

DS-Claude-haha-MCP MCP server

Copy to your README.md:

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/OPFIMISS/DS-Claude-haha-MCP'

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