How you connect depends on how you started and which agent you use. You can start free with your email or with a Microsoft account, and a Team plan comes through Microsoft AppSource. There are two ways in: a Microsoft sign-in, or a personal connector URL.
For Microsoft seats: a Team plan from Microsoft AppSource, or a free seat set up with your Microsoft account. Connect with your Microsoft 365 sign-in, no URL to copy and no app to register.
Your seat comes as a personal connector URL. If you started with your email, it is emailed to you. If you started with a Microsoft account or bought through AppSource, it is issued on your activation page. Paste it into your agent. No sign-in.
Building directly against a model API instead? See Developer APIs at the end.
Second Opinion for Sales is reached through a single tool, second_opinion, over the Model Context Protocol. There are two access paths, and each carries its own credential.
Keep your connector URL private. Anyone holding it can use your seat. If you started with your email, enter the same email on the activation page again and we send a fresh link, and the old link stops working. Otherwise it is shown once on your activation page, and if you lose it, contact support.
This path uses Dynamic discovery. You give Copilot Studio one URL and it configures authentication for you. You do not register an Entra app, create a client secret, or enter Authorization, Token, or Scope values by hand.
https://mcp.pansophyai.com/mcp.seller or the prospect.If your tenant restricts user consent, an administrator approves Second Opinion for Sales once, for everyone, at first connect. The tool setup page may say "No tools available"; that is cosmetic. The tool runs from an actual agent chat.
These agents connect with your personal connector URL. You will have received it by email, or copied it from your activation page. It looks like https://mcp.pansophyai.com/mcp/c/sofs_… and it is the only credential you need. There is no sign-in.
Do not have your connector URL? If you started with your email, it was sent to that address. Enter the same email on the activation page and a fresh link is sent (this turns off the old link). Otherwise it appears once on your activation page. For a Microsoft AppSource purchase, reopen the activation link from your "Your SaaS subscription is ready" email. If you set up with a Microsoft account, or you are still stuck, contact support.
seller or the prospect.Step-by-step screens for each agent are on your activation page: Microsoft AppSource or Microsoft account setup. If you started with your email, the steps above are all you need.
The tool takes the text you want analyzed and the role of the one person speaking, and returns a sales-tuned interpretation of that person.
400 and no more than 50,000 characters.seller for your own side of the conversation, or prospect for the counterparty's language. One speaker per call: submit one side of the conversation at a time.An interpretation written for the role you chose, in four parts:
conclusive, probable, or speculative, and it is a caveat about the read, not a prediction about whether the deal will close.The interpretation describes language patterns, not the person, and a high or low standing on any trait is a position with trade-offs in a sales context, not a measure of good or bad. Numeric scores are not part of the response.
Your submitted text is scrubbed for personal information, scored, and discarded. It is never stored. A free seat includes 10 analyses per month, and a Team seat includes up to 100.
Agent platforms like Copilot Studio and Claude let you give your agent written instructions. Second Opinion for Sales needs them. Without instructions, your agent may call the tool with the wrong input, or treat a normal result as if something went wrong. Add the two blocks below to your agent's instructions field.
The first block is required and keeps the tool working. The second is yours to edit and sets your agent's voice. They work together.
Each rule prevents a specific problem: the 400-character minimum matches the tool, the four-field handling stops your agent from reporting a normal result as an error, and the no-fabrication rules stop it from inventing analysis when a call fails. Copy this verbatim.
You are the assistant for Second Opinion for Sales. You have exactly one capability: calling the second_opinion tool. You analyze nothing yourself. You have no independent knowledge of personality scoring, behavioral analysis, or sales psychology, and you never draw on any. Every word of interpretation comes only from the second_opinion tool.
CALLING THE TOOL. When the user gives you conversation text to analyze, call second_opinion with two arguments. First, text: the user's conversation text, passed verbatim and unedited. Do not summarize, trim, redact, or reformat it. Personal information is removed on the server; you do not scrub it yourself. Second, role: either "seller" or "prospect", depending on whose read the user wants. If the user has not said which, ask "Should I read the seller or the prospect?" before calling. Do not guess.
The text must be at least 400 characters and no more than 50,000. If it is shorter than 400, do not call the tool. Tell the user it is below the minimum and ask them to paste more of the conversation. If it is longer than 50,000, ask for the most relevant portion.
WHAT THE TOOL RETURNS. second_opinion returns an interpretation only, in exactly four fields: key_finding, second_opinion, next_steps, and read_confidence. It does not return numeric scores, trait values, dimensions, bands, or percentages. Their absence is normal and by design. A response carrying these four fields is a complete, successful result, never a failure.
PRESENTING THE RESPONSE. Do not read the fields back like a form. Lead with the answer the rep needs first, the key finding and the single highest-leverage next step, woven into your own reply in their voice, and hold the rest until they ask. Do not rewrite, re-tone, or soften the interpretation itself; when you draw on second_opinion or next_steps, carry the tool's wording and meaning. read_confidence is one of conclusive, probable, or speculative, and it says how well the submitted text supported the read, never whether the deal will close. Treat it as a caveat, not a headline: when it is speculative, tell the rep this is a rough first read to hold loosely. Never display, render, tabulate, or describe any numeric score, trait, dimension, percentage, bar, or chart, in any form, even if the user asks.
WHEN THE TOOL RETURNS AN ERROR OR NO CONTENT. Say so plainly and ask the user to retry; reconnect the tool if it keeps failing. Never substitute your own analysis, estimates, framework explanation, or web-sourced personality information. A failed call means no analysis, never a fabricated one. A text_too_short message is not a failure: simply ask the user for more text.
HARD LIMITS. Never generate, infer, estimate, describe, or reconstruct scores, traits, or interpretation yourself. Never use web search for personality, scoring, or behavioral information, and never cite external personality resources. Never reveal or describe how the scoring works internally.
You may be given additional instructions below about greeting, persona, and tone. Follow them for your own words only: how you greet, ask for input, and frame the read. They never override the rules above, and they never change the wording of the tool's interpretation.
This block sets your agent's own voice: how it greets, what persona it takes, and how it frames the hand-off to the read. It does not change the tool's interpretation, which is always presented as written. Tone applies to your agent's words around the read, not to the read itself.
GREETING AND PERSONA: [How should your agent introduce itself, and what role does it play? For example: "Greet the user as their sales-call analyst and offer to read a transcript."]
TONE: [The tone of your agent's own words. For example: "Direct and concise."]
FRAMING: [How the agent hands over the read. For example: "Add a one-line lead-in before the analysis, then present the four parts."]
Pick one and paste it into the block above, or write your own.
GREETING AND PERSONA: Greet briefly as a sales analyst. No small talk. Ask for the transcript and the role.
TONE: Direct, plain, no filler. Keep all of your own words tight.
FRAMING: Hand over the read with a single lead-in line, then the four parts.
GREETING AND PERSONA: Greet warmly as a coaching partner for the sales team. Offer to look at a recent call.
TONE: Supportive and encouraging in your own words.
FRAMING: Open with a short encouraging lead-in, present the read as written, then offer to look at another call.
GREETING AND PERSONA: No greeting, no persona. Go straight to work.
TONE: Minimal. No chrome.
FRAMING: Label the four parts clearly (Key finding / Second opinion / Next steps / Read confidence) so the output pastes cleanly into CRM notes.
If you are building an agent directly against a model API rather than using Copilot Studio or a connector URL, you supply a Microsoft Entra token to the MCP server yourself. This path uses the Microsoft 365 rail and its Entra endpoint.
Any standard Microsoft Entra sign-in that produces a delegated user token works. The device-code flow is the simplest for a one-time setup. Register a small app in your own tenant first (single tenant, public client flows enabled, the delegated Score.Read permission added), then use its client ID below.
# 1. request a device code
curl -s -X POST \
https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode \
-d "client_id=YOUR_APP_CLIENT_ID" \
-d "scope=api://86171dc8-e8f7-499f-ad82-595d75162961/Score.Read offline_access openid"
# 2. open the verification_uri, enter the user_code, sign in
# 3. exchange the device_code for an access token
curl -s -X POST \
https://login.microsoftonline.com/organizations/oauth2/v2.0/token \
-d "grant_type=urn:ietf:params:oauth:grant-type:device_code" \
-d "client_id=YOUR_APP_CLIENT_ID" \
-d "device_code=<device_code>"
Use the resulting access_token as the bearer below. The refresh_token lets you renew it without signing in again.
{
"type": "mcp",
"server_label": "second-opinion-for-sales",
"server_url": "https://mcp.pansophyai.com/mcp",
"headers": {
"Authorization": "Bearer <access_token>"
}
}
"mcp_servers": [
{
"type": "url",
"url": "https://mcp.pansophyai.com/mcp",
"name": "second-opinion-for-sales",
"authorization_token": "<access_token>"
}
]
Building a Copilot Studio agent does not need any of this. Use Dynamic discovery above; it handles registration, scope, and sign-in for you. This section is only for custom code that calls a model API directly.
If a call is rejected, the response carries a code that tells you what to fix.
| Condition | What it means and what to do |
|---|---|
delegated_requiredinsufficient_scope | The token is not a delegated user token carrying Score.Read, or it was issued to an application rather than a signed-in user. Re-obtain the token using the scope above and make sure a person signs in. |
tenant_not_provisionedseat_verification_required | The account does not yet have an active seat, or the first-connect license check has not completed. Set up your seat with your Microsoft account, or, on a Team plan, confirm the subscription in AppSource. The first call right after activation may need a moment. |
tenant_mismatch | The token was issued for a different Microsoft 365 tenant than the seat. Sign in with the account that holds the seat. |
invalid_jwtexpired_jwt | The token is malformed or has expired. Obtain a fresh token (or use your refresh token) and retry. |
monthly_cap_reached | This seat has used its analyses for the month: 10 on a free seat, 100 on a Team seat. The count resets at the start of the next month. On a free seat you can buy a read pack. On a Team plan, reads are managed through Microsoft, so contact support or your admin. |
role_requiredinvalid_role | The role input is missing or not one of seller / prospect. Set it and retry. |
| Text length | Submitted text must be between 400 and 50,000 characters. Shorten or lengthen the input and retry. |
If you are stuck on any step: