Skip to main content
Glama
IBM
by IBM
vscode.mdx11.1 kB
--- title: "VSCode (Copilot Chat)" description: "Configure IBM i MCP Server with VSCode through GitHub Copilot Chat" --- # VSCode Integration Visual Studio Code supports MCP servers through GitHub Copilot Chat. You can configure servers at the workspace or user level, enabling your entire team to share MCP configurations. <Note> **Prerequisites**: - VSCode 1.102+ with [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) installed and enabled - Copilot subscription (individual, business, or enterprise) - MCP support is generally available from VS Code 1.102 </Note> ## Configuration File Locations <Tabs> <Tab title="Workspace"> **Location**: `.vscode/mcp.json` in your project root **Benefits**: - Shared with team via version control - Project-specific MCP servers - Consistent across team members ```bash mkdir -p .vscode touch .vscode/mcp.json ``` </Tab> <Tab title="User"> **Recommended Method**: Use Command Palette 1. Press `Cmd/Ctrl+Shift+P` 2. Run **MCP: Open User Configuration** 3. Edit in VSCode with IntelliSense support **File Locations** (if editing manually): - **macOS/Linux**: `~/.config/Code/User/globalStorage/modelcontextprotocol.mcp/mcp.json` - **Windows**: `%APPDATA%\Code\User\globalStorage\modelcontextprotocol.mcp\mcp.json` **Benefits**: - Available across all projects - Personal configuration - Not shared via version control </Tab> </Tabs> ## Local (Stdio) Setup ### Using Command Palette (Recommended) 1. Press `Cmd/Ctrl+Shift+P` 2. Run **MCP: Add Server** 3. Choose **Workspace** or **Global** scope 4. Paste configuration and edit with IntelliSense ### Using CLI ```bash # Add local stdio server code --add-mcp '{ "name": "ibmiMcp", "type": "stdio", "command": "npx", "args": ["-y", "@ibm/ibmi-mcp-server@latest", "--tools", "/absolute/path/to/tools"], "env": { "DB2i_HOST": "your-ibmi-host.com", "DB2i_USER": "your-username", "DB2i_PASS": "your-password", "DB2i_PORT": "8076", "MCP_TRANSPORT_TYPE": "stdio" } }' ``` ### Using mcp.json Create or edit `mcp.json`: ```json { "servers": { "ibmiMcp": { "type": "stdio", "command": "npx", "args": ["-y", "@ibm/ibmi-mcp-server@latest", "--tools", "/absolute/path/to/tools"], "env": { "DB2i_HOST": "your-ibmi-host.com", "DB2i_USER": "your-username", "DB2i_PASS": "your-password", "DB2i_PORT": "8076", "MCP_TRANSPORT_TYPE": "stdio" } } } } ``` <Warning> **Important**: The `--tools` path must be an **absolute path**. </Warning> <Info> **Security**: On first start, VSCode will prompt you to trust the MCP server. Only trust servers from reliable sources as they can execute code on your machine. </Info> ## Remote (HTTP/SSE) Setup VSCode supports both HTTP and SSE (Server-Sent Events) transport for remote servers. ### Using CLI ```bash # Add remote HTTP server code --add-mcp '{ "name": "ibmiMcp", "type": "http", "url": "http://localhost:3010/mcp", "headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN_HERE" } }' ``` ### Using mcp.json <Tabs> <Tab title="HTTP Transport"> ```json { "servers": { "ibmiMcp": { "type": "http", "url": "http://localhost:3010/mcp", "headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN_HERE" } } } } ``` </Tab> <Tab title="SSE Transport"> ```json { "servers": { "ibmiMcp": { "type": "sse", "url": "http://localhost:3010/mcp", "headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN_HERE" } } } } ``` <Info> **SSE (Server-Sent Events)**: Alternative to HTTP transport for real-time server updates. Use when your server supports SSE protocol. </Info> </Tab> </Tabs> ## Secure Credentials with Variables VSCode supports multiple variable types for secure credential management and flexible configurations: ### Input Variables Prompt users for sensitive data at runtime: ```json { "inputs": [ { "id": "db2iHost", "type": "promptString", "description": "IBM i DB2 host address" }, { "id": "db2iUser", "type": "promptString", "description": "IBM i username" }, { "id": "db2iPass", "type": "promptString", "description": "IBM i password", "password": true } ], "servers": { "ibmiMcp": { "type": "stdio", "command": "npx", "args": ["-y", "@ibm/ibmi-mcp-server@latest", "--tools", "/absolute/path/to/tools"], "env": { "DB2i_HOST": "${input:db2iHost}", "DB2i_USER": "${input:db2iUser}", "DB2i_PASS": "${input:db2iPass}", "DB2i_PORT": "8076", "MCP_TRANSPORT_TYPE": "stdio" } } } } ``` <Tip> VSCode will prompt for these values when the server starts, keeping credentials secure and out of version control. </Tip> ### Built-in Variables Use VSCode's built-in variables for dynamic paths: - **`${workspaceFolder}`** - Absolute path to the workspace root - **`${env:VAR_NAME}`** - Environment variable value - **`${userHome}`** - User's home directory path **Example:** ```json { "servers": { "ibmiMcp": { "type": "stdio", "command": "npx", "args": ["-y", "@ibm/ibmi-mcp-server@latest", "--tools", "${workspaceFolder}/tools"], "env": { "DB2i_HOST": "${env:IBM_HOST}", "DB2i_USER": "${env:IBM_USER}", "DB2i_PASS": "${env:IBM_PASS}" } } } } ``` <Tip> **Best Practice**: Use `${workspaceFolder}` for tools paths in team configs so they work regardless of where teammates clone the repo. </Tip> ## Managing Servers ### List All Servers 1. Open Command Palette (`Cmd/Ctrl+Shift+P`) 2. Run **MCP: List Servers** 3. View all configured servers with status ### View Servers in Chat - Open the **Copilot Chat** view in the Activity Bar - Look for MCP servers listed in the chat interface - Click the MCP indicator to see available tools ### Restart Server **Method 1 - Command Palette:** 1. Press `Cmd/Ctrl+Shift+P` 2. Run **MCP: Restart Server** 3. Select your server from the list **Method 2 - Extensions View:** - Right-click server in Extensions view - Select "Restart" ### Autostart Servers (Experimental) Enable automatic server startup: 1. Open VSCode Settings 2. Search for `chat.mcp.autostart` 3. Enable the setting ### Disable Server Remove or comment out the server entry in `mcp.json` ## Testing the Connection After configuration: 1. **Reload VSCode**: `Cmd/Ctrl+Shift+P` → "Developer: Reload Window" 2. **Open Copilot Chat**: Click the chat icon in Activity Bar 3. **Check MCP status**: Look for MCP indicator in Copilot Chat 4. **List tools**: Ask "@mcp what tools are available?" 5. **Test a tool**: Ask "Show me the IBM i system status" ## Troubleshooting <AccordionGroup> <Accordion title="MCP Server Not Appearing"> **Solutions**: - Verify JSON syntax in `mcp.json` - Reload VSCode window: `Cmd/Ctrl+Shift+P` → "Developer: Reload Window" - Check Copilot is installed and enabled - Verify GitHub Copilot subscription is active - Look for errors in Output panel: View → Output → "MCP" </Accordion> <Accordion title="Server Fails to Start"> **Solutions**: - Verify `npx -y @ibm/ibmi-mcp-server@latest` works from terminal - Check all paths are absolute - Ensure IBM i credentials are correct - Review VSCode Developer Tools: Help → Toggle Developer Tools </Accordion> <Accordion title="Authentication Failed (Remote)"> **Solutions**: - Verify remote server is running - Check token is valid and not expired - Ensure correct Authorization header format - Get fresh token: `node get-access-token.js --verbose` </Accordion> <Accordion title="Input Variables Not Prompting"> **Solutions**: - Ensure `inputs` array is at root level of `mcp.json` - Verify `${input:id}` syntax is correct - Restart VSCode completely - Check that input IDs match between definition and usage </Accordion> </AccordionGroup> ## Advanced Configuration ### Team Workspace Setup Share MCP configuration with your team via `.vscode/mcp.json`: ```json { "inputs": [ { "id": "db2iHost", "type": "promptString", "description": "IBM i host (e.g., dev-ibmi.company.com)", "default": "dev-ibmi.company.com" }, { "id": "db2iUser", "type": "promptString", "description": "Your IBM i username" }, { "id": "db2iPass", "type": "promptString", "description": "Your IBM i password", "password": true } ], "servers": { "ibmiMcp": { "type": "stdio", "command": "npx", "args": ["@ibm/ibmi-mcp-server@latest", "-y", "--tools", "${workspaceFolder}/tools"], "env": { "DB2i_HOST": "${input:db2iHost}", "DB2i_USER": "${input:db2iUser}", "DB2i_PASS": "${input:db2iPass}", "DB2i_PORT": "8076", "MCP_TRANSPORT_TYPE": "stdio" } } } } ``` ### Multiple Environments Configure dev and prod servers: ```json { "servers": { "ibmi-dev": { "type": "stdio", "command": "npx", "args": ["@ibm/ibmi-mcp-server@latest", "-y", "--tools", "/path/to/dev-tools"], "env": { "DB2i_HOST": "dev-ibmi.company.com", "DB2i_USER": "${input:devUser}", "DB2i_PASS": "${input:devPass}", "MCP_TRANSPORT_TYPE": "stdio" } }, "ibmi-prod": { "type": "http", "url": "https://prod-mcp.company.com/mcp", "headers": { "Authorization": "Bearer ${env:PROD_MCP_TOKEN}" } } } } ``` ### Custom Toolsets Load specific toolsets for different workflows: ```json { "servers": { "ibmi-performance": { "type": "stdio", "command": "npx", "args": [ "@ibm/ibmi-mcp-server@latest", "-y", "--tools", "/path/to/tools", "--toolsets", "performance,monitoring" ], "env": { "DB2i_HOST": "your-ibmi-host.com", "DB2i_USER": "${input:db2iUser}", "DB2i_PASS": "${input:db2iPass}", "MCP_TRANSPORT_TYPE": "stdio" } } } } ``` ## Next Steps <CardGroup cols={2}> <Card title="SQL Tools" icon="database" href="/sql-tools/overview"> Create custom SQL tools for your workflows </Card> <Card title="Configuration" icon="gear" href="/configuration"> Explore all configuration options </Card> <Card title="Authentication" icon="lock" href="/configuration#ibm-i-authentication-settings"> Set up secure IBM i authentication </Card> <Card title="Other Clients" icon="grid" href="/clients/overview"> Explore other MCP-compatible clients </Card> </CardGroup> ## Additional Resources - [VSCode MCP Documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers) - [GitHub Copilot Marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - [IBM i MCP Quick Start](/quickstart)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/IBM/ibmi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server