A collection of MCP servers providing web browsing, Emacs integration, and shell command execution capabilities
This collection exhibits significant quality gaps across all dimensions. Tool names lack consistent verb-noun structure (e.g., 'run_emacsclient_code' vs 'emacs_get_region'). Descriptions are present but generic, most under 100 chars, lacking WHEN/WHY context. Schemas are visible but incomplete: parameters like 'context' are poorly justified (marked 'ignored'), and many lack type constraints. The 'run_command' tool is particularly dangerous with no input validation guidance. Error handling is absent, no recovery guidance, no categorization. Output schemas are undocumented. Composition is weak: 'run_command' and 'run_emacsclient_code' both execute arbitrary code with different escaping rules, inviting confusion.
Navigate to a specific URL and return the page's HTML content.
Retrieves all properties (metadata like SCHEDULED, DEADLINE, etc.) from an org-mode heading. Returns properties as a structured list.
Retrieves text from an Emacs buffer between specified points or patterns. This is read-only and won't modify the buffer.
Inserts text at a specific location in an Emacs buffer. Finds the pattern and inserts before/after it. Saves the buffer after insertion.
Replaces text in a specified region of an Emacs buffer. Finds and replaces all occurrences of old_text with new_text within the region. Saves after changes.
Get information about the current active page including URL, title, and other metadata.
run_command accepts arbitrary shell commands with no input validation, escaping guidance, or safety constraints. Description warns 'If the command fails, consider how you escaped it' but provides no validation rules or examples of safe vs unsafe patterns.
Inconsistent parameter naming and purpose. 'context' parameter appears in all tools but is marked 'ignored', this is dead code that confuses LLMs about what the parameter does. Remove it or document its actual use.
No output schemas documented. Tools return strings or objects but LLMs cannot predict structure. E.g., browse_to returns 'HTML content' but what fields? What encoding? What size limit?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Executes a zsh command on the local machine. Use for system operations, file inspection, or utilities. Commands run with user permissions.
Executes Emacs Lisp code via emacsclient. Useful functions include (ai-add-journal text) to add entries to onebig.org. No need to quote or escape the code.
run_emacsclient_code and run_command both execute arbitrary code but with different escaping rules and no guidance on when to use which. Composition is ambiguous, LLMs will struggle to choose between them.
No error handling guidance. Tools provide no recovery hints, categorization (retryable vs fatal), or actionable error messages. E.g., if emacs_get_region fails to find a pattern, what should the LLM do next?