A protocol and SDK for building finite state machine workflows with tools, resources, and streaming support. Provides TypeScript and Python implementations for creating stateful agent workflows.
ASMP is a custom protocol framework, not a standard MCP server. Tool definitions are sparse and lack critical structure. Only 1 of 4 tools has a visible input schema (run_lint_check). Descriptions exist but are vague and lack actionable guidance. No parameter type definitions visible for most tools. No output schemas documented. Error handling is absent. The codebase shows examples in TypeScript and Python, but tool registration is incomplete and schemas are inferred rather than explicitly defined.
Get a short risk summary from the current audit. No body required.
Run (mock) legal analysis on the uploaded document. Stores result in run; then use complete_analysis transition.
Run ESLint in the given directory (default: current). Returns { passed, issues, log } and stores result for the run.
Validate a document URL or path. Body: { file_url: string }. Returns { valid, message, suggested_name }.
Three of four tools lack visible input schemas. validate_document, risk_summary, and run_analysis have no documented parameter types or constraints.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Rubric baseline: '100% of A+ tools have documented return types.'
Descriptions are generic and under 100 chars for most tools. 'Get a short risk summary from the current audit. No body required.' (59 chars) lacks context for when/why to call. Rubric baseline: average tool description is 194 chars; A+ tools are 50-200 chars with actionable guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not indicate what to do on failure, whether errors are retryable, or how to recover. Rubric: 'Error responses must tell the LLM what to do next.'
Tool definitions are inferred from examples rather than explicitly registered with full schemas.