A TypeScript SDK for building MCP (Model Context Protocol) servers with support for tools, prompts, and resources. Includes a client library for consuming remote MCP servers.
MCPlug SDK defines 4 tools with basic schemas and descriptions, but exhibits significant quality gaps. Tool naming is inconsistent (get_weather vs get-weather; search_web lacks verb clarity). Descriptions are present but minimal (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas exist but lack parameter descriptions, critical for LLM reasoning. The search_web tool exposes an API key as a required parameter, violating secret-injection patterns. No output schemas are documented. Error handling is minimal; the with_error tool provides no recovery guidance. Tool composition is weak: get_weather and get-weather are duplicates with different naming conventions, forcing LLM disambiguation overhead.
Use this tool to get the weather in a given city
Get the weather in a given city
Search the web for a given query
This tool will always return an error
API key exposed as tool parameter (_GOOGLE_API_KEY in search_web). Credentials must never appear in tool parameters; use server-side secret injection via environment variables.
Duplicate tools with inconsistent naming: get_weather (snake_case) and get-weather (kebab-case) perform the same function. LLMs cannot disambiguate; consolidate to one canonical name.
Parameter descriptions missing. Input schema for get_weather defines 'city' with no description. LLMs cannot infer whether 'city' accepts names, codes, or coordinates.
Tool descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'Get the weather in a given city' lacks context on when to use it, what it returns, or error handling.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2025-06-18+ | v2 |
No output schemas documented. LLMs cannot plan downstream tool calls or extract fields without knowing the response structure.