- MCP standardiserar kopplingen mellan GitHub Copilot och externa verktyg inom Visual Studio.
- MCP-servrar konfigureras med .mcp.json- eller mcp.json-filer och kan vara lokala eller fjärrstyrda.
- Visual Studio hanterar livscykeln, behörigheterna och autentiseringen av MCP-verktyg för att upprätthålla säkerheten.
- Servrar som GitHub, Azure MCP eller SQL körs ovanpå MCP för att erbjuda avancerade åtgärder direkt från IDE:n.
Om du arbetar med GitHub Copilot och Visual Studio har du förmodligen hört talas om Modellkontextprotokoll, eller MCPMen du kanske ännu inte är säker på hur du får ut det mesta av det inom IDE:n. MCP är standarden som gör det möjligt för AI-agenter att kommunicera med externa verktyg som repositorier, databaser eller Azure-tjänster utan att behöva skapa anpassade integrationer varje gång.
I den här artikeln ska vi ta en lugn titt Hur man använder MCP-servrar i Visual Studio, hur de är konfigurerade, var de deklareras, vilken roll filerna spelar .mcp.json y mcp.jsonoch hur de integreras med GitHub Copilots agentläge. Du får också se praktiska exempel med GitHub MCP-servrar, Azure DevOps, Azure MCP Server, SQL-servrar och till och med hur man styr MCP-användningen på organisationsnivå.
Vad är MCP och varför är det viktigt i Visual Studio?
Modellkontextprotokollet är ett öppen standard som definierar hur en AI-klient (som GitHub Copilot i Visual Studio) ansluter till och kommunicerar med externa verktyg och tjänster. Istället för att varje tillägg ska uppfinna sitt eget sätt att integrera, förenar MCP meddelandeformatet, hur verktyg upptäcks och hur de anropas.
I praktiken betyder det det Visual Studio fungerar som en MCP-klient och ansluter till en eller flera MCP-servrar. Varje MCP-server exponerar en samling väldefinierade verktyg: från filsystemsoperationer till databashantering, arbete med Azure DevOps, SQL-frågor eller åtkomst till specialiserade webbtjänster.
För GitHub Copilot representerar MCP en enorm förbättring jämfört med agentlägeIstället för att bara generera kod kan agenten använda dessa MCP-verktyg för att utföra verkliga åtgärder: skapa eller granska pull requests, lista problem, interagera med Azure-resurser, köra databasfrågor etc., allt inifrån själva kodningsarbetsflödet.
Den stora fördelen är att det är standardiserat, Du behöver inte en specifik integration för varje verktyg.Lägg bara till en ny MCP-server i konfigurationen så kan agenten börja använda sina verktyg, förutsatt att du ger den behörighet att göra det.
Förutsättningar för att använda MCP-servrar i Visual Studio
Innan du börjar måste du uppfylla vissa krav. minimikrav för miljön så att Visual Studio kan fungera med MCP och Copilots agentläge.
Å ena sidan är det nödvändigt att ha Visual Studio 2026 eller Visual Studio 2022 Börja med version 17.14, helst med den senaste underhållsversionen installerad, eftersom det är här de senaste MCP-relaterade funktionerna är integrerade. Utan denna grund kommer många av de alternativ du ser helt enkelt inte att visas.
Dessutom måste du ha GitHub Copilot aktiverad i Visual Studio och åtkomst till agentläge. I företagsmiljöer beror denna punkt på de policyinställningar som definierats av administratören i GitHub Copilot-instrumentpanelen (särskilt i Business- eller Enterprise-prenumerationer).
I vissa specifika fall, till exempel när du vill arbeta med Azure MCP-server Eller med MCP-servrar som förlitar sig på Azure CLI måste du ha lämplig .NET installerad, Azure-verktygen (traditionell CLI eller Developer CLI) och tillräckliga behörigheter i den Azure-prenumeration du kommer att använda.
Söka efter och välja kompatibla MCP-servrar
När din miljö är förberedd är nästa steg att hitta Vilka MCP-servrar vill du ansluta till Visual Studio?Ekosystemet växer mycket snabbt, så det är en bra idé att konsultera officiella källor.
Den viktigaste referenspunkten är officiellt register eller arkiv för MCP-servrarDär hittar du servrar som underhålls av leverantörerna själva (GitHub, Azure, etc.) såväl som bidrag från communityn. Du ser servrar som specialiserar sig på filåtkomst, arkivhantering, SQL-databaser, webbtjänster, integrationer med designverktyg som Figma, testsystem som Playwright och mer.
Eftersom MCP fortfarande är relativt nytt, Serverlistan utökas ständigtDet är vanligt att konsultera serverns repository på GitHub för att granska den rekommenderade konfigurationen, anslutningsparametrarna och funktionerna som exponeras av varje MCP-verktyg.
Dessutom främjar GitHub användningen av hanterade MCP-posterdär organisationer kan publicera och kontrollera vilka servrar som är auktoriserade för deras användare. Detta integreras med Copilot-policyer, vilket gör att du kan begränsa installationen av MCP-servrar till de som deklarerats i ett eller flera godkända register.
Sätt att lägga till en MCP-server i Visual Studio
Visual Studio erbjuder flera sätt att Lägg till MCP-servrar i din miljö, för att anpassa sig till både enkla scenarier och mer avancerade konfigurationer som styrs av JSON-filer.
Det mest direkta sättet, när det är möjligt, är att Installera MCP-servern direkt från webbenFrån och med den senaste underhållsversionen av Visual Studio 17.14 kommer du att se "Installera"-knappar på sidorna för vissa MCP-servrar. Med ett klick installeras servern och associeras med din Visual Studio-instans utan att du behöver redigera några filer manuellt.
Ett annat bekvämt alternativ är att lägga till en server från själva Copilot-chattfönstretI chattverktygsväljaren hittar du en knapp för att lägga till (den klassiska gröna ikonen med plussymbolen). Om du klickar på den kommer Visual Studio att ange servernamnet och anslutningsinformationen: detta kan vara en HTTP-URL för SSE-transport eller kommandot och argumenten för transport. stdio.
Om din organisation arbetar med GitHub MCP-serverregisterDu kan också gå till menyn Tillägg > MCP-register… i Visual Studio. Från den hanteraren ser du de servrar som publicerats i det konfigurerade registret; du behöver bara välja den du vill ha och klicka på "Installera" för att aktivera den i din IDE.
För finare eller delade teamkonfigurationer är den mest flexibla metoden redigera MCP-konfigurationsfilen i JSON-format, vilket kan kallas .mcp.json o mcp.json beroende på plats. Det är där du deklarerar servrarna, deras transporttyp, startkommandon, miljövariabler etc.
Konfigurera MCP-servrar med .mcp.json
Det mest robusta sättet att hantera MCP-servrar i Visual Studio är via JSON-konfigurationsfilerDessa filer beskriver på ett strukturerat sätt vilka servrar som är tillgängliga, hur de startas och vilken transport de använder.
Ett mycket vanligt exempel är att konfigurera GitHub MCP-server i roten av en lösning. För att göra detta kan du skapa en fil i <SOLUTIONDIR>\.mcp.json in %USERPROFILE%\.mcp.jsonoch använd Visual Studio för att redigera den, så att du har hjälp med schema- och syntaxvalidering.
I filen skulle du lägga till en struktur med ett avsnitt servers som innehåller ett objekt för varje server. Till exempel, för GitHub kan du inkludera en server som heter "github" med en fjärr-URL liknar https://api.githubcopilot.com/mcp/Därifrån identifierar Visual Studio servern, hanterar det initiala handskakningsprotokollet och frågar dess verktyg.
När filen har sparats kommer du att se ett [saknat ord] ovanför serverdefinitionen i redigeraren. "Autentisering krävs" CodeLensGenom att klicka på den prompten öppnas inloggningsflödet med ditt GitHub-konto för att ge åtkomst till MCP-servern. Det är viktigt att se till att CodeLens är aktiverat i Verktyg > Alternativ > Textredigerare > CodeLens för att kunna utnyttja denna bekvämlighet.
Efter autentisering kan du gå till Copilot-chatten, ändra läget till Recensioner I rullgardinsmenyn längst ner väljer du de MCP-serververktyg du vill använda (till exempel verktyget "Lista problem"). När du skickar ett meddelande som "Lista de problem som tilldelats mig på GitHub" kommer Copilot att be om tillstånd att använda motsvarande verktyg.
Var mcp.json-filerna ska placeras för automatisk detektering
Visual Studio utför en Automatisk sökning efter MCP-konfigurationsfiler på olika platser, vilket gör att du kan ha globala användarinställningar, specifika för varje lösning, eller till och med delade med andra redigerare som VS Code eller Cursor.
Först konsulterar man %USERPROFILE%\.mcp.jsonvilket fungerar som en global MCP-serverkonfiguration för en användare. Alla servrar som deklareras där kommer att vara tillgängliga i alla lösningar du öppnar med Visual Studio.
Sedan kontrolleras det <SOLUTIONDIR>\.vs\mcp.jsonDetta är en konfiguration som är specifik för en viss lösning och användare. Den är användbar när du vill att vissa servrar bara ska laddas när en specifik lösning öppnas, utan att påverka resten.
Nästa viktiga plats är <SOLUTIONDIR>\.mcp.jsonDetta används vanligtvis när du vill att MCP-konfigurationen ska följa med repository och styras av källkontrollsystemet (till exempel Git). Detta gör att hela teamet kan dela samma serverdefinition.
Vägar riktade mot andra förlag övervägs också, såsom <SOLUTIONDIR>\.vscode\mcp.json o <SOLUTIONDIR>\.cursor\mcp.jsonDessa filer är vanligtvis länkade till arkivet eller arbetsmappen, men i många fall är de undantagna från versionshantering för att hålla dem lokala.
Det är viktigt att komma ihåg att vissa av dessa rutter kräver namnet .mcp.json och andra mcp.json utan utgångspunkten så Det är viktigt att respektera det önskade namnet exakt. i varje mapp så att Visual Studio och andra miljöer kan identifiera filen korrekt.
MCP-serverkonfiguration och redigeringsformat
MCP-konfigurationsfilerna följer specifikation av själva protokolletvilket säkerställer att olika klienter (Visual Studio, VS Code, etc.) kan tolka dem utan tvetydighet.
I huvudsak innehåller varje fil ett huvudobjekt med en egenskap serversInom definieras en servermatris eller ett objekt, där varje server innehåller minst en namn, transporttyp och anslutningsmetodDenna anslutning kan vara fjärransluten, med hjälp av en URL och inloggningsuppgifter, eller lokal, med hjälp av ett kommando som startas av stdio.
På lokala servrar är det mycket vanligt att anropa verktyg via pakethanterareDu kan till exempel använda ett kommando som npx -y @azure/mcp@latest server start för att starta Azure MCP Server, eller använd docker run med en avbildning som implementerar en specifik MCP-server. Visual Studio respekterar exakt det kommando du deklarerar, vilket gör att du kan ange versioner eller lägga till flaggor som du vill.
När du väl har en fil mcp.json i arkivet och vill att den ska visas i Solution Explorer kan du lägg till det i lösningselementen för att enkelt redigera den från IDE:n. Varje gång du sparar filen med giltig syntax startar GitHub Copilot-agenten om och laddar om listan över konfigurerade servrar, och tillämpar ändringarna direkt.
Detta deklarativa sätt att hantera servrar ger dig en mycket fin kontroll över MCP-miljönvilket gör att du kan reproducera samma konfiguration på olika maskiner och dela den med resten av utvecklingsteamet.
MCP-verktygens livscykel i Visual Studio
När Visual Studio upptäcker närvaron av en MCP-server, a väldefinierad livscykel för verktyg som servern exponerar. Denna sekvens säkerställer säkerhet och konsekvens varje gång servrar läggs till, ändras eller tas bort.
Det första Visual Studio gör när den hittar en server är initiera den med hjälp av ett länkprotokolldär de kan se listan över tillgängliga verktyg. Sedan prenumererar kunden på evenemanget. notifications/tools/list_changed definierad av MCP, så att den kan reagera när servern lägger till eller ändrar verktyg.
Närhelst händelsen utlöses, Visual Studio återställer eventuell tidigare auktorisation beviljas dessa verktyg (för att förhindra "rug-pull"-attacker, där ett verktyg ändrar sitt beteende mitt i spelet), begär den listan över verktyg igen, justerar deras antal och uppdaterar gränssnittet i realtid.
När servern är aktiverad exponerar Copilot-agenten alla verktyg i gränssnittet, men lämnar dem inaktiverade som standardDet är användaren som manuellt måste aktivera de verktyg de vill tillåta, för att behålla explicit kontroll över vilka funktioner som kan köras.
Om du bestämmer dig Ta bort en MCP-server Om du ändrar konfigurationen stoppar Visual Studio omedelbart den associerade processen och tar bort alla dess verktyg från gränssnittet. På samma sätt, om du redigerar en serverdefinition (till exempel genom att ändra kommandot, URL:en eller miljövariablerna), avslutar IDE:n den aktuella processen, startar om den med den nya konfigurationen och frågar om de nödvändiga verktygen.
Godkännandehantering och verktygssäkerhet
Varje gång Copilot-agenten anropar ett MCP-verktyg introducerar Visual Studio en explicit bekräftelselager för att säkerställa att du är medveten om vad verktyget kommer att göra. Detta är särskilt viktigt eftersom många av dem kan modifiera lokala filer eller fjärrdata.
Efter ett verktygsanrop ser du en rullgardinsmeny för i chattpanelen tillåta eller bekräfta framtida körningarDu kan bestämma att verktyget endast godkänns vid det tillfället, att det självgodkänner under hela den aktuella sessionen, att det är giltigt för den aktiva lösningen, eller till och med att det är auktoriserat för alla framtida anrop i din miljö.
Om du vill när som helst återställ alla bekräftelsebeslutDu kan göra detta från dialogrutan Visual Studio-alternativ, i avsnittet GitHub > Copilot > VerktygDärifrån rensas behörighetshistoriken, och från och med det ögonblicket kommer Copilot att be om din bekräftelse igen när varje verktyg används.
Parallellt stöder Visual Studio Autentisering för fjärr-MCP-servrar med valfri OAuth-leverantörförutsatt att servern följer MCP-auktoriseringsspecifikationen. Detta är utöver den traditionella integrationen med IDE:ns nyckelring. För att hantera autentisering för en specifik server kan du återigen använda CodeLens på filen .mcp.jsongenom att välja alternativet för att hantera autentisering och slutföra inloggningen i webbläsarfönstret.
Denna design av detaljerade behörigheter och enhetlig autentisering minimerar risken för missbruk av MCP-verktyg, samtidigt som du upprätthåller en relativt smidig upplevelse när du väl har beviljat lämpliga behörigheter.
Tillåtna listor över MCP-servrar på organisationsnivå
I företagsmiljöer räcker det inte att utvecklaren vill använda en MCP-server; reglerna måste också respekteras. organisationens säkerhets- och efterlevnadspolicyerDet är här tillåtelselistorna som hanteras av GitHub kommer in i bilden.
När en tillåtelselista för MCP aktiveras i organisationen, Endast godkända MCP-servrar kan användasOm du försöker ansluta till en server som inte finns med i listan visar Visual Studio ett felmeddelande som anger att företagspolicyn inte tillåter användning av den servern.
I så fall är enda utvägen kontakta organisationsadministratören att begära att servern läggs till i det tillåtna registret eller åtminstone att bekräftelse ges på vilka MCP-servrar som är auktoriserade. Detta är avgörande när ditt företag vill förhindra att känsliga data läcks ut till okontrollerade externa tjänster.
Dessa policyer gör det möjligt för administratörer att kontrollera vilka servrar som kan behandla konfidentiell informationUpprätthåll regelefterlevnad gällande databehandling och centralisera beslut om vilka AI-integrationer som är auktoriserade i utvecklingsteam.
I praktiken börjar många organisationer som använder GitHub Copilot Enterprise med att konfigurera en policy som inaktiverar MCP helt för alla användare och sedan vidta gradvisa steg för att aktivera utvalda servrar via ett privat, självhostat eller tjänstebaserat MCP-register, till exempel Azure API Center, även om dokumentationen fortfarande kräver viss förkunskap om MCP-register.
Använda MCP-instruktioner, mallar och resurser
Förutom verktyg kan MCP-servrar tillhandahålla fördefinierade instruktioner och strukturerade resurser så att språkmodeller kan arbeta med mer kontext och mindre friktion.
MCP-instruktionerna är i grunden återanvändbara meddelandemallar För återkommande uppgifter kan du i Copilot-chatten använda knappen "+ Lägg till referens", välja kategorin "Vägbeskrivningar > MCP-vägbeskrivningar" och välja en riktning som erbjuds av servern. Vissa inkluderar anpassningsbara argument som du kan slutföra innan du lägger till dem i konversationen.
Ett typiskt exempel är GitHubs MCP-server, som erbjuder meddelanden förberedda för analysera pull requests, generera bekräftelsemeddelanden för commit eller granska kodändringarDetta snabbar upp arbetsflödet eftersom du inte behöver skriva varje komplex prompt från grunden.
MCP-resurser, för sin del, tillhandahåller rik kontext till modellenDessa kan vara kodfiler, databasscheman, affärsdata eller applikationsspecifik information. Varje resurs identifieras av en unik URI och kan refereras till i Copilot-chatten med hjälp av en hashtag (#) följt av den URI:n.
När man arbetar med resursmallar med argumentDu kan använda dialogrutan "+ Lägg till referens" igen, men den här gången i avsnittet "MCP-resurser". Där väljer du resursen, fyller i nödvändiga parametrar (till exempel en arbetsuppgiftsidentifierare eller ett komponentnamn) och infogar den i konversationen som Copilot kan använda som kontext.
Verkliga exempel inkluderar Azure DevOps MCP-servern, som exponerar resurser som arbetsuppgifter, sprintinformation eller teamkapacitetsdata för planeringsuppgifter, eller Figmas MCP-server, som ger åtkomst till designkomponenter, stilguider och layoutspecifikationer.
MCP-sampling och delegerade LLM-anrop
En annan intressant funktion hos protokollet är provtagning, vilket gör det möjligt för en MCP-server att göra språkmodellanrop åt dig för att köra mer komplexa arbetsflöden i flera steg.
När en server stöder sampling och Copilot upptäcker att den behöver en sådan operation, en bekräftelsedialogruta Innan du fortsätter kan du granska detaljerna, förstå exakt vad servern kommer att göra och godkänna eller neka åtgärden.
Detta tillvägagångssätt upprätthåller en balans mellan automatisering och kontrollServern hanterar orkestrering av LLM-anrop och mellanliggande operationer, medan du behåller det sista ordet om vad som faktiskt körs i din miljö.
Till exempel kan Playwrights MCP-server använda sampling för Generera testscenarier från DOM:en av en webbapplikation och de observerade användarflödena. Servern analyserar sidstrukturen, föreslår testfall och implementerar dem i automatiseringsskript, allt koordinerat via MCP.
Azure MCP Server: Integration med Azure-resurser
Azure MCP Server är ett av de mest kraftfulla användningsfallen för MCP, eftersom standardiserar åtkomst till Azure-resurser från AI-applikationer som GitHub Copilot, både i Visual Studio och Visual Studio Code.
Denna server distribueras i olika format, inklusive NuGet-paket och NPM-paketDen kan användas från Visual Studio eller VS Code. I båda fallen måste du vara autentiserad på Azure med ett giltigt konto och ha lämpliga behörigheter för den prenumeration där de resurser du vill manipulera finns.
Det typiska sättet att autentisera lokalt i Azure är att använda Azure CLI. Med en enkel az login Du öppnar inloggningsflödet i din webbläsare. Sedan kan du kontrollera ditt konto och din aktiva prenumeration med az account showDet är viktigt att användaren har de nödvändiga rollerna (t.ex. bidragsgivare, läsare, lagringskontobidragsgivare osv.) eftersom Azure MCP Server strikt respekterar dessa tilldelningar.
För att börja testa servern från Copilots agentläge kan du starta ett meddelande som "Lista mina Azure-resursgrupperCopilot kommer att be dig att logga in på Azure (om du inte redan har gjort det), begära behörighet att köra den specifika åtgärden och, när den har godkänts, returnera listan över resursgrupper med deras namn och region.
Därifrån kan du fortsätta utforska med meddelanden som "Lista alla lagringskonton i min prenumeration" eller ”Hämta tabellerna tillgängliga i mina lagringskonton.” Varje åtgärd kommer att gå igenom verktygets commit-flöde igen, såvida du inte väljer att alltid tillåta det, för den sessionen eller för den arbetsytan.
Exempel på en MCP SQL-server med Data API Builder
Ett annat mycket illustrativt exempel på användningen av MCP är SQL-servern baserad på Data API Builder (DAB), vilket låter dig exponera en SQL Server-databas som en MCP-server och fråga den från VS Code och GitHub Copilot.
För det här scenariot behöver du ha installerat .NET 9 eller högre och åtkomst till en instans av SQL Server 2016 eller senare, oavsett om det är en Developer-utgåva, Express-utgåva, LocalDB eller en Docker-container. Med dessa verktyg redo kan du installera Data API Builder CLI med följande kommandon. dotnet new tool-manifest, dotnet tool install microsoft.dataapibuilder y dotnet tool restore.
Det typiska arbetsflödet börjar med att skapa en exempeldatabas, till exempel ProductsDb med en Products-tabelloch fyller den med några poster. Sedan konfigurerar du en fil .env med anslutningssträngen (MSSQL_CONNECTION_STRING) och du kör dab init för att initiera servern, följt av dab add Products för att exponera tabellen som en entitet, med anonyma läsbehörigheter och en användarvänlig beskrivning.
Om du vill gå ett steg längre kan du använda dab update tillägga beskrivningar per fält (Id, Namn, Lager, Pris, Kostnad), markera primärnyckeln och förklara vad varje kolumn representerar. Detta förbättrar det sammanhang som Copilot får när frågor görs via MCP-servern.
SQL MCP Server stöder HTTP-transport (startar dab start på en terminal och ansluter till en slutpunktstyp http://localhost:5000/mcp) eller transport stdiodär VS Code direkt hanterar processen utan att öppna portar. I båda fallen deklareras serverdefinitionen i en .vscode/mcp.json, som anger namn, transporttyp och URL eller kommando.
När de väl är anslutna, enheter som Produkterna presenteras som MCP-verktyg av stilen describe_entities o read_recordsDu kan testa dem från Copilot Chat med frågor som "Vilka produkter har ett lager på färre än 30?". MCP-servern hanterar översättningen av begäran till SQL-frågor och returnerar ett strukturerat resultat.
Avancerade upplevelser: skapa anpassade MCP-servrar
Utöver att förbruka befintliga servrar är MCP utformat för att du kan skapa dina egna anpassade servrar och dela dem med resten av teamet. Det finns kompletta exempel i miljöer som Visual Studio Code, som visar hur man genererar servrar med hjälp av språk som Python.
Ett verkligt exempel handlar om att bygga en MCP-server som Samla in data från PyPI-paketmed hjälp av GitHub Copilot. Arbetsflödet inkluderar vanligtvis att konfigurera en Python-miljö, generera ett skript som frågar PyPI API:et, konvertera det skriptet till ett formellt MCP-verktyg och slutligen registrera servern med hjälp av en fil. mcp.json i VS-kod.
Praktiska sessioner visar hur man använder Copilots agentläge för att hjälpa till i varje fas av serverutvecklingen, från att utarbeta JSON-schemat till att definiera de verktygsbeskrivningar som bäst hjälper modellen att förstå vad varje operation gör.
Aspekter som Optimera verktygsbeskrivningar så att modellen väljer dem korrekt, och sätten att dela MCP-servern med andra utvecklare, antingen genom att publicera den i ett offentligt arkiv, i ett privat register eller genom att distribuera en färdig konfigurationsmall.
Allt detta visar att MCP inte bara är en standard för att konsumera verktyg, utan också en plattform för att bygga ekosystem av AI-tillägg mer transparent, återanvändbar och enklare att styra.
Slutligen, förstå hur man använder MCP-servrar i Visual Studio - från att söka och konfigurera dem i filer .mcp.jsonFrån OAuth-autentisering, verktygsgodkännanden och organisatoriska tillåtelselistor till konkreta exempel som Azure MCP Server eller SQL-servrar med Data API Builder, ger det dig en solid grund för att integrera artificiell intelligens på ett kontrollerat sätt i ditt dagliga arbetsflöde och öppna dörren till allt kraftfullare lösningar utan att förlora kontrollen över säkerhet eller utvecklingsupplevelsen.