Before you start

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.

Building directly against a model API instead? See Developer APIs at the end.

How connecting works

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.

Microsoft Copilot Studio

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.

MCP server URL
https://mcp.pansophyai.com/mcp
This is the only value you enter. Do not open it in a browser; it answers only to an agent.
  1. 1
    Open your agent in Copilot Studio. Go to Tools, then Add a tool, then New tool, and choose Model Context Protocol.
  2. 2
    For the server URL, paste https://mcp.pansophyai.com/mcp.
  3. 3
    For authentication, choose OAuth 2.0, then Dynamic discovery. Leave the other fields alone; Dynamic discovery fills them in from the server. Click Create.
  4. 4
    Add the tool to your agent and choose Create new connection. Sign in with your Microsoft 365 account and approve the one-time consent prompt.
  5. 5
    Run it from a chat with your agent, not the tool setup page. Paste a block of sales conversation and ask for a second opinion on the 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.

Claude and ChatGPT

Connector URL rail

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.

  1. 1
    Claude. Go to Settings, then Connectors, then Add custom connector. Paste your connector URL, name it Second Opinion for Sales, and connect. In a chat, open the + menu and turn the tool on. Custom connectors work on all Claude plans; the free plan allows one custom connector.
  2. 2
    ChatGPT. On the web, open Settings, Apps, then Advanced settings and turn on Developer mode. Back on Apps, click Create app, paste your connector URL as the Server URL, set Authentication to No authentication, tick the acknowledgment, and click Create. Enable it per chat from the + menu under More. Requires a paid plan on the web (Plus, Pro, Business, Enterprise, or Edu).
  3. 3
    In either one, paste a block of sales conversation and ask for a second opinion on the 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.

Using the tool

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.

An interpretation written for the role you chose, in four parts:

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.

Instructing your agent

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.

Do not edit these lines

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.
Customize

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.

Executive, concise
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.
Coaching team
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.
CRM or call notes
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.

Developer APIs

Advanced

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.

MCP server URL
https://mcp.pansophyai.com/mcp
Scope
api://86171dc8-e8f7-499f-ad82-595d75162961/Score.Read offline_access openid
Sign-in
Microsoft Entra ID, delegated user token (work or school accounts)
A person must sign in. Application-only tokens are rejected; the tool requires a delegated user token carrying Score.Read.

Obtaining a token

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.

OpenAI Responses API

{
  "type": "mcp",
  "server_label": "second-opinion-for-sales",
  "server_url": "https://mcp.pansophyai.com/mcp",
  "headers": {
    "Authorization": "Bearer <access_token>"
  }
}

Anthropic Messages API (MCP connector)

"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.

Troubleshooting

If a call is rejected, the response carries a code that tells you what to fix.

ConditionWhat it means and what to do
delegated_required
insufficient_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_provisioned
seat_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_mismatchThe token was issued for a different Microsoft 365 tenant than the seat. Sign in with the account that holds the seat.
invalid_jwt
expired_jwt
The token is malformed or has expired. Obtain a fresh token (or use your refresh token) and retry.
monthly_cap_reachedThis 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_required
invalid_role
The role input is missing or not one of seller / prospect. Set it and retry.
Text lengthSubmitted text must be between 400 and 50,000 characters. Shorten or lengthen the input and retry.

Need help

If you are stuck on any step:

Pansophy AI Inc., Support

support@pansophyai.com

We respond within one business day.