Model Context Protocol server for the Slipstream file editing daemon. Provides tools for editing, creating, and reading files with session management and batch operations.
Slipstream MCP provides 3 tools with moderate definition quality. Tool names are clear and action-oriented (ss, ss_session, ss_help), but parameter documentation is inconsistent and output schemas are not documented. The 'ss' tool has a WRITE risk profile with complex semantics (edit vs. create modes based on parameter presence) that increases cognitive load. Parameter descriptions exist but lack specificity about constraints, formats, and valid value ranges. No output schema documentation is visible, forcing LLMs to infer result structure. Error handling guidance is absent, LLMs have no recovery path if operations fail.
Edit or create files (replaces Edit/Write). ss(path, old_str, new_str) for edits. ss(path, new_str) to create. ss(ops=[...]) for batch. All self-contained.
Display the Slipstream reference card with usage examples for all editing operations, session management, and output formats.
Execute session commands for reading files and session management. Supports: read <path> [start:line end:line], open <path>, flush, close, status, list, check build
No output schema documentation for any tool. LLMs cannot plan downstream steps or extract required fields (file paths, line numbers, session identifiers). This violates the schema-documentation requirement and forces inference-based reasoning.
'ss' tool conflates two separate operations (edit vs. create) into one parameter signature. When old_str is missing, the tool switches to create mode; when new_str is missing, it reads. This mode-switching based on parameter presence is error-prone and underdocumented. The description mentions 'ss(path, old_str, new_str)' and 'ss(path, new_str)' but does not explicitly state which parameters are optional or what each combination means.
'ss_session' action parameter accepts free-form strings like 'read src/main.rs start:10 end:30' instead of structured parameters. This forces LLMs to construct command strings, which is error-prone and difficult to validate. No enum or format constraint is visible.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Parameter 'replace_all' (boolean) and 'flush' (boolean) lack default values and behavioral documentation. What happens if replace_all is false and the string appears multiple times? What does flush do if no edits are pending? LLMs cannot reason about side effects.
No error handling guidance. If 'ss' encounters a file that does not exist, or a string that cannot be found, what error is returned? How should the LLM respond? Should it retry, ask the user, or try a different operation? Absence of error classification and recovery guidance violates the error-handling pattern.
'ss_help' has no documented output. What format is the reference card in? Is it markdown, plaintext, or JSON? How long is it? LLMs need to know what to expect so they can decide whether to call it.
Parameter descriptions are bare minimum. E.g., 'replace_all': 'Replace all occurrences instead of just the first match' does not specify type (boolean assumed but not stated), does not document default, does not explain interaction with 'old_str' (e.g., what if old_str is not found?). Baseline for A+ tools is 100% of params have descriptions; this achieves ~50%.
'session' parameter in 'ss' tool is undescribed beyond the name. What is a 'named session'? How do I create one? Does it map to ss_session's 'open' action? This dependency is nowhere documented.
'ops' parameter in 'ss' tool is an array of 'operation objects' but the structure of those objects is not defined. What fields do they have? Do they follow the same old_str/new_str pattern? LLMs cannot construct valid ops arrays without this schema.