Backend service for managing MCP (Model Context Protocol) server connections and tool execution, integrated with Express.js and LangChain
The server defines 9 tools with varying quality. All tools have descriptions and input schemas present, which is a baseline requirement. However, descriptions are generally short (12-152 characters observed), parameter descriptions are inconsistent, and output schemas are entirely undocumented. Tool naming follows verb_noun convention (search, extract, summarize, get) which is good. Error handling is not visible in the provided code samples. The interactive_form tool has the most comprehensive schema with nested field validation, but most tools lack specificity in parameter constraints. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. This is a functional but incomplete implementation typical of community MCP servers.
Search academic journals, papers, and scholarly resources using Tavily API with advanced search depth. Results are limited to peer-reviewed sources, preprint servers, and trusted academic databases.
Search the web for current information using Tavily API.
Evaluate a math expression safely.
Extract relevant sentences by query keyword.
Display an interactive form to collect structured user input. Use this when you need specific information from the user in a structured format.
Validate and repair JSON text.
Output schemas completely undocumented. No tool documents what fields it returns or their types. LLMs cannot plan downstream tool calls or extract required data without seeing return structures.
Parameter descriptions inconsistent and incomplete. Tools like 'local_time' and 'json_repair' have parameters with no descriptions or minimal text (e.g., 'Unique identifier for this form' lacks context). Ambiguous parameter names like 'text' do not explain the expected format or constraints.
No tool annotations present. Tools lack readOnlyHint, destructiveHint, or idempotentHint markers. The specification requires these to help agents reason about side effects and idempotence.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get current local date and time for a timezone.
Summarize text by extracting leading sentences.
Fetch webpage content and return JSON.
Inconsistent parameter naming conventions. Some tools use generic names like 'text', 'query', 'id' without distinguishing types (e.g., is 'id' form_id or message_id?). Should use suffixed names like form_id, text_content.
No error handling guidance visible. No evidence of recovery suggestions, error categorization (retryable/user-fixable/fatal), or actionable error messages. Tools that fail provide no path forward for the LLM.