The context compiler that helps you prompt well — local-first, Nix-reproducible, replayable. The successor to AI SEO software.
The Pipulate MCP server has 11 tools with mixed definition quality. Most tools have descriptions, but many lack critical parameter detail and proper schema validation. Tools like 'execute_shell_command' and 'selenium_automation' are power-user tools with complex parameter sets, but descriptions are functional rather than LLM-optimized. The keychain tools are well-designed for inter-session persistence, but the naming convention mixes underscore and hyphenated styles inconsistently. Critical issue: several tools (conversation_history_clear, execute_shell_command) perform destructive or irreversible actions but lack confirmation patterns, dry-run support, or detailed recovery guidance. Error handling and input validation are not visible in tool definitions.
Test MCP capabilities
AI self-discovery assistant for exploring available MCP tools and categories
Registry face of connectors/botify.py for subprocess execution
Get the complete Botify schema with all 4,449+ fields
List all available analyses for a Botify project
List all projects available to the authenticated user
Test Botify API connectivity and authentication
execute_shell_command lacks confirmation/dry-run pattern for irreversible operations. Agents can execute arbitrary shell commands without safeguards, risking system compromise or unintended side effects. No explicit permission gating visible.
conversation_history_clear performs destructive action but lacks recovery guidance in description. Description mentions 'irreversible from the UI' but does not guide agent on error handling or recovery step if backup restoration fails.
selenium_automation has 10 parameters with mixed description quality. Some parameters (delay_range) have minimal description ('Tuple of [min_delay, max_delay] in seconds') but lack format specification or example ranges. Parameters like 'headless' default to true but rationale is not documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 17 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 56 | - | v1 |
Execute a simple BQL query against Botify API
Scrape web pages for analysis
Clears the current conversation history after creating a backup. This action is irreversible from the UI but can be restored from backups.
Get statistics about the current conversation
View the recent conversation history
Render DOM structure as nested boxes with element details and metadata
Render DOM structure as an ASCII hierarchical tree with color-coded levels and element information
Full end-to-end user session takeover with browser automation. Maps internal app names to endpoints, navigates to correct URL, sets up pipeline ID, and triggers HTMX chain reaction to resume user workflow.
Search logs with FINDER_TOKENs for debugging
List files and directories for AI exploration
Read file contents for AI analysis
System state inspection for pipeline monitoring
Flash a UI element by ID to draw user attention
keychain_list_keys and conversation_history_stats return no input parameters but lack output schema documentation. Agents cannot plan downstream tool calls without knowing what fields are returned (e.g., does keychain_list_keys return ['key1','key2'] or [{'key':'key1','updated':'2024-01-01'}]).
No visible pagination or limit enforcement. selenium_automation with verbose=true and no result cap could return megabytes of HTML, exhausting context window. keychain_get_all accepts optional 'limit' but no default or max are documented.
execute_shell_command accepts 'cwd' and 'timeout' parameters but lacks validation constraints in descriptions. No documentation of what happens on timeout (killed gracefully? stderr partial?), what shell is used (bash, sh, cmd.exe?), or what environment variables are available.
selenium_automation's 'domain' and 'url_path_slug' parameters are redundant/poorly explained. Description says they are for 'filesystem storage' but does not explain when agent should provide these vs omit them, or how they relate to the 'url' parameter.
No tool-level error classification visible. When keychain_get fails (key not found), agents cannot determine if error is retryable, user-fixable, or fatal without seeing actual error implementation.