Collection of MCP servers and cloud-based connectors for Microsoft 365, Salesforce, ServiceNow, and custom automation tools
This server has 7 tools, all with descriptions and input schemas visible in the Dockerfile manifest. However, the actual implementation code is NOT included in the source dump, only Dockerfiles, package.json files, and high-level structure are visible. This means tool definitions are INFERRED from the manifest (file paths and descriptions) rather than directly visible in the code. Per the hard rules, inferred tools are capped at 50. Additionally, parameter descriptions in the input schemas are extremely minimal (1-2 phrase descriptions like 'The Adaptive Card JSON to validate'), input schemas lack comprehensive type constraints, and there is no visible error handling guidance, output schema documentation, or recovery patterns. The tools appear to be utilities for validating and evaluating various domain-specific languages (Adaptive Cards, FetchXML, OpenAPI, Jinja2, Power Automate, regex, Power Fx), all read-only operations with low blast radius. However, the quality bar for LLM-facing tools is high: descriptions must be 50-200 chars and guide when/why to call the tool; parameters must have types and detailed constraints; output schemas must be documented. None of these baselines are met here. The server is STDIO-only (no HTTP transport listed; Dockerfiles are build artifacts, not deployment targets), which hard-caps the score at 50 for protocol readiness. Definition quality suffers from: (1) inferred tool definitions (capped at 50 per tool), (2) minimal parameter descriptions, (3) no visible output schema documentation, (4) no error handling patterns, (5) no security or permission gating. Average of 7 tool scores (~40-50 each due to inference cap) yields ~28-35 overall.
Evaluates Power Automate expressions
Evaluates FetchXML expressions for Microsoft Dataverse queries
Lints OpenAPI specifications for compliance and best practices
Power Fx expression language CLI tool for evaluating Power Platform formulas
Renders Jinja2 template-based prompt strings with variable substitution
Tests regular expressions against input strings
Validates Adaptive Cards JSON structure and compliance with Adaptive Card schema
Tool implementations inferred from manifest only; actual code not visible. Cannot verify parameter validation, error handling, or output shaping.
Parameter descriptions are minimal (1-2 phrases like 'The Adaptive Card JSON to validate'). Baseline is 72 chars; most here are <30. LLMs cannot infer constraints, format expectations, or when to call the tool.
No visible output schema documentation for any tool. Baseline: 100% of A+ tools document return types. LLMs cannot plan downstream tool calls or extract needed fields without knowing output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 33 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
No error handling patterns visible. Tools like 'evaluate-powerautomate-expression' and 'fetchxml-evaluator' evaluate untrusted user expressions; parse errors or invalid syntax must return actionable recovery guidance ('Did you mean...?'), not a stack trace.
render_prompt.py and similar tools accept template strings and user input. No visible input sanitization against prompt injection. LLMs could be tricked into passing malicious Jinja2 payload.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible. All 7 are marked READ_ONLY in manifest, but this is not reflected in structured tool definitions. LLMs cannot verify safety without explicit hints.
No visible input validation. 'test-regex' with pattern parameter has no min/max length, no examples of valid patterns. 'lint-openapi' spec parameter has no schema. Unbounded or malformed inputs could cause DoS or undefined behavior.