FastMCP-based multi-user server providing tools for Gmail, Google Calendar, Salesforce CRM, OpenAI analysis, company document search (RAG with ChromaDB), and logging. Supports SSE transport with URL-based user identification.
27 tools with mixed quality. Strengths: all tools have descriptions (mostly in Korean, 50-150 chars), input schemas present with type definitions, clear verb-noun naming (add_, get_, update_, delete_, search_, create_). Weaknesses: parameter descriptions are minimal or generic (many under 50 chars, e.g., 'Lead ID' for verify_salesforce_lead); output schemas documented in docstrings but not formally in JSON Schema; no error handling guidance (no recovery hints, no categorization); no tool annotations (readOnlyHint, destructiveHint); composition issues (process_customer_email_workflow combines multiple concerns); no idempotency guarantees stated; sensitive operations (delete_calendar_event, delete_company_document) lack confirmation patterns. Baseline: avg tool description ~120 chars (within 10-1024 range), avg params ~4 per tool (within baseline), but param descriptions average ~30 chars (well below 72-char baseline for A+ tools).
Google Calendar에 새 일정을 추가합니다.
AI를 사용하여 이메일에서 고객 정보를 추출합니다.
회사 관련 질문에 대해 문서 기반으로 답변합니다. IT, HR, Finance 등 모든 회사 문서를 RAG 방식으로 검색하여 AI가 답변을 생성합니다.
모든 서비스의 현재 상태를 확인합니다.
Salesforce에 새로운 Lead를 생성합니다.
일정을 삭제(취소)합니다.
특정 회사 문서를 삭제합니다.
Parameter descriptions are minimal (avg ~30 chars vs 72-char baseline). Examples: 'Lead ID', '도구 이름 필터', 'Base64로 인코딩된 첨부파일 데이터'. LLMs cannot infer constraints, formats, or valid ranges from these terse descriptions.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Destructive tools (delete_calendar_event, delete_company_document) lack explicit marking. LLMs cannot distinguish safe reads from irreversible writes without annotations.
No error handling guidance. Tools return generic error messages ('일정 추가에 실패했습니다') without recovery hints. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
최근 받은 이메일을 조회합니다 (자신이 보낸 이메일 제외).
고객 정보를 바탕으로 AI가 답변 이메일을 생성합니다.
Google Calendar에서 예정된 일정을 조회합니다.
현재 연결된 사용자 정보를 반환합니다.
최근 에러 로그를 조회합니다.
Gmail 서비스 상태를 확인합니다.
OpenAI 서비스 상태를 확인합니다.
Salesforce 서비스 상태를 확인합니다.
느린 도구 호출을 조회합니다.
로그 통계를 조회합니다.
업로드된 회사 문서 목록을 조회합니다.
고객 이메일 처리 전체 워크플로우를 실행합니다.
도구 호출 로그를 검색합니다.
일정을 검색합니다 (제목, 설명에서 키워드 검색).
회사 문서에서 관련 내용을 검색합니다. IT, HR, Finance 등 모든 회사 문서에서 검색합니다.
이메일을 발송합니다 (Base64 첨부파일 지원).
기존 일정을 수정합니다.
회사 문서를 Vector DB에 업로드합니다. IT, HR, Finance 등 모든 종류의 회사 가이드 문서를 저장할 수 있습니다.
Local MCP 로그를 업로드합니다. (Local PC에서 전송용)
Salesforce에서 Lead 정보를 확인합니다.
Composition issue: process_customer_email_workflow combines email analysis, reply generation, and Salesforce lead creation in one tool. Should split into separate tools (analyze_email → generate_reply → create_lead) so agents can compose as needed.
Output schemas documented in docstrings but not formally declared in JSON Schema. Agents cannot programmatically discover return types, field names, or structure. Example: add_calendar_event returns {status, message, user, event} but schema not in tool definition.