Feature flag service for the A2A network. DID-keyed targeting, percentage rollouts, x402 USDC settlement on Base. MCP 2024-11-05. Inbound only.
Server has 6 well-named tools with complete input schemas and descriptions. Naming follows verb_noun pattern (flag_eval, flag_list, flag_create, etc.). All tools have descriptions 50-150 chars, meeting the 10-1024 char baseline. Input schemas are properly typed with required fields and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (no recovery guidance, no actionable error messages). Parameters lack constraints (e.g., flag_key has no length/format limits, targeting_rules references README instead of inline schema). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Missing parameter descriptions for 'default_value' in flag_create/flag_update (type is inferred but not stated). Overall solid naming and basic schema coverage, but incomplete output documentation and weak error guidance.
Create a flag with a default value and targeting rules. Charges $0.001 USDC on Base.
Tombstone a flag. Owner DID only. Charges $0.001 USDC on Base.
Return the full definition of a flag — type, default value, targeting rules, evaluation count. Read-only, no charge.
Evaluate a flag for a DID and return the resolved value plus which targeting rule matched. Charges $0.0005 USDC on Base.
List flags owned by a DID. Read-only, no charge.
Update a flag's default value or targeting rules. Owner DID only. Charges $0.0005 USDC on Base.
Output schemas not documented. LLMs cannot predict response structure (flag object shape, error format, pagination). Requires reverse-engineering from code.
Targeting rules parameter references README for schema ('See README for shape'). Schema must be inline in inputSchema or documented in description with examples.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked READ_ONLY/WRITE/DESTRUCTIVE in metadata but not in schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Error responses lack recovery guidance. Code returns generic errors ('flag_key_already_exists', 'payment_invalid') without actionable next steps for LLM.
Parameter 'default_value' in flag_create/flag_update lacks type description. Type depends on 'type' enum but this dependency is undocumented.