Manim-Slides MCP Server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools have clear, distinct purposes: hello_world verifies connectivity, compile_presentation generates decks, export_revealjs_html handles HTML-specific export, and the remaining tools cover serving, preview, listing, and execution. The only potential confusion is between compile_presentation and export_revealjs_html, since the latter is a specialized subset of the former, but their descriptions make the distinction clear enough.
Naming Consistency5/5The tool names follow a consistent pattern of verb_noun or verb_adjective_noun: hello_world, compile_presentation, export_revealjs_html, serve_revealjs_html, stop_preview_server, list_scenes, preview_slide, and execute_manim_code. All use lowercase_with_underscores, and the verbs (compile, export, serve, stop, list, preview, execute) are action-oriented and clear.
Tool Count4/5With 8 tools, the server covers the core Manim-Slides workflow: render code, list scenes, preview slides, compile presentations, export HTML, serve HTML, and utility. This is a reasonable number and well-scoped for the domain, though hello_world is arguably unnecessary. No excessive bloat or missing critical pieces for the basic presentation creation pipeline.
Completeness3/5The toolset covers the main workflow: execute code to render scenes, list scenes, preview individual slides, compile to presentations, and serve/stop the preview server. However, there are gaps: no tool to update or delete existing rendered assets, no way to manage the server lifecycle beyond stopping previews, and no tool for inspecting render configurations or getting help about available scenes in more detail.
Average 4.5/5 across 8 of 8 tools scored. Lowest: 3.7/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 19 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
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.
This repository includes a glama.json configuration file.
This server has been verified by its author.
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?
No annotations exist, so the description must disclose behavioral traits. It mentions it 'reads the rendered slide configuration' and 'produces a preview', implying a non-destructive read operation, and explicitly says 'without compiling' which suggests no heavy side effects. However, it doesn't clarify whether it requires prior compilation, network access, or any side effects like caching. It doesn't state if it's read-only or if it writes temporary files. So it's partially transparent but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, clear, and front-loaded. It conveys key purpose and input semantics in two sentences, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and 0% schema coverage, the description provides essential info but lacks detail on boundary cases, exact parameter formats, and potential side effects. Output schema exists but not detailed here. It's adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero description coverage for 6 parameters. The description explains scene, slide_index, and output_format (implies image/video/gif formats), but workspace_dir is not explained. It adds meaning beyond schema by explaining that scene is a rendered scene, and slide_index is the slide to extract. It adds enough to use the tool, but incomplete for all params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Extract a single-slide preview' from a slide deck without compiling. This specific verb+resource phrasing distinguishes it from siblings like compile_presentation and serve_revealjs_html, which handle the full compilation/serving lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'without compiling the deck' which gives a clear context for when to use this tool (quick preview). However, it doesn't explicitly state when NOT to use it or mention alternatives like list_scenes or compile_presentation. It's adequate but not explicit about exclusions.
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?
With no annotations, the description carries the full burden of behavioral disclosure. It transparently states that the tool reads configuration files, returns a JSON string, and describes the metadata content (slide counts, resolution, media files). It also explains the default directory resolution for 'workspace_dir'. This is adequate for a read-only discovery tool, though it does not cover edge cases like missing folders or empty scenes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (intro, file source, args, returns). Every sentence adds value: it names the exact file format, the producing command, default behavior, and return type. No filler or redundancy exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two optional parameters and a clear return type, the description is complete enough. It explains the input files, the arguments, and the output. It could mention error behavior (e.g., missing folder) but that is a minor gap given the tool's simplicity and the presence of a return schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. The 'Args' section provides natural language semantics for both parameters: 'folder' specifies the directory with rendered assets, and 'workspace_dir' explains the environment variable fallback. This adds meaningful meaning beyond the schema's type/default information, though it could still elaborate on path normalization or validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Discovers rendered scenes and their slide metadata' with a specific verb and resource. It further distinguishes itself from siblings by explaining it reads '<scene>.json' files produced by 'manim-slides render', making its role as an inspection/discovery tool unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says the tool reads files produced by 'manim-slides render', providing clear context for when it should be used (after rendering). It does not explicitly name alternatives or exclusions, but the context is strong enough that an agent can infer it complements preview/export/compile tools.
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?
With no annotations, the description carries full burden. It discloses that servers are ephemeral and the action stops them, and it describes the return value (JSON string with stopped ports and remaining count). It does not detail side effects like irreversible termination, but the stopping action is intuitive and clearly implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and well-structured: purpose statement, args section, and returns section. No redundant or filler text; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, the description covers purpose, parameter semantics, and return format. It doesn't address edge cases like nonexistent ports or error handling, but these are minor and the output schema exists. Overall, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully explains the parameter: 'Port of the server to stop. When omitted, all preview servers started by this MCP process are stopped.' This adds precise meaning beyond the schema, clarifying default behavior and scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool stops ephemeral preview servers started by serve_revealjs_html. It uses a specific verb (stop) and identifies the resource (preview servers), distinguishing it from siblings like serve_revealjs_html and preview_slide. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to stop preview servers) and details the port parameter behavior, including the 'all servers' default when omitted. It does not explicitly contrast with alternatives, but given the complementary nature with serve_revealjs_html and lack of other stop tools, context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral traits: writes to a secure temporary script, renders headless, streams progress notifications, caches by content hash, and returns a JSON with status, files, command, and stdout/stderr. It also explains cache hit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the purpose, followed by behavior notes, caching details, and a clear Args list. It is detailed but not redundant, with each sentence adding necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no annotations, the description is comprehensive: it explains security, rendering mode, progress streaming, caching, timeout handling, parameter options, and the exact return format. It leaves no critical gaps, especially since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters are described in depth in the Args section, including defaults, allowed quality values, media_dir fallback to environment variable, timeout meaning, and use_cache semantics. This significantly exceeds the schema's basic type/default info, compensating for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Executes Manim-Slides Python code and renders the resulting scenes,' which is a specific verb+resource pair. It distinguishes from siblings like compile_presentation or preview_slide by focusing on execution and rendering of code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about headless rendering, caching, and progress updates but does not explicitly mention when to use this tool versus alternatives like preview_slide or compile_presentation. Usage is implied but not clearly contrasted with other tools.
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?
With no annotations provided, the description carries the transparency burden and does a solid job: it discloses that it wraps 'manim-slides convert --to html', describes asset embedding with one_file and offline downloading, and returns captured stdout/stderr plus the executed command. It does not explicitly mention overwrite behavior or failure modes, so it is not a perfect 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with an intro, an Args section, and a Returns section. Despite its length, every line adds useful semantic information required for a 17-parameter tool, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, no annotations, no inline schema descriptions), the description is fully sufficient: it covers all parameters, provides defaults and allowed values, and describes the JSON return value. This is enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explains every parameter in plain language and even enumerates valid values for theme, transition, and transition_speed. This goes far beyond the bare types and defaults in the input schema, giving the agent actionable semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Export rendered Manim-Slides scenes to an interactive Reveal.js HTML deck.' It clearly distinguishes itself from siblings like serve_revealjs_html and compile_presentation by stating the export-oriented goal and the underlying conversion command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is for exporting already-rendered scenes to HTML, implying it should be used after rendering and when a static Reveal.js deck is needed. It does not explicitly name alternatives or state when not to use it, but the context is strong enough for an agent to infer appropriate use.
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?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the return value (a greeting message confirming communication) and implies a non-destructive, read-only operation. It could note it has no side effects, but for a simple hello world tool, it is sufficiently 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with clear 'Args' and 'Returns' sections, no fluff, and front-loaded 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/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is very simple, has an output schema, and the description fully explains what it does and what it returns. For its purpose and complexity, the description is complete and adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the 'name' parameter (only title and default), and schema description coverage is 0%. The description compensates fully by explaining the parameter's meaning and default, adding semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'verifies client-server communication' through a basic greeting, using a specific verb and resource. It is easily distinguishable from sibling tools that handle presentations, compilation, and previews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that the tool is for verifying communication between client and server. It does not explicitly mention exclusions or alternatives, but given its simple nature and distinct purpose among siblings, this is adequate.
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?
Since no annotations are provided, the description carries the transparency burden and does so well: it discloses that it starts an ephemeral background HTTP server, serves the workspace so assets resolve, optionally opens a browser, and may reuse an existing server. It does not explicitly state the full server lifecycle or when to call stop_previews_server, but the behavior is generally clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured into purpose, Args, and Returns sections. Each sentence adds meaningful context about behavior or parameters, and there is very little fluff or tautological language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient despite only one required parameter and an output schema already being present. It covers key context about the preview server, asset resolution, browser opening, reuse behavior, and return content. There are no major gaps for using this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully compensates for the 0% schema coverage by explaining every parameter: dest, workspace_dir, host, port, and open_browser, including defaults and behaviors such as ephemeral ports and resolution relative to workspace_dir. This goes well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it serves an exported Reveal.js HTML deck on a local HTTP server for preview. It uses a specific verb and resource, and it distinguishes itself from sibling tools like export_revealjs_html, stop_preview_server, and preview_slide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for previewing an exported Reveal.js deck via a local URL. It implies when to use it (after export, before final review) but does not explicitly mention alternatives or exclusion conditions such as using stop_preview_server for cleanup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it delivers substantial behavioral detail: it wraps an external command, returns a JSON status string with the executed command and stdout/stderr, infers output format from extension, embeds assets with one_file, and respects workspace_dir and timeout defaults. This goes well beyond a terse 'Compiles a presentation' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence summary, followed by a compact 'Wraps ...' clarification and a structured Args block. For an 8-parameter tool this is appropriately sized, and every section adds value without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no annotations, and no schema descriptions, this description is complete: it explains input prerequisites, output format behavior, file location, environment default, timeout, and return value. It provides enough information for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the Args section documents all 8 parameters with semantic meaning: scenes, dest, folder, output_format, config, one_file, workspace_dir, and timeout. It adds examples and default behavior, fully compensating for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Compile rendered Manim-Slides scenes using manim-slides convert.' It further clarifies that it produces interactive presentation assets such as Reveal.js HTML, PDF, or PPTX, which clearly distinguishes this compilation tool from sibling rendering, preview, and serving 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by explaining that this tool consumes rendered slide assets and turns them into an interactive presentation, implying it should be used after rendering and before serving. However, it does not explicitly name alternatives or state when-not-to-use conditions relative to sibling tools like export_revealjs_html or serve_revealjs_html.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/antoniomachuca/MCP-Manim-Slides'
If you have feedback or need assistance with the MCP directory API, please join our Discord server