MCP Server for Particle Filter Monte Carlo Localization Skill - Pure Python Standard Library implementation of Sequential Importance Resampling (SIR) Particle Filter for estimating multimodal, non-Gaussian continuous agent positions through distributed weighted particle clouds.
Single tool 'step_filter' has a reasonable name (verb_noun pattern) and adequate description (~120 chars). However, input schema is present but minimal: only two numeric parameters with basic descriptions, no type constraints (min/max), no output schema documented, and no error handling guidance. The tool lacks idempotency hints, parameter validation rules, and recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The implementation is stateless and functional, but the interface is under-specified for LLM reasoning.
Execute one step of the particle filter: predict particle positions based on velocity, update weights based on measurement, resample particles, and return estimated state.
Output schema not documented. Tool returns {estimated_x, uncertainty_std} but LLM has no formal schema to plan downstream calls or validate response structure.
Input parameters lack numeric constraints. 'velocity' and 'measurement' accept any float with no min/max bounds, range hints, or validation rules documented. LLM may pass absurd values (1e10, -1e10).
No error handling or recovery guidance. Tool has no documented failure modes, error messages, or instructions for LLM on what to do if step_filter fails or returns unexpected values.
No tool annotations. Missing readOnlyHint (this is read-only state estimation), idempotentHint (repeated calls with same inputs should return same estimate), or destructiveHint (none apply). Annotations help LLMs reason about retry safety and composition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Description lacks WHEN/WHY context. Current description states WHAT (execute one step) but not WHEN to call it (e.g., 'Call this repeatedly to track agent position over time') or prerequisites (e.g., 'Requires prior initialization of particle filter state').