# Jos se puhuu MCP:tä, se puhuu Maguyva-kieltä.

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

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).

Integraatio ei ole työkalukohtainen — se on protokolla. Maguyva on standardi MCP-palvelin yhdessä osoitteessa, joten mikä tahansa asiakas, jossa agenttisi toimii (Claude Code, Codex, Cursor, Gemini, Devin Desktop, Antigravity, Zed, Cline tai itse rakentamasi), saa saman kysyttävän kartan reposta. Indeksoi kerran, ja jokainen yhdistämäsi asiakas kysyy samat ankkuroidut kysymykset.

> Yksi MCP-palvelin. Jokainen asiakas. Ei työkalukohtaista liitännäistä, ei lukkiutumista.

## Mitä kukin kerros tekee

Neljä palaa. Jokaisella on tehtävänsä.

### Mikä tahansa MCP-asiakas

23 dokumentoitua asiakasta, mukaan lukien Claude Code, Codex CLI, Gemini CLI, Cursor, Devin Desktop, Antigravity, tai oma agenttisi.

### MCP

Avoin standardi, jota ne kaikki jo puhuvat.

### Maguyva

Yksi MCP-palvelin. Todennettuja repo-faktoja, palautetaan muodossa tiedosto:rivi.

### Työtiloja, ei käyttäjäpaikkoja

Agenteista ei veloiteta käyttäjäpaikkamaksuja. [Katso hinnoittelu](https://maguyva.ai/fi/pricing)

## MCP on integraatio. Standardoi se.

Avoin protokolla on oikea ratkaisu, ei kiertotie. Rakentaminen [MCP:n](https://modelcontextprotocol.io/docs/getting-started/intro) päälle työkalukohtaisen liitännäisen sijaan on juuri se tapa, jolla vältät uudelleenintegroinnin joka kerta kun parempi agentti julkaistaan. Se on oikea paikka:

- Yhdelle palvelinkonfiguraatiolohkolle, joka pudotetaan mihin tahansa yhteensopivaan asiakkaaseen.
- Työkaluille ja resursseille, jotka ovat siirrettävissä editorien, CLI:iden ja agenttien välillä.
- Rajapinnalle, jonka tietoturvatiimisi voi katselmoida kerran, ei per toimittaja.
- Vapaudelle vaihtaa asiakkaita ilman kontekstipinon uudelleenrakentamista.

Jatka sitä. MCP:hen standardoiminen on oikea siirto.

Mutta protokolla on putki. Se kuljettaa kysymyksen ja vastauksen — se ei *tunne* koodikantaasi. Jonkun täytyy olla toisessa päässä ja oikeasti kartoittaa symbolisi, kutsupaikkasi ja riippuvuutesi.

## Missä työkalukohtainen konteksti lakkaa skaalautumasta

Neljä vikaantumistapaa, joita yhdenkään agentin sääntötiedosto ei korjaa.

### // jokainen työkalu aloittaa nollasta

Valitse uusi agentti, ja se aloittaa sokkona repossasi jälleen. Liität samat tiedostot uudelleen, kiinnität saman kontekstin uudelleen, kirjoitat samat säännöt uudelleen. Työ ei siirry, koska sitä ei koskaan ollut jaettuna kerroksena.

### // sääntötiedostot eivät matkusta

`CLAUDE.md`, `.cursor/rules`, `AGENTS.md` — jokainen on työkalukohtainen, eikä yksikään ole kysyttävä indeksi koodistasi. Vaihda asiakasta, ja käsin rakentamasi kartta jää jälkeen.

### // integraatiolukko on vero

Syvän koodikannan kontekstin kytkeminen yhden toimittajan liitännäiseen tarkoittaa, että sinä päivänä, kun kokeilet eri agenttia, rakennat sen uudelleen. Mitä parempi kontekstisi, sitä enemmän lähteminen maksaa.

### // protokolla on putki, ei kartta

MCP siirtää työkaluja ja kontekstia asiakkaan ja palvelimen välillä. Se ei tunne symbolejasi, kutsupaikkojasi tai riippuvuusgraafiasi. Jonkun täytyy olla toisessa päässä ja oikeasti vastata kysymykseen.

## Maguyva on kerros protokollan toisessa päässä

Ei toinen agentti. Repokontekstin palvelin, jota mikä tahansa MCP-asiakas voi kutsua:

- **Yksi päätepiste, jokainen asiakasohjelma**: sama `https://maguyva.tools/mcp` palvelee Claude Code, Codex CLI, Gemini CLI, Cursor, Devin Desktop, Antigravity tai tänä aamuna kirjoittamaasi skriptiä.
- **Semanttinen + AST + graafi + teksti**: hae merkityksen, rakenteen, riippuvuuden tai kirjaimellisen tekstin perusteella. Jokainen osuma palauttaa tiedostopolun ja rivinumeron, riippumatta siitä mikä asiakasohjelma kysyi.
- **Haaratietoinen, pakettirajat ylittävä**: Maguyva näkee sen koodiversion, jota agentti muokkaa, jokaisessa monorepon paketissa.
- **Ei toimittajalukkoa**: vaihda agenttia milloin haluat; kontekstikerros ei liiku mihinkään. Työtilahinnoittelu, ei per käyttäjäpaikka — indeksoi 1 repo tai 50.

> Asiakkaasi puhuu MCP:tä.
> Maguyva on se, joka vastaa, *kun se kysyy koodistasi.*

## Kolme työnkulkua, samat kaikissa asiakasohjelmissa

Pakettien ja kielten rajat ylittäen. Asiakas vaihtuu; ankkuroitu vastaus ei.

### 01. Löydä autentikointivuo pakettien yli, mistä tahansa agentista

```text
agent> missä autentikointi tapahtuu tässä monorepossa?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           token verify
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  rbac gate

→ 4 aloituskohtaa 4 paketissa, järjestettynä kutsupaikkojen tiheyden mukaan.
[exit 0]
```

Claude Code, Cursor tai oma skriptisi — sillä ei ole väliä, mikä asiakas lähetti kyselyn. Samat neljä tiedostoa palautuvat samassa järjestyksessä, ankkuroituna oikeaan graafiin.

### 02. Löydä oikea toteutus, ei testitynkää

```text
agent> miten normalizePhoneNumber käsittelee E.164-muodon?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← oikea toteutus
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]
```

Nimet valehtelevat. Mockit peittävät oikean koodin. Maguyva järjestää oikean toteutuksen testimockin yläpuolelle — samalla tavalla jokaiselle asiakkaalle, joka kysyy.

### 03. Tarkista vaikutusalue ennen refaktorointia

```text
agent> mikä kutsuu QueueDispatcher.publish-metodia koko monorepossa?

graph::callers(QueueDispatcher.publish)
  3 in packages/billing/*
  1 in packages/audit/*
  1 in packages/notifications/*
  1 in services/python-worker/*  ← kielten välillä gRPC-tyngän kautta
[exit 0]
```

Pakettien ja kielten rajat ylittäen monikielisessä repossa kutsupaikat tulevat esiin suoraan. Vaihda agenttia huomenna, ja vaikutusalue on yhä siellä, koska se elää palvelimessa, ei asiakkaassa.

## Asennus millä tahansa MCP-asiakkaalla

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

### 01. Indeksoi repo osoitteessa maguyva.ai

Valitse yksi, jonka tunnet hyvin, jotta voit varmistaa vastaukset. Free-taso kattaa 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä.

### 02. Lisää Maguyva MCP-palvelimeksi käyttämääsi asiakkaaseen

```json
{
  "mcpServers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer mgv_xxxx"
      }
    }
  }
}
```

### 03. Kysy yksi kysymys, jonka vastauksen jo tiedät

Aloita yhdestä reposta ja yhdestä todennettavasta kysymyksestä, kuten “mikä kutsuu `formatInvoice`-funktiota pakettien yli?” Jos vastaus täsmää siihen, mitä sanoisit, jokainen muu asiakas, jonka osoitat siihen, saa saman ankkuroidun tuloksen.

Työkalukohtaiset ohjeet (Claude Code, Codex, Cursor, Gemini, Devin Desktop, Antigravity ja lisää) löytyvät [Maguyva-palvelun yhteensopivuusdokumentaatiosta](https://maguyva.ai/fi/docs/compatibility).

## Indeksoi yksi repo, jonka jo tunnet.

Yhdistä mikä tahansa MCP-asiakas. Kysy yksi kysymys, jonka vastauksen voit tarkistaa.

## Lähteet

- [MCP: virallinen esittely](https://modelcontextprotocol.io/docs/getting-started/intro)
- [MCP: esimerkkiasiakkaat](https://modelcontextprotocol.io/clients)
- [Maguyva: yhteensopivuus ja asiakkaat](https://maguyva.ai/fi/docs/compatibility)
- [Maguyva: pino ja tietoturva](https://maguyva.ai/fi/stack)
- [Maguyva: hinnoittelu (työtila, ei per käyttäjä)](https://maguyva.ai/fi/pricing)
