Skip to main content
Glama

生成弦图

sanhang_render

Converts a natural-language math description into a Manim animation video, returning a playable MP4 link and reusable code. Handles functions, geometry, calculus, linear algebra, probability, and physics visualizations.

Instructions

把一句自然语言数学描述渲染成 Manim 动画视频,返回可直接播放的 mp4 地址与可复用的 Manim 代码。适用于函数图像、几何变换、微积分(极限/导数/积分/级数)、线性代数(矩阵/向量/特征值)、概率分布、复数与复平面、物理运动等可视化需求。默认阻塞等待渲染完成(约 30~90 秒);把 wait 设为 false 可立即拿到 task_id 稍后再查。同一描述命中缓存时会秒回历史结果。

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "prompt": "<prompt>"
    },
    "name": "sanhang_render"
  }
}

Input Schema

NameRequiredDescriptionDefault
waitNo是否阻塞等待渲染完成。默认 true。
mottoNo可选。烧录在视频角落的署名短句(需会员权限,普通调用会被忽略)。
promptYes中文或英文的动画描述,越具体越好。例如“画出 y=sin(x) 在 0 到 2π 上的图像,并用一个红点演示它随 x 增大的运动”。上限 1000 字符。
logo_urlNo可选。烧录在视频角落的 logo 图片地址(需会员权限)。
user_identifierNo可选。用于配额统计与作品归属的标识。默认用本机自动生成的标识(首次运行写入 ~/.sanhang-mcp/identifier),也可用环境变量 SANHANG_USER_IDENTIFIER 覆盖。
max_wait_secondsNo阻塞等待的上限秒数,默认 240,范围 10~900。超时不报错,会返回 task_id 供后续查询。

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare only readOnlyHint=false and openWorldHint=true, so the description adds real value: typical 30–90s blocking latency, cache-hit fast return, timeout returning a task_id rather than an error, and membership-gated motto/logo that is silently ignored otherwise. These are genuine behavioral disclosures beyond the annotations. It still doesn't say what a failed render returns or what quota exhaustion looks like, leaving part of the failure surface opaque.

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

Conciseness4/5

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

Front-loaded with the core action and return values, then the domain list, then the blocking/cache behavior. Every sentence carries information, but the long enumeration of math domains is denser than strictly necessary for routing.

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?

There is no output schema, and the description compensates by naming both return artifacts (playable mp4 URL and reusable Manim code) and explaining the task_id path when not blocking. Combined with latency, caching, timeout, and membership caveats, an agent has everything needed to call this correctly and interpret the result.

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?

Schema coverage is 100%, so baseline is 3. The description goes beyond the schema by explaining that max_wait_seconds expiry is non-fatal and yields a task_id, and that motto/logo require membership and are otherwise dropped — the membership constraint is absent from the schema. wait and user_identifier semantics are mostly already in the schema, so the gain is partial.

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?

States a concrete verb+resource: renders a natural-language math description into a Manim animation video and returns an mp4 URL plus reusable Manim code. The listed domain coverage (functions, geometry, calculus, linear algebra, probability, complex plane, physics) makes the scope unmistakable. It does not explicitly name sanhang_task as the follow-up tool, so the sibling differentiation is only implied by 'wait=false 拿到 task_id 稍后再查'.

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?

Gives clear routing conditions: applicable for math visualization requests, default blocks for 30–90s, use wait=false to get a task_id immediately, and cache hits return instantly. It stops short of stating when NOT to use it (e.g. non-math or existing task queries) and never names the sibling tools to use as alternatives.

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

Deploy Server

Other Tools