Spring Boot-based MCP (Model Context Protocol) Server integrating Slack API operations
Single tool (update_slack_status) with mixed quality. Naming is action-verb based and clear. Description is detailed but exceeds optimal length (194 char baseline; this is ~320 chars including examples). Schema is present with proper types (string, long) and individual parameter descriptions. However, the description includes example values ('🏃', current time + 3600), which violates guidance against embedding examples in descriptions, LLMs tend to reuse them literally. Parameter descriptions are adequate but could be more constraint-focused. No error handling guidance, no recovery documentation, and no idempotency or confirmation pattern for a write operation. Overall functional but misses several A-grade patterns.
Updates your Slack status with a brief message, emoji, and expiration time. Accepts: 1) A short status message (max 10 chars), 2) A Unicode emoji (e.g. 🏃), 3) Status expiration timestamp in Unix epoch seconds (e.g. current time + 3600 for 1 hour)
Description includes concrete example values (emoji '🏃', epoch formula 'current time + 3600') instead of formal constraints. LLMs tend to reuse these literally in unrelated contexts.
Write operation (update_slack_status) lacks error handling guidance, recovery instructions, or confirmation/dry-run pattern. No documentation of what happens on failure (invalid emoji, expired token, rate limit).
Parameter 'statusText' allows arbitrary strings but description says 'max 10 chars' as prose constraint, not in schema. No JSON Schema maxLength property visible. LLMs may ignore prose constraints.
No documented output schema. LLMs cannot know what fields the tool returns (success boolean? status object? error details?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Transport mechanism unknown. Codebase shows Spring AI integration but no explicit HTTP, SSE, or STDIO configuration visible in provided source. Cannot assess protocol readiness without confirming transport.