Collection of MCP (Model Context Protocol) servers: Docmem (hierarchical document memory), Toolman (MCP gateway aggregator), Z3Solver (SMT solver), VecBook (vector search), ATProto (Bluesky integration), Shell (CMD execution), PJPD (project management), and Hello World (echo tool)
This is a multi-server wrapper repository with 4 tools across different subdirectories (z3solver, toolman, test servers). Tool definitions exist but with significant quality gaps: 2 tools lack descriptions entirely (echo, add), parameter descriptions are minimal or absent, and output schemas are not documented. The solve_smtlib tool has a reasonable description and schema, but toolman_activate has vague descriptions for array parameters. Overall, the repository demonstrates basic tool registration but falls short of production-grade definition quality. Most tools lack the LLM-optimized descriptions (50-200 chars) required for reliable agent selection.
Add two numbers
Echo back a message
Execute Z3 solver on SMT-LIB input. Returns SMT-LIB with status comment (; sat, ; unsat, ; unknown) followed by model or unsat core.
Activate or deactivate upstream tools and resources in the MCP gateway
toolman_activate has vague parameter descriptions for array parameters. 'Tool names to activate' and 'Tool names to deactivate' lack guidance on format, constraints, or what happens when both on and off are specified for the same tool.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required data without knowing what fields to expect in responses.
toolman_activate name is ambiguous and lacks verb clarity. Does 'activate' mean enable, register, or load? Consider 'toggle_upstream_tools' or 'enable_upstream_tools' to clarify intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 26 | - | v1 |
solve_smtlib timeout_ms parameter lacks constraints. Should specify min (1) and max (600000) in the description, not just the default. Unbounded numeric parameters let LLMs pass absurd values.
echo and add tools appear to be test/demo tools in test-server.mjs, not production utilities. Repository structure suggests toolman is the main gateway; echo and add should be removed or clearly marked as examples.
No error handling guidance documented. If solve_smtlib times out or Z3 encounters an unsatisfiable formula, what should the agent do? Should it retry, ask the user, or treat it as a terminal condition?
toolman_activate lacks clarity on idempotency and state. If called twice with the same tools_on/tools_off, is it safe to retry? Does it return the current state of all tools or only changed ones?