slamy is a Slack CLI/MCP server with 5 tools. While all tools have descriptions (meeting a baseline), the schemas are minimal, parameter descriptions are sparse, output structure is not documented, and there is no error guidance. The tool definitions appear to be inferred from CLI command registration in src/cli/index.ts rather than explicit MCP tool registration objects. Parameter validation is minimal, most tools accept simple string/number/boolean inputs with no explicit constraints, enums, or format specifications. Error handling is generic (console.error + process.exit). This places slamy solidly in the C-D range: tools are runnable but not optimized for agentic use.
Test authentication with Slack API
Get channel message history (channel ID or Slack permalink URL)
List channels
List channel members (channel ID or Slack permalink URL)
Get workspace info (domain, email_domain, enterprise). Note: SSO enforcement settings are not exposed by the Slack API.
No output schemas documented. Tools return structured data (user_id, team_id, channel list, message history, members list) but LLMs cannot plan downstream calls or extract fields without knowing the shape of responses. This violates the fundamental tool contract for agentic systems.
Input parameters lack formal constraints. 'limit' and 'oldest'/'latest' have no explicit min/max bounds or format specs. 'channel_or_url' accepts both IDs and URLs but provides no regex pattern or enum guidance. LLMs will pass invalid values.
Generic error handling. Tools catch errors with console.error(err.message) and call process.exit(1). This gives LLMs no recovery guidance, should categorize errors (retryable, user-fixable, fatal) and suggest next steps (e.g., 'Try searching for the channel by name first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 37 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Tool definitions inferred from CLI command registration, not explicit MCP tool objects. Source shows .command().description() in src/cli/index.ts, but no visible MCP server initialization, toollist registration, or schema payload. Cannot verify actual MCP wire format; cap individual tool scores at 50.
Parameter descriptions are minimal or missing. 'channel_or_url' lacks guidance on format (is it #channel-name or C1234567890 or https://...?). 'oldest'/'latest' describe timestamps but do not specify Unix epoch (seconds vs milliseconds) or ISO 8601 format.
No pagination guidance for list tools. 'channels list' accepts a limit but provides no offset, cursor, or total count. If a workspace has 500+ channels, result truncation is silent. Pattern baseline requires pagination with offset/limit and total count.
No validation of Slack API responses. 'resolve-names' flag suggests name resolution, but if resolution fails (e.g., user deleted), the tool likely returns raw IDs silently. Should fail fast with actionable error or return partial results with a warning field.