MCP Server with Express and TypeScript using StreamableHTTP transport
This server has 6 tools with moderate description quality but significant schema and naming issues. Tools 1-3 (calculator, user_statistics, user_list) have detailed Korean-language descriptions but incomplete parameter schemas. Tools 4-6 (list_tasks, create_task, complete_task) have minimal English descriptions (under 30 chars) and sparse parameter details. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Output schemas are not documented anywhere in the source. Parameter descriptions exist but lack format constraints, ranges, and validation guidance. Error handling is not visible in the tool definitions. The tools are well-named (verb_noun pattern) and composition is reasonable, but the lack of schema completeness and sparse English descriptions push the overall score into fair/poor territory.
간단한 계산 기능을 수행합니다. 결과값은 수행한 계산식과 계산 결과 입니다.
Mark a task as completed
Create a new task
List all tasks
서비스를 이용 중인 현재 사용자 목록를 조회합니다. 해당 기간과 페이지에 해당하는 사용자 목록을 조회할 수 있습니다. 파라미터를 입력하지 않으면 기본값으로 이번 달 1일 0시 ~ 현재 시각까지를 조회합니다. 최대 한 달(31일)의 데이터를 조회 가능합니다. 반환값은 JSON 오브젝트 문자열이며 결괏값의 속성은 다음과 같습니다. - users: 검색된 사용자 정보 배열 - uid: 사용자의 uid - name: 사용자의 이름 - email: 사용자의 이메일 - createdAt: 가입일 - updatedAt: 최근 정보 업데이트일 - offset: 검색된 데이터의 조회 offset, 기본값은 0입니다. - limit: 검색된 데이터의 조회 limit, 최대값은 20입니다. - total: 검색 범위의 전체 사용자 수 - startdate: 조회 시작일 (UTC 기준의 ISO Date 문자열(예: 2025-06-01T07:47:02.647Z) - enddate: 조회 마지막일 (UTC 기준의 ISO Date 문자열(예: 2025-06-01T07:47:02.647Z)
현재 서비스의 사용자 관련 지표 정보를 조회합니다. 해당 기간의 가입자, 탈퇴자, 유료 사용자, 결제 건수에 대한 데이터를 조회할 수 있습니다. 파라미터를 입력하지 않으면 기본값으로 이번 달 1일 0시 ~ 현재 시각까지를 조회합니다. 최대 한 달(31일)의 데이터를 조회 가능합니다. 반환값은 JSON 오브젝트 문자열이며 결괏값의 속성은 다음과 같습니다. - totalUsers: 전체 가입자 수 - totalSubscribers: 전체 구독자 수 - newSubscribers: 해당 기간 동안의 구독자 수 - withdrawnMembers: 해당 기간 동안의 탈퇴자 수 - paidUsers: 전체 구독자 중 유료 사용자의 수 - paymentCount: 해당 기간 동안 결제 건수 - startdate: 조회 시작일 (UTC 기준의 ISO Date 문자열(예: 2025-06-01T07:47:02.647Z) - enddate: 조회 마지막일 (UTC 기준의 ISO Date 문자열(예: 2025-06-01T07:47:02.647Z)
Minimal English descriptions on 3 of 6 tools (list_tasks, create_task, complete_task). 'List all tasks' (13 chars) and 'Create a new task' (17 chars) fail to explain WHEN to call, WHAT context is needed, and distinguish from similar tools. Per pattern:tool-description, descriptions must be 10 - 1024 chars with context for selection.
No output schemas documented for any tool. Tools return data (e.g., user_statistics returns totalUsers, totalSubscribers, etc.) but LLMs have no formal schema to parse results and plan downstream calls. Per pattern:tool, tools must document return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. Risk classification is visible in metadata ('READ_ONLY' or 'WRITE') but not encoded in the MCP tool schema. Per current spec, tools should declare their nature so agents know which are safe to retry.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 47 | 2024-11-05+ | v1 |
Parameter schemas lack explicit format, range, and validation constraints. For example, startdate/enddate accept 'string' with description 'ISO Date' but no regex pattern or minLength/maxLength. Numeric params (offset, limit) have no min/max bounds. Per review:param-validation-rules, constraints must be explicit in schema and description.
No error handling guidance visible in tool definitions or source code. If a user_statistics query spans more than 31 days or invalid date format is provided, there is no indication of what the tool returns or how the LLM should recover. Per pattern:recovery-guide, errors must tell the LLM what to do next.
Korean-language descriptions on tools 1 - 3 (calculator, user_statistics, user_list) are not discoverable by English-speaking LLMs or API documentation readers. All descriptions should be in English or include English summaries for cross-cultural tool discovery.