A Rust-based MCP server that provides tools for an AI character system with capabilities including web fetching, file operations, shell execution, skill management, location lookup, and time retrieval.
Anima Backend exposes 11 tools with basic schemas and descriptions, but falls short of production quality. All tools have descriptions (10-200 chars, within baseline range) and input schemas with type definitions. However, parameter descriptions are sparse or missing entirely. Critical gaps: run_shell lacks any input validation guidance; fetch_url has no guidance on URL format or response size limits; file operations (read_file, write_file) lack path traversal protection hints. No error handling guidance across any tool. Tool names are clear (verb_noun pattern), but descriptions are minimal and lack WHEN/WHY context. No output schemas documented. Composition is reasonable (single responsibility per tool), but several tools (install_skill, remove_skill) perform destructive operations without confirmation patterns or dry-run support.
Look up the current approximate location and related context such as city, region, country, timezone, coordinates, IP, and ISP.
Fetch the content of a URL and return it as text.
Install a skill from a URL. Supports GitHub directory URLs (https://github.com/owner/repo/tree/branch/path) which download all files recursively, plain GitHub repo URLs (downloads the whole repo root), and direct URLs to a SKILL.md file. After installation the skill manager is reloaded automatically.
List available local skills from the skills directory.
Load a local skill by name and return its full SKILL.md content.
Returns the current local date and time.
run_shell lacks input validation guidance and error recovery hints. Description does not warn about command injection risks or timeout behavior. LLM has no guidance on safe vs unsafe commands.
File operations (read_file, write_file) lack path traversal protection hints. Descriptions do not clarify sandbox boundaries or what happens if path escapes the files directory.
Destructive operations (remove_skill, install_skill) lack confirmation or dry-run patterns. No guidance on recovery if a skill removal breaks the system.
No output schemas documented for any tool. LLM cannot plan downstream calls or extract structured data from responses.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Read a file from the files directory.
Force the skill manager to reload all skills from disk immediately and return the updated list. Use this after installing or modifying a skill.
Remove an installed skill by name and reload the skill manager.
Execute a shell command and return its output.
Write content to a file in the files directory.
fetch_url lacks guidance on response size limits, timeout behavior, and handling of non-text content. Parameter descriptions are minimal.