Anvil is a distributed workflow orchestration platform with edge Worker support. It provides MCP (Model Context Protocol) integration for tool execution through stdio-based MCP servers. The server manages artifacts, pipelines, materials, hooks, and nodes with support for both in-process and NATS-based distributed modes.
Anvil MCP server has severe definition quality gaps. Only 3 tools are exposed, all with minimal descriptions. The 'initialize', 'tools/list', and 'tools/call' tools are framework-level meta-tools, not domain tools. 'tools/call' has a schema but lacks parameter descriptions. Descriptions are under 100 chars and lack actionable context. No error recovery guidance. No tool annotations (readOnlyHint/destructiveHint). The server appears to be a generic MCP framework rather than a domain-specific tool collection.
MCP protocol initialization handshake. Returns protocol version, server capabilities, and server info.
Executes a registered tool by name with provided arguments. Returns tool execution result as text content.
Lists all available tools registered with the MCP server. Returns tool name, description, and input schema for each tool.
Parameter descriptions missing. 'tools/call' has 'name' and 'arguments' params with minimal descriptions ('Name of the tool to execute', 'Tool-specific arguments'). LLMs cannot infer parameter semantics from these generic labels.
Tool descriptions are under 100 chars and lack context. 'MCP protocol initialization handshake' does not explain WHEN to call it or WHAT it returns in actionable terms for an LLM.
No tool annotations. 'initialize' and 'tools/list' are read-only; 'tools/call' is destructive. Missing readOnlyHint and destructiveHint annotations per current MCP spec (2026-07-28).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | 2026-07-28+ | v2 |
No error recovery guidance. handleCallTool returns generic error messages ('tool not found', 'invalid params') without suggesting next steps or available alternatives.