# Copilot näkee työtilasi. Maguyva kartoittaa repon.

Canonical source: https://maguyva.ai/fi/for-vscode

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

VS Code -editorin agentti lukee liittämäsi tiedostot ja ne, jotka se löytää itse. Maguyva indeksoi koko repon ja tarjoilee sen MCP:n kautta, joten agentti kysyy ennen muokkausta, missä symboli on ja kuka sitä kutsuu.

> Yksi servers-merkintä tiedostossa .vscode/mcp.json: URL ja Authorization-otsake.

## Mitä VS Code -editorin pitää tietää

Neljä VS Code -editoria koskevaa faktaa.

### .vscode/mcp.json

Palvelimet kuuluvat avaimen `servers` alle, eivät avaimen `mcpServers`. Kaikkia työtiloja varten aja `MCP: Open User Configuration` ja lisää sama merkintä profiilisi tiedostoon `mcp.json`.

### type: http

VS Code yhdistää Maguyva-päätepisteeseen Streamable HTTP:llä ja vaihtaa SSE:hen vain, jos palvelin ei tue sitä. Paikallisesti ei ajeta mitään.

### Viittaus ympäristömuuttujaan

Otsake on `Bearer ${env:MAGUYVA_API_KEY}`, jonka VS Code ratkaisee ympäristöstä, jossa se käynnistettiin, joten avain pysyy poissa committaamastasi tiedostosta. Haluatko mieluummin kehotteen? Syötemuuttuja kysyy avaimen kerran ja tallentaa sen.

### Workspace Trust

Tiedoston `.vscode/mcp.json` palvelimet käynnistyvät ilman erillistä kysymystä, kun luotat työtilaan, eivätkä koskaan rajoitetussa tilassa. Chatin syöttökentän Configure Tools kytkee yksittäiset työkalut päälle tai pois.

## Mukautetut ohjeet ovat työskentelysopimus. Käytä niitä.

```text
# .github/copilot-instructions.md
- Aja npm test ennen kuin julistat muutoksen valmiiksi.
- Älä koskaan muokkaa src/gen/-hakemiston generoituja tiedostoja.
```

VS Code lukee koko projektin ohjeet tiedostosta `.github/copilot-instructions.md` tai `AGENTS.md` ja kohdennetut ohjeet `.github/instructions/*.instructions.md`-tiedostoista, joissa on `applyTo`-kuvio. Käytä niitä näihin:

- Build-, testi- ja lint-komennot.
- Käytännöt, jotka agentti tekee yhä uudelleen väärin.
- Kansiot, joihin agentin ei pidä koskea.

Ohjeet kertovat agentille, miten työskennellä. Ne eivät voi kertoa, mitkä neljästätuhannesta tiedostosta tuovat tyypin, jonka se on nimeämässä uudelleen.

## Missä näkymä työtilaan loppuu

Kolme asiaa, joita agentti ei opi avoimista tiedostoistaan.

### // liitetty ei ole kaikki

Agentti työskentelee sillä, mitä liität, ja sillä, mitä sen haut palauttavat. Toisen paketin kutsuja, joka hajoaa muutoksen jälkeen, ei ollut kummallakaan listalla.

### // tekstiosuma ei ole viittaus

Työtilan haku löytää merkkijonon. Se ei erota oikeaa kutsua kommentista, mockista tai toisen luokan samannimisestä metodista.

### // jokainen luku maksaa kontekstia

Jokainen tiedosto, jonka agentti avaa suunnistaakseen, kuluttaa kontekstia, jota se tarvitsee muutokseen. Yksi järjestetty vastaus file:line-muodossa maksaa vähemmän kuin kymmenen tutkivaa lukua.

## Maguyva MCP-palvelimena VS Code -editorissa

Yksi servers-merkintä antaa agentille:

- **11 työkalua indeksoituun repoosi**: semanttinen, rakenteellinen (AST-), graafi- ja tekstihaku sekä symbolihaku, riippuvaiset ja tiedostojen haku.
- **Vastaukset tiedostopoluilla ja rivinumeroilla**: yli 285 kielellä, joten agentti avaa oikean tiedoston heti.
- **Työkalut, jotka vain lukevat**: Maguyva-työkalut kyselevät indeksiä. Mikään niistä ei muokkaa tiedostojasi, joten jokainen hyväksyntä koskee lukemista, ei kirjoittamista.

> VS Code antaa agentille *työtilasi*.
> Maguyva antaa agentille *kartan reposta*.

## Kaksi työnkulkua

Kysy ensin kartalta, muokkaa sitten.

### 01. Löydä testit ennen jäsentimen muuttamista

```text
vscode agent> mitkä testit kulkevat parseConfigin kautta?

dependency_search("parseConfig", dependents)
  tests/config/parse.test.ts:12
  tests/cli/flags.test.ts:88

→ Muutoksen jälkeen agentti ajaa nämä kaksi tiedostoa, ei koko testisarjaa.
[exit 0]
```

Vastaus nimeää kaksi testitiedostoa, jotka ulottuvat jäsentimeen, joten agentti tarkistaa muutoksen siellä, missä se voi hajota.

### 02. Mitoita uudelleennimeäminen ennen ensimmäistä muutosta

```text
vscode agent> nimeä OrderStatus.PENDING uudelleen nimellä OrderStatus.QUEUED

find_symbol("OrderStatus", references)
  23 viittausta 9 tiedostossa

→ Agentti suunnittelee yhden kierroksen yhdeksän tiedoston läpi.
[exit 0]
```

Viittausten määrä tulee ennen muutosta, ei vasta tyyppitarkistuksen kaaduttua.

## Käyttöönotto VS Code -editorissa

Kolme vaihetta. Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei luottokorttia.

### 01. Indeksoi repo osoitteessa maguyva.ai

Valitse jo tuntemasi repo, jotta voit arvioida vastauksia.

### 02. Lisää Maguyva tiedostoon .vscode/mcp.json

`.vscode/mcp.json`

```json
{
  "servers": {
    "maguyva": {
      "type": "http",
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Aseta avain ja käynnistä palvelin

Aseta `MAGUYVA_API_KEY` ympäristöön, josta käynnistät VS Code -editorin, ja käynnistä palvelin merkinnän yläpuolella olevasta code lensistä. Kysy agentilta yksi kysymys, jonka vastauksen jo tiedät.

VS Code -editorin [MCP-dokumentaatio](https://code.visualstudio.com/docs/agent-customization/mcp-servers) kattaa syötemuuttujat, siirrettävän .mcp.json-muodon ja palvelimiin luottamisen.

## Indeksoi yksi repo, jonka jo tunnet.

Yhdistä VS Code MCP:n kautta ja kysy yksi kysymys, jonka voit tarkistaa.
