Prerequisites
- An MSPortal account that you can sign in to.
- The MCP Server write permission in MSPortal. Your MSP administrator manages Company-user permissions. Setup access does not grant every portal tool.
- Your MSPortal server URL from Settings → MCP Server.
- For VS Code: a current version of VS Code with GitHub Copilot installed and signed in.
- For Copilot CLI: GitHub Copilot CLI installed and signed in. Run
copilot loginif needed.
Connect GitHub Copilot in VS Code
Open the MSPortal MCP settings
Add the server to VS Code
msportal, then choose whether to install it globally or in the current workspace.Trust and authenticate the server
Enable the MSPortal tools
Test the connection
List the MSPortal tools you can use.Check the actual connected server and tool list. Then ask Copilot to call get_current_user and verify the expected tenant and company context. A generated list of tool names without a real connection is not a passing test.
Manual VS Code configuration
If you prefer to configure the server manually, run MCP: Open User Configuration from the VS Code Command Palette and add:msportal entry to start and authenticate the server.
Connect GitHub Copilot CLI
Copy your MSPortal server URL
Add the remote server
Authenticate with MSPortal
copilot, open its /mcp management interface and follow the authentication prompt for msportal. Complete MSPortal browser sign-in and consent. Use your installed version’s MCP help if its authentication controls differ; GitHub sign-in and MSPortal authorization are separate.Verify the connection
copilot mcp get msportal to inspect configuration and tools, and /mcp list in an interactive session to inspect server status. Verify an actual get_current_user call before requesting client data. See the official CLI command reference.Manual Copilot CLI configuration
You can configure the same connection in~/.copilot/mcp-config.json:
servers object in its mcp.json; Copilot CLI uses an mcpServers object in ~/.copilot/mcp-config.json. Do not assume the CLI reads .vscode/mcp.json directly. Workspace .mcp.json and user configurations can have different precedence; inspect which entry your client actually loaded.Grouped tools and existing connections
The consolidated MSPortal catalog exposes up to 93 public tools covering 260 existing operations. Copilot can discover tools such asquery_projects and manage_planner, then choose the relevant action using the tool’s schema. The available subset depends on your deployed server version and access.
Existing calls using individual names, such as list_projects, continue to work with their original arguments. Pending confirmations retain their operation identity and expiry. Consolidation alone does not require a new server URL or broader OAuth access.
When adopting the grouped catalog, refresh the client’s discovered tools and review Configure Tools or any explicit tools allowlist. Enable the new public names you need. The example "tools": ["*"] above is not tied to individual legacy names, but grants no extra server permissions. Custom clients that expect old names in tools/list need to update their discovery logic. See the action-to-tool mapping.
Before requesting changes
Ask Copilot to start with read tools and the intended company. Review the tool calls and output before requesting writes. The client’s tool-approval prompt, MSPortal OAuth consent and a portal proposal confirmation are different steps. Most mutations stage a proposal, but some tools run immediately. Marking notifications changes state; feedback submission sends an explicitly requested message. See MCP action behavior. Do not assume a global client approval setting adds a missing server confirmation.Manage access
The access you approve is also limited by your MSPortal role, tenant, and company visibility. To review or remove the connection, return to Settings → MCP Server in MSPortal and use Revoke beside the connected Copilot client. Revocation does not remove local configuration or erase previously returned data. Existing access tokens can remain valid until expiry, up to about 15 minutes; ask your MSP administrator about MCP permission removal if subsequent requests must be blocked through the role check.Troubleshooting
The browser sign-in did not open
The browser sign-in did not open
/mcp and follow the installed version’s authentication controls.MSPortal does not appear in Copilot
MSPortal does not appear in Copilot
msportal is started. In Copilot CLI, inspect /mcp list and copilot mcp get msportal. Remember that VS Code and Copilot CLI use separate configuration files.Copilot cannot see an MSPortal tool
Copilot cannot see an MSPortal tool
Your organization blocks the MCP server
Your organization blocks the MCP server
The connection stopped working
The connection stopped working
Frequently asked questions
Are VS Code and Copilot CLI configurations interchangeable?
Are VS Code and Copilot CLI configurations interchangeable?
Does an enabled tool bypass Company scope?
Does an enabled tool bypass Company scope?
Does Revoke delete my local MCP configuration?
Does Revoke delete my local MCP configuration?
Does an assistant listing tools prove the connection works?
Does an assistant listing tools prove the connection works?
Does a client approval prompt replace the portal confirmation?
Does a client approval prompt replace the portal confirmation?
Related resources
- MCP Server overview — understand access, consent, permissions, and connection management.
- MCP Tools Reference — see every tool available through the MSPortal MCP server.
- Add and manage MCP servers in VS Code — official VS Code instructions.
- Add MCP servers to GitHub Copilot CLI — official GitHub instructions.