From 821208475c0ec27066f1db8d82a19d2f31836bd3 Mon Sep 17 00:00:00 2001 From: Conor Teichroeb <103473932+ConJayTech@users.noreply.github.com> Date: Tue, 9 Sep 2025 11:44:36 -0700 Subject: [PATCH] Github Copilot Setup Adds sections to Setup Guide for Github Copilot --- .gitignore | 3 ++ docs/MCP/Getting Started/Setup-Guide.mdx | 53 ++++++++++++++++++++++- static/img/MCP/MCP-tools.png | Bin 0 -> 19518 bytes 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 static/img/MCP/MCP-tools.png diff --git a/.gitignore b/.gitignore index 342e863f..6f3b8548 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# MCP +/.vscode + # Dependencies /node_modules diff --git a/docs/MCP/Getting Started/Setup-Guide.mdx b/docs/MCP/Getting Started/Setup-Guide.mdx index 935f513c..2e3d5451 100644 --- a/docs/MCP/Getting Started/Setup-Guide.mdx +++ b/docs/MCP/Getting Started/Setup-Guide.mdx @@ -4,6 +4,8 @@ pagination_prev: null --- import MCPDevSettings from '@site/static/img/MCP/MCP-Dev-Settings.png'; +import MCPTools from '@site/static/img/MCP/MCP-tools.png'; + # Setup Guide @@ -56,7 +58,7 @@ Then you can open **Claude Desktop → Settings → Developer → Edit Config** This will open a JSON config file, to which you can add the MCP servers: -```json +```json title="claude_desktop_config.json" { "mcpServers": { "iqm-mcp-1": { @@ -89,10 +91,57 @@ Once the JSON config file is saved, you can quit and restart Claude desktop. On
+### GitHub Copilot Setup + +IQM MCP also supports [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) integration. To set this up, follow these steps: + +##### 1. Configure MCP servers + +Create a **.vscode** folder in your project and create an **mcp.json** file in that folder. Use this configuration as a template: + +```json title=".vscode/mcp.json" +{ + "servers": { + "iqm-mcp-1": { + "type": "stdio", + "command": "/Users//.local/bin/mcp-proxy", + // The above command value is your mcp-proxy path where is your actual system name + "args": [ + "--transport", "streamablehttp", + "http://maas-dashboard.data.stage.iqm//mcp" + // is a placeholder for actual MCP servers + ] + }, + "iqm-mcp-2": { + // Additional server blocks can be added like this + "type": "stdio", + "command": "/Users//.local/bin/mcp-proxy", + "args": [ + "--transport", "streamablehttp", + "http://maas-dashboard.data.stage.iqm//mcp" + ] + } + } + } +``` + +##### 2. Open GitHub Copilot + +Now open GitHub Copilot and you will see the MCP servers you configured in the list of available servers. Ensure that you are in Agent mode, not Ask mode. + +:::warning[NOTE] + +You may need to de-select some tools for Github Copilot to be able to make a succesful request, as it only allows 128 tools at a time. + +
+ +::: + + ## Use IQM MCP! You are now ready to use IQM MCP! -Once you've restarted Claude Desktop and ask to access IQM's API, Claude will prompt you for your authentication credentials. You will need to provide your Organization Worskpace ID, a bearer token, and Workspace URL. See [Sign Up and Authenticate](/Quickstart%20Guides/Authentication-Quickstart-Guide/) for more information. +Once you've restarted Claude Desktop (or GitHub Copilot) and ask to access IQM's API, you will be prompted for your for your authentication credentials. You will need to provide your Organization Worskpace ID, a bearer token, and Workspace URL. See [Sign Up and Authenticate](/Quickstart%20Guides/Authentication-Quickstart-Guide/) for more information. Next, you can check out the [MCP Actions](/MCP/MCP%20Actions/) collection to see some example prompts and supported actions. diff --git a/static/img/MCP/MCP-tools.png b/static/img/MCP/MCP-tools.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6d129e514bec70d3a6e816b36e77ff2093b737 GIT binary patch literal 19518 zcmc({2{_dI`#(H(Dotrok)=eP7NSs=QRzsM)2b{pq{Au8kjhNMjHO7*TFH{>v^nQE zOeG=1kUh(^8X|+ikeCg#n3>Q2{qg;t^ONU){jcYFuIIX*t3osL`F!s8ec$hUdEKwK z#9t0OX)ai^0D(YgIv;R6ia;nn06#aVtHQ4=HZMRR4yiah?m3QA7_U}(V08L!0}qOr zxYg8}f5FACD7gF8fB&AlnRoXfCC}Vq-GumZ>G>;96Kn!MQ|w24Q!F7>1}0)FN%|M3 zU8XmgfvH(&?z-OH`_ktV|M?<=xap?60qI*)`IZ!X-PYSj5!Fv!*Dp9CcH=J)>=MpA zic2dfdj0LM|9p`{&-Sc*{A`h`VeV5tc`$)OOP;YCX`b==_lDk6P=fL%-`^m z&UyXPXOe-E!J)q83Xc^ulo30^6;_pf1U+D6;f_XToU4Abv4a# z2-U2=EpyHdr=X1BY*)nf&C3tKve-?OXU@5)T;F0M>0`3$ zs`~$|3jBmhRd8O_?~gDt)KIts8Bv~}3Z*f>=+6}fQd4-P@T^8vVX-ePOa#!Yknm2f zH&>gav$;Pj9PVH8J+XnTLIKv#%2YYeJ2jvv@J#O%*TNu7TX zOKcwfT+{sUvqRv4SiQAj|CkLJ5OPa*P;`jaT$dXAmXwYx6WY(YQUW!v>Q;A%S#W?AuOgJR4j8NaC_B<$$IM-Q31aClb9M0- z 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