MCP server for Steam — profile, library, stats, store, and Workshop portmanteau tools
steam_publish is a single portmanteau tool combining 8 distinct operations (status, checklist, monetization, validate_build, generate_vdf, upload_build, upload_prerelease, upload_release) into one tool. The tool has a clear description (97 chars) and well-typed parameters with descriptions. However, the design violates the single-responsibility principle, each operation should be a separate tool so agents can compose them independently. The operation enum is explicit and well-constrained. Output schema is not documented in the source, and error handling guidance is absent. Parameters have sensible defaults (app_id=0, depot_id=0, build_dir='', dry_run=True, branch='beta'), but the dry_run default of True may mask unintended side effects if an agent forgets to set it to False for actual uploads.
Steamworks publishing pipeline: status checks, VDF generation, and SteamPipe upload orchestration.
Portmanteau tool: steam_publish combines 8 unrelated operations (status, checklist, monetization, validate_build, generate_vdf, upload_build, upload_prerelease, upload_release) into a single tool. This violates single-responsibility and forces agents to reason about which operation to invoke rather than calling a dedicated tool. Should be split into separate tools: get_publish_status, get_publish_checklist, get_monetization_guide, validate_build, generate_vdf, upload_build, upload_prerelease, upload_release.
Output schema not documented. The tool returns dict[str, Any] with no specification of expected fields, structure, or per-operation response shapes. LLMs cannot plan downstream actions or extract required data without knowing what fields to expect.
No error handling guidance. Tool returns {'success': False, 'message': '...', 'data': None} for unknown operations, but provides no recovery hints. LLMs need actionable error messages: 'Unknown operation. Valid operations are: status, checklist, monetization, validate_build, generate_vdf, upload_build, upload_prerelease, upload_release.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Naming ambiguity: 'steam_publish' does not clearly indicate it is a multi-operation dispatcher. Names like 'upload_build' or 'validate_build' would be clearer for individual operations. The current name suggests a single publish action, not 8 different operations.
Parameter dependency not documented: app_id and depot_id are required for some operations (generate_vdf, upload_*) but optional for others (status, checklist). This undocumented dependency can cause silent misuse. Each operation should have its own tool with only required parameters.