{"training":{"id":"T-MCP-1","slug":"unapproved-mcp-servers","title":"Unapproved MCP servers","policyId":"P-MCP","minutes":3,"version":1,"lang":"en","assignment":{"happened":"On {date}, {agent} on {device} connected to the {server} server, which is not sanctioned for {team}; {blocked}.","matters":"A {minutesWord} training shows what an MCP server can do on your behalf and how to get one sanctioned when your work needs it."},"lesson":[{"id":"what-happened","heading":"What happened on {device}","body":["On {date} at {time}, {agent} on {device} connected to the {server} server during a session: {session}. qcontrol recorded it as: {evidence}.","{server} is not on the sanctioned list for {team}, so the policy {policy} recorded a finding. {outcome}"],"illustration":{"scene":"connection","alt":"{agent} on {device} connects to the {server} server, which sits outside the sanctioned list for {team}.","animated":true}},{"id":"server-reach","heading":"What an MCP server can do","body":["An MCP server loads tools and context into your agent. Once it is connected, the agent can use those tools on your behalf: read what the server can read, write what it can write, and send what it can send.","You approve the connection once. After that, the server's tool list decides what the agent may do, not the prompt you type."],"illustration":{"scene":"server-reach","alt":"The agent reaches through the server to everything the server can read, write or send.","animated":true}},{"id":"why-the-list","heading":"Why there is a sanctioned list","body":["Your organisation sanctions MCP servers after reviewing what each one can reach. Today the list for {team} holds {sanctioned}. {exceptionSentence}","A server outside the list has not been reviewed for your team's data. The list is the boundary of what an agent may do with it."],"illustration":{"scene":"sanctioned-list","alt":"The sanctioned servers for {team} beside {server}, which is sanctioned for {exceptionTeam} only."}},{"id":"instead","heading":"What to do instead","body":["Before you connect a server, check whether it is sanctioned for your team. If you are not sure, ask IT; it takes a minute.","If your work needs a server that is not on the list, ask for it to be sanctioned. The policy's owner reviews what it can reach and adds it for your team, or names a sanctioned server that does the same job. For {server} on {team}, that request goes to {owner}.","If an agent is already connected to a server you did not expect, disconnect it and say so when you ask."],"illustration":{"scene":"ask","alt":"You ask the policy's owner; the server is added for your team, or a sanctioned one that does the same job is named."},"instead":true}],"check":[{"id":"q-reach","prompt":"You let an agent connect to an MCP server you have not used before. After that, what decides what the agent can do through the server?","choices":[{"id":"a","text":"The prompt you type each time"},{"id":"b","text":"The agent's own settings on your laptop"},{"id":"c","text":"The tools the server offers","right":true}],"explain":"You approve the connection once; after that the server's tools are what the agent can use on your behalf.","stepId":"server-reach"},{"id":"q-per-team","prompt":"{server} is sanctioned for {exceptionTeam}. Does that make it sanctioned for {team} too?","choices":[{"id":"a","text":"No, each team's servers are sanctioned separately, after a review of what they reach","right":true},{"id":"b","text":"Yes, a sanctioned server is sanctioned for everyone"},{"id":"c","text":"Yes, once anyone on {exceptionTeam} has used it"}],"explain":"Sanctioning follows a review for one team's data; another team asks for its own.","stepId":"why-the-list"},{"id":"q-need","prompt":"Your work needs an MCP server that is not on your team's sanctioned list. What do you do?","choices":[{"id":"a","text":"Connect it anyway; on your team the policy only observes"},{"id":"b","text":"Ask for it to be sanctioned, or for a sanctioned server that does the same job","right":true},{"id":"c","text":"Connect it through a personal account instead"}],"explain":"The policy's owner reviews the server and adds it for your team, or points you to one that is already sanctioned.","stepId":"instead"},{"id":"q-observe","prompt":"On {team}, this policy is set to Observe, not Enforce. An agent connects a server that is not sanctioned. What happens?","choices":[{"id":"a","text":"The connection goes through, and nothing is written down"},{"id":"b","text":"The connection is blocked after the first tool call"},{"id":"c","text":"The connection goes through, and a finding records it","right":true}],"explain":"Observe records; it does not stop. The finding on {device} is that record, and this training answers it.","stepId":"what-happened"}],"contact":{"owner":"{owner}","how":"Contact IT from the message that brought you here, or reply to it; {owner} reads the replies for this policy."},"library":{"lesson":[{"id":"what-happened","heading":"What happens when an agent connects a server","body":["An agent can connect an MCP server in the middle of a session, and from then on it can use that server's tools. qcontrol sees the connection on {device} and checks the server against the sanctioned list for {team}.","When the server is not on that list, the policy {policy} records a finding. {exceptionSentence}"],"illustration":{"scene":"connection","alt":"{agent} on {device} connects to the {server} server, which sits outside the sanctioned list for {team}.","animated":true}}],"check":[{"id":"q-observe","prompt":"This policy is set to Observe, not Enforce, and an agent connects a server that is not sanctioned. What happens?","choices":[{"id":"a","text":"The connection goes through, and nothing is written down"},{"id":"b","text":"The connection is blocked after the first tool call"},{"id":"c","text":"The connection goes through, and a finding records it","right":true}],"explain":"Observe records; it does not stop. The finding is that record, and a training like this one answers it.","stepId":"what-happened"}]}},"version":1,"contentHash":"sha256:bc19dbf8d6099a972c1601513329f239717424d1abc7dff1f611c6b75fba4864","slots":["agent","blocked","date","device","evidence","exceptionSentence","exceptionTeam","minutesWord","outcome","owner","policy","sanctioned","server","session","team","time"],"path":"app/data/trainings/en/unapproved-mcp-servers.md"}