pearl-api-mcp-server
Server Details
Hybrid human + AI expertise for faster, trusted answers and decisions via MCP Server.
- Status
- Healthy
- Uptime
- 99.9% over 38 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
The tools are mostly distinct: askPearlAi is for low-risk AI answers, askExpert for direct human requests, and askPearlExpert for escalated hybrid cases. Some boundary overlap exists between askExpert and askPearlExpert, but the descriptions provide clear enough routing guidance.
The naming is generally consistent with verb-first camelCase conventions: askPearlAi, askPearlExpert, askExpert, getConversationHistory, verifyAnswer. The mix of 'ask' prefix and other verbs is slightly inconsistent, but the pattern is still readable and predictable.
Five tools is well-scoped for a Q&A/expert-routing server. Each tool covers a distinct mode of interaction—AI, human, hybrid, verification, and history—without unnecessary bloat or gaps.
The tool surface covers the core lifecycle of an advisory interaction: getting AI answers, requesting human experts, escalating complex cases, verifying answers, and retrieving history. Minor features like cancellation or status tracking are missing but are not obvious requirements from the stated purpose.
Available Tools
5 toolsaskExpertaskExpertAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The user's question | |
| sessionId | No | Optional session ID for continuing a conversation | |
| chatHistory | No | Optional conversation history. This ensures experts see the complete context | |
| phoneNumber | No | Customer's phone number for expert callback in E.164 format (e.g., +15551234567). Only pass when the user explicitly provides it. | |
| contactPreference | No | Customer's preferred contact method. Set to 'phone' when the user wants a phone callback. | |
| enableMockResponse | No | When true, the API returns a hardcoded mock expert success response instead of routing to a real expert. Useful for testing downstream behavior. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool routes to a human expert and supports phone callback via specific parameters, which is useful behavior. With no annotations, the description carries the burden, but it does not explain response behavior, latency, or potential limitations, leaving some uncertainty about what happens after invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with usage triggers and the phone callback option. Every word contributes value, with no redundancy or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters and no output schema, the description gives core usage context but omits what the user can expect after submission (e.g., chat reply vs. separate callback). It also does not differentiate from the sibling 'askPearlExpert', which could be a similar function, making the description only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides comprehensive descriptions for all 6 parameters (100% coverage), so the description adds little beyond restating the phone callback combination. It does not clarify enableMockResponse or sessionId beyond schema, so it stays at the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to connect the user with a real human expert. It provides specific triggers like 'explicitly asks to speak with a real human expert' and 'needs personalized advice in a complex or sensitive domain', which distinguishes it from siblings like askPearlAi that likely provide AI-based answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: when the user asks for a real expert, needs complex/sensitive advice, or uses phrases like 'Can I talk to a real expert?'. However, it does not name alternative tools or provide when-not-to-use scenarios, so it falls short of full comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
askPearlAiaskPearlAiAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The user's question | |
| sessionId | No | Optional session ID for continuing a conversation | |
| chatHistory | No | Optional conversation history. This ensures experts see the complete context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the output is AI-generated, rapid, and not human-validated, which is critical behavioral context. It does not mention return format or data handling, but for a low-stakes AI answer tool, the disclosed traits are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary use case, and every clause serves a purpose. The distinction between safe and unsafe usage is made in the second sentence without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema and no annotations, the description covers what the tool does, when to use it, when not to use it, and which alternatives to choose. This is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific meaning, but the schema already documents all three parameters clearly (question, sessionId, chatHistory). No need for description to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to provide rapid AI-generated answers, drafts, or alternative perspectives on low-risk topics. It distinguishes itself from sibling tools by explicitly naming alternatives (askExpert, askPearlExpert) for higher-risk questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use conditions (low-risk, exploratory, no human validation) and when-not-to-use conditions (medical, legal, financial, safety-critical), along with named alternative tools. This is exactly what the dimension expects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
askPearlExpertaskPearlExpertAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The user's question | |
| sessionId | No | Optional session ID for continuing a conversation | |
| chatHistory | No | Optional conversation history. This ensures experts see the complete context | |
| phoneNumber | No | Customer's phone number for expert callback in E.164 format (e.g., +15551234567). Only pass when the user explicitly provides it. | |
| contactPreference | No | Customer's preferred contact method. Set to 'phone' when the user wants a phone callback. | |
| enableMockResponse | No | When true, the API returns a hardcoded mock expert success response instead of routing to a real expert. Useful for testing downstream behavior. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the AI-intake-to-human-escalation flow and phone callback support, but lacks details on side effects, async behavior, response format, or potential delays. This is a reasonable disclosure but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with usage guidance, and every sentence adds value. It is concise and well structured without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that routes to human experts, the description provides strong decision-support context (when/why to use, alternatives) and phone callback instructions. However, it does not explain what happens after invocation (e.g., async response, expected return), which is a minor gap given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds no additional parameter semantics beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for complex, ambiguous, high-stakes, or multidisciplinary problems that benefit from AI intake followed by human expert escalation. It distinguishes itself from sibling tools askPearlAi and askExpert, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (complex/ambiguous/high-stakes/multidisciplinary), when not to use (simple fact queries, direct human request), and names the exact alternative tools. Also provides guidance for phone callback usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getConversationHistorygetConversationHistoryAInspect
Retrieve the full message history for a session. Includes all messages (after any formatting done during processing). Use to resume discussions.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID of the conversation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of disclosing behavior. It adds one useful trait: returned messages are "after any formatting done during processing," signaling that the history may not be raw. However, it does not mention ordering, pagination, read-only semantics, or permissions, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the main action stated first. Each sentence earns its place: the first defines the operation, the second clarifies message formatting, and the third gives the practical use case. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is mostly sufficient: it states what is returned, notes post-processing formatting, and explains why the tool would be used. It could be slightly stronger by describing the return structure or ordering, but nothing critical blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the only parameter, sessionId, is already clearly documented in the schema. The description does not add meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "Retrieve the full message history for a session." This clearly distinguishes it from the sibling tools, which are about asking experts or verifying answers rather than retrieving past conversation content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use to resume discussions" gives a clear, practical scenario for when this tool is appropriate. It does not explicitly name alternatives or exclusion criteria, but the intended usage is understandable without further elaboration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verifyAnswerverifyAnswerAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| answer | Yes | The AI-generated answer that requires human verification | |
| sessionId | No | Existing session ID to continue; generated if omitted | |
| chatHistory | No | Optional prior messages for context (ordered, oldest first) | |
| enableMockResponse | No | When true, the API returns a hardcoded mock expert success response instead of routing to a real expert. Useful for testing downstream behavior. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of disclosing behavior. It reveals the key trait that verification is performed by a 'real expert,' which is a meaningful behavioral disclosure. However, it does not mention potential side effects, asynchronicity, cost, or what the return value looks like, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the usage trigger ('Use this when...'). It is compact and free of fluff, though slightly verbose with the triad 'correctness, safety, or trustworthiness' which could be condensed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains what the tool does and when to use it, but given there is no output schema and no annotations, it should disclose the return format or acknowledge that it routes to a human expert asynchronously. This missing information leaves the agent uncertain about what to expect from the tool's response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all parameters. The description adds minimal semantic value beyond the schema—just framing the 'answer' as AI-generated. This meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('validate') and resource ('AI-generated answer'), and distinguishes itself from sibling askExpert tools by focusing on verification of an existing answer rather than asking a new question. It also names the exact triggering condition ('when the user asks to have an answer double-checked').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit 'when to use' context: validating correctness, safety, or trustworthiness, or when the user requests expert double-checking. It does not explicitly list when not to use or name alternative tools, but the purpose is distinct enough that the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
getConversationHistory
3 tool updates
- Changed
askExpert1 field changed- added
Input schema / properties / enableMockResponseAdded value: +{ + "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" +}
- Changed
askPearlExpert1 field changed- added
Input schema / properties / enableMockResponseAdded value: +{ + "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" +}
- Changed
verifyAnswer1 field changed- added
Input schema / properties / enableMockResponseAdded value: +{ + "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" +}
4 tool updates
- Changed
askExpert2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chatHistory / items / additionalPropertiesRemoved value: -false
- Changed
askPearlAi2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chatHistory / items / additionalPropertiesRemoved value: -false
- Changed
askPearlExpert2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chatHistory / items / additionalPropertiesRemoved value: -false
- Changed
verifyAnswer2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chatHistory / items / additionalPropertiesRemoved value: -false
2 tool updates
- Removed
get_verification_state - Removed
send_answer_for_verification
2 tool updates
- Added
get_verification_state - Added
send_answer_for_verification
4 tool updates
- Changed
askExpert1 field changed- added
Input schema / properties / chatHistory / items / properties / role / enumAdded value: +[ + "user", + "assistant" +]
- Changed
askPearlAi1 field changed- added
Input schema / properties / chatHistory / items / properties / role / enumAdded value: +[ + "user", + "assistant" +]
- Changed
askPearlExpert1 field changed- added
Input schema / properties / chatHistory / items / properties / role / enumAdded value: +[ + "user", + "assistant" +]
- Changed
verifyAnswer2 fields changed- changed
Input schema / properties / chatHistory / items / properties / role / descriptionPrevious value: -"Message role (system|user|assistant|tool)"New value: +"Message role" - added
Input schema / properties / chatHistory / items / properties / role / enumAdded value: +[ + "user", + "assistant" +]
2 tool updates
- Changed
askExpert2 fields changed- added
Input schema / properties / contactPreferenceAdded value: +{ + "description": "Customer's preferred contact method. Set to 'phone' when the user wants a phone callback.", + "enum": [ + "chat", + "phone" + ], + "type": "string" +} - added
Input schema / properties / phoneNumberAdded value: +{ + "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" +}
- Changed
askPearlExpert2 fields changed- added
Input schema / properties / contactPreferenceAdded value: +{ + "description": "Customer's preferred contact method. Set to 'phone' when the user wants a phone callback.", + "enum": [ + "chat", + "phone" + ], + "type": "string" +} - added
Input schema / properties / phoneNumberAdded value: +{ + "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" +}
4 tool updates
- First observed
askExpert - First observed
askPearlAi - First observed
askPearlExpert - First observed
verifyAnswer
Related MCP Connectors
One MCP server over 253 data sources: Reddit, LinkedIn, YouTube, G2, search and AI answers.
Let AI agents query data and act across all your business apps via MCP.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceMCP server for hybrid documentation search (keyword + vector) and RAG chat, enabling natural language queries with cited answers from indexed repositories.MIT- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides hybrid search over Confluent support articles and lets AI assistants save solved problems back into the knowledge base.-

Sablier MCP Serverofficial
AlicenseAqualityDmaintenanceAn MCP server that lets AI assistants analyze portfolios, stress-test scenarios, generate synthetic market paths, and scan SEC filings — in under 2 minutes.833MIT- AlicenseNot gradedqualityBmaintenanceEnables hybrid search over product PDFs with version-aware, figure-returning answers for any MCP client, locally or via secure remote access.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.