pearl-api-mcp-server

Hybrid human + AI expertise for faster, trusted answers and decisions via MCP Server.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
100%
이름 품질
91%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,164토큰 (도구 정의)
~3.3 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.69%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "pearl-api-mcp-server": {
      "url": "https://mcp.pearl.com/sse"
    }
  }
}

원격 엔드포인트

https://mcp.pearl.com/ssesse
https://mcp.pearl.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
⚪askPearlAi(question, chatHistory, sessionId)

Use this when the user wants a rapid AI-generated answer, draft, or alternative perspective on a low-risk or exploratory topic that does not require human validation. Do not use for medical, legal, financial, or safety-critical questions — use askExpert or askPearlExpert instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The user's question"
    },
    "chatHistory": {
      "description": "Optional conversation history. This ensures experts see the complete context",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ]
          },
          "content": {
            "type": "string"
          }
        },
        "required": [
          "role",
          "content"
        ]
      }
    },
    "sessionId": {
      "description": "Optional session ID for continuing a conversation",
      "type": "string"
    }
  },
  "required": [
    "question"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪askPearlExpert(question, chatHistory, sessionId, phoneNumber, contactPreference, ...)

Use this when the problem is complex, ambiguous, high-stakes, or multidisciplinary and would benefit from AI intake followed by escalation to a human expert. Do not use for simple fact queries (use askPearlAi) or when the user explicitly requests a human directly (use askExpert). Supports phone callback — pass phoneNumber and contactPreference='phone' if the user wants a call.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The user's question"
    },
    "chatHistory": {
      "description": "Optional conversation history. This ensures experts see the complete context",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ]
          },
          "content": {
            "type": "string"
          }
        },
        "required": [
          "role",
          "content"
        ]
      }
    },
    "sessionId": {
      "description": "Optional session ID for continuing a conversation",
      "type": "string"
    },
    "phoneNumber": {
      "description": "Customer's phone number for expert callback in E.164 format (e.g., +15551234567). Only pass when the user explicitly provides it.",
      "type": "string"
    },
    "contactPreference": {
      "description": "Customer's preferred contact method. Set to 'phone' when the user wants a phone callback.",
      "type": "string",
      "enum": [
        "chat",
        "phone"
      ]
    },
    "enableMockResponse": {
      "description": "When true, the API returns a hardcoded mock expert success response instead of routing to a real expert. Useful for testing downstream behavior.",
      "type": "boolean"
    }
  },
  "required": [
    "question"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪askExpert(question, chatHistory, sessionId, phoneNumber, contactPreference, ...)

Use this when the user explicitly asks to speak with a real human expert, needs personalized advice in a complex or sensitive domain, or says something like 'Can I talk to a real expert?'. Supports phone callback — pass phoneNumber and contactPreference='phone' if the user wants a call.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The user's question"
    },
    "chatHistory": {
      "description": "Optional conversation history. This ensures experts see the complete context",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ]
          },
          "content": {
            "type": "string"
          }
        },
        "required": [
          "role",
          "content"
        ]
      }
    },
    "sessionId": {
      "description": "Optional session ID for continuing a conversation",
      "type": "string"
    },
    "phoneNumber": {
      "description": "Customer's phone number for expert callback in E.164 format (e.g., +15551234567). Only pass when the user explicitly provides it.",
      "type": "string"
    },
    "contactPreference": {
      "description": "Customer's preferred contact method. Set to 'phone' when the user wants a phone callback.",
      "type": "string",
      "enum": [
        "chat",
        "phone"
      ]
    },
    "enableMockResponse": {
      "description": "When true, the API returns a hardcoded mock expert success response instead of routing to a real expert. Useful for testing downstream behavior.",
      "type": "boolean"
    }
  },
  "required": [
    "question"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verifyAnswer(answer, chatHistory, sessionId, enableMockResponse)

Use this when a professional needs to validate the correctness, safety, or trustworthiness of a specific AI-generated answer, or when the user asks to have an answer double-checked by a real expert.

입력 스키마

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "minLength": 1,
      "description": "The AI-generated answer that requires human verification"
    },
    "chatHistory": {
      "description": "Optional prior messages for context (ordered, oldest first)",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ],
            "description": "Message role"
          },
          "content": {
            "type": "string",
            "description": "Message content"
          }
        },
        "required": [
          "role",
          "content"
        ]
      }
    },
    "sessionId": {
      "description": "Existing session ID to continue; generated if omitted",
      "type": "string"
    },
    "enableMockResponse": {
      "description": "When true, the API returns a hardcoded mock expert success response instead of routing to a real expert. Useful for testing downstream behavior.",
      "type": "boolean"
    }
  },
  "required": [
    "answer"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢getConversationHistory(sessionId)

Retrieve the full message history for a session. Includes all messages (after any formatting done during processing). Use to resume discussions.

입력 스키마

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string",
      "description": "The session ID of the conversation"
    }
  },
  "required": [
    "sessionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡send_answer_for_verification(conversation, questionCategory)

Use this tool only when the user explicitly requests to start verification, fact-checking, or expert validation of an AI-generated answer. This tool must be used exclusively to initiate the verification process. Do not call it to check status, retrieve results, or for any follow-up actions. A human Pearl expert will review the answer and determine its correctness. Only one verification is allowed per chat session — this tool must not be invoked more than once. Invoking this tool renders an interactive UI component that displays live verification status and the final expert verdict.

입력 스키마

{
  "type": "object",
  "properties": {
    "conversation": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "system",
              "user",
              "assistant"
            ],
            "description": "The role of the participant in the conversation (e.g. \"user\" or \"assistant\")."
          },
          "content": {
            "type": "string",
            "description": "The message content sent by the participant."
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "description": "Full conversation between the user and the AI assistant to be reviewed by a human expert. Must contain at least one assistant message — the AI-generated answer that will be assessed."
    },
    "questionCategory": {
      "type": "string",
      "enum": [
        "Car",
        "Veterinary",
        "Health",
        "Tech",
        "Law",
        "Other"
      ],
      "description": "The category that best describes the question being verified.\n- \"Car\" for automotive/vehicle topics\n- \"Veterinary\" for pet or animal health\n- \"Health\" for human medical topics\n- \"Tech\" for technology/software\n- \"Law\" for legal questions\n- \"Other\" for anything that does not fit the above"
    }
  },
  "required": [
    "conversation",
    "questionCategory"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "Indicates whether the answer was successfully submitted for expert verification."
    },
    "category": {
      "type": "string",
      "enum": [
        "Car",
        "Veterinary",
        "Health",
        "Tech",
        "Law",
        "Other"
      ],
      "description": "The category that best describes the question being verified.\n- \"Car\" for automotive/vehicle topics\n- \"Veterinary\" for pet or animal health\n- \"Health\" for human medical topics\n- \"Tech\" for technology/software\n- \"Law\" for legal questions\n- \"Other\" for anything that does not fit the above"
    },
    "sessionId": {
      "type": "string",
      "description": "The session identifier of the verification. Used for tracking and retrieval of the verification state."
    },
    "error": {
      "description": "Error if the answer could not be submitted for verification.",
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "description": "Error message if the answer could not be submitted for verification."
        },
        "code": {
          "type": "string",
          "enum": [
            "no_messages_to_verify",
            "session_already_verified",
            "unknown_error"
          ],
          "description": "Error code if the answer could not be submitted for verification."
        }
      },
      "required": [
        "message",
        "code"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "success",
    "category",
    "sessionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_verification_state(sessionId)

Use this when polling the current status of a verification request previously submitted via send_answer_for_verification. Returns the verification state (not started, in progress, or completed) and the expert's verdict once the review is complete.

입력 스키마

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string",
      "description": "The session identifier of the chat whose verification state should be retrieved. Must match the sessionId previously returned by send_answer_for_verification."
    }
  },
  "required": [
    "sessionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "Indicates whether the verification status was successfully retrieved."
    },
    "status": {
      "type": "string",
      "enum": [
        "NotStarted",
        "InProgress",
        "Completed",
        "Error"
      ],
      "description": "Indicates the current status of the chat verification process."
    },
    "isAnswerCorrect": {
      "description": "Indicates whether the AI-generated answer is fully correct as rated by the human expert.",
      "type": "boolean"
    },
    "expertProfile": {
      "description": "Information about the human expert who verified the answer.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the human expert who verified the answer."
        },
        "title": {
          "description": "Title or job description of the human expert who verified the answer.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "avatarUrl": {
          "description": "URL of the avatar image of the human expert who verified the answer.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "rating": {
          "description": "Rating of the human expert who verified the answer.",
          "type": "number"
        },
        "totalNumberOfRatings": {
          "description": "Total number of ratings of the human expert who verified the answer.",
          "type": "number"
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "success",
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 5개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 5개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 5개