Siirry sisältöön

Työkalut: CLI vs. MCP

Opi valitsemaan oikea työkalu agentille: milloin käyttää CLI-komentoja, milloin MCP-protokollaa, ja mitkä ovat niiden edut ja haitat.

AI Builders
Edistynyt
25 min

Työkalut: CLI vs. MCP

AI-agentti on yhtä hyvä kuin sen työkalut. Tässä oppitunnissa vertaamme kahta päälähestymistapaa: CLI-komennot (perinteiset komentorivikäyttöliittymät) ja MCP (Model Context Protocol).

Päätöskehikko

Työkalu agentin kontekstissa

Työkalu on rajapinta, jonka kautta agentti vuorovaikuttaa ulkoisen järjestelmän kanssa. Se voi olla yksinkertainen CLI-komento (git status), API-kutsu (HTTP POST) tai MCP-palvelin (strukturoitu protokolla). Työkalu muuntaa agentin päätöksen konkreettiseksi toiminnoksi.

PäätöstekijäCLI-työkalutMCP-työkalut
Olemassa oleva ekosysteemiErinomainenKasvava
KäyttöönottoNopeaKeskitaso
DebuggausSuoraviivainen (stdout)Schema/tapahtumapohjainen
Tilalliset integraatiotManuaalinen orkestrointiVahva
KäyttöoikeushallintaSkriptatut konventiotEnsimmäisen luokan protokolla

CLI-työkalut

CLI-työkalut ovat perinteisiä komentoriviohjelmia: git, npm, docker, pytest.

Edut

  • Vakaat ja testattuja — vuosien tuotantokokemus
  • Universaalit — toimivat kaikilla alustoilla
  • Helppo debugata — stdout + stderr
  • Nopea käyttöönotto — ei erillistä palvelinta

Agentti + CLI käytännössä

CLI-työkalun rekisteröintipython
# Työkalun deklaraatio (LLM:lle)
{
  "name": "git_status",
  "description": "Get current git status",
  "parameters": {
      "type": "object",
      "properties": {},
      "required": [],
  },
}

# Työkalun suoritus
def execute_git_status():
  result = subprocess.run(
      ["git", "status", "--short"],
      capture_output=True,
      text=True,
  )
  return {
      "ok": result.returncode == 0,
      "stdout": result.stdout,
      "stderr": result.stderr,
  }

CLI-työkalujen tyypit

TyyppiEsimerkitAgentin käyttötapa
Versionhallintagit status, git diffKoodin tilan tarkistus
Pakettien hallintanpm install, pip installRiippuvuuksien asennus
Testauspytest, vitestTestien suoritus
Kontitdocker build, docker runYmpäristöjen hallinta
Tiedostotcat, grep, findTiedon haku

MCP — Model Context Protocol

MCP on uudempi, standardoitu protokolla AI-agentin ja ulkoisten palveluiden väliseen kommunikaatioon.

MCP (Model Context Protocol)

MCP (Model Context Protocol) on avoin protokolla, joka standardoi miten AI-agentit kommunikoivat ulkoisten tietolähteiden ja työkalujen kanssa. Se tarjoaa strukturoidun rajapinnan, käyttöoikeushallinnan ja tilallisen kommunikaation — ominaisuuksia joita perinteiset CLI-työkalut eivät tarjoa natiivisti.

MCP:n edut

  • Strukturoitu data — JSON-skeema sisään ja ulos
  • Käyttöoikeushallinta — protokollatason turvallisuus
  • Tilalliset sessiot — palvelin muistaa kontekstin
  • Löydettävyys — palvelin kertoo mitä työkaluja on

MCP käytännössä

MCP-työkalun skeemajson
{
"name": "database_query",
"description": "Execute a read-only SQL query",
"inputSchema": {
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "SQL SELECT query to execute"
    },
    "limit": {
      "type": "number",
      "description": "Max rows to return",
      "default": 100
    }
  },
  "required": ["query"]
}
}

Milloin CLI, milloin MCP?

Pro-vinkki

Nyrkkisääntö: Jos vakaa CLI on olemassa (git, npm, docker, pytest), käytä sitä. Jos tarvitset rikasta strukturoitua vuorovaikutusta (selain, tietokanta, SaaS-integraatio), harkitse MCP:tä. Älä kääri CLI:tä MCP:ksi "koska voit" — valitse halvempi rajapinta.

Päätöspuu

Onko vakaa CLI olemassa?
  ├── Kyllä → Käytä CLI:tä
  │     └── Tarvitsetko tilallista sessiota?
  │           ├── Ei → CLI riittää
  │           └── Kyllä → Harkitse MCP-wrapper
  └── Ei → Tarvitsetko strukturoitua dataa?
        ├── Kyllä → MCP
        └── Ei → Yksinkertainen HTTP/API-kutsu

Oman CLI-työkalun rakentaminen

Uuden CLI-työkalun lisääminen agenttiin on 3 vaihetta:

1. Deklaroi työkalu

Kerro LLM:lle mitä työkalu tekee (nimi, kuvaus, parametrit).

2. Toteuta suoritus

Kirjoita funktio joka suorittaa todellisen komennon.

3. Rekisteröi turvallisuussäännöt

Lisää blokkilistalle vaarallisia komentoyhdistelmiä.

Uusi työkalu: tiedoston lukupython
# 1. Deklaraatio
{
  "name": "read_file",
  "description": "Read contents of a file",
  "parameters": {
      "type": "object",
      "properties": {
          "path": {
              "type": "string",
              "description": "File path to read"
          }
      },
      "required": ["path"],
  },
}

# 2. Suoritus
def execute_read_file(path: str) -> dict:
  try:
      with open(path, 'r') as f:
          content = f.read()
      return {"ok": True, "content": content}
  except FileNotFoundError:
      return {"ok": False, "error": f"File not found: {path}"}

# 3. Turvallisuus
BLOCKED_PATHS = [".env", "credentials", "secrets"]
def is_safe_path(path: str) -> bool:
  return not any(b in path.lower() for b in BLOCKED_PATHS)
Tietovisa

Milloin MCP on parempi valinta kuin CLI-työkalu?

Rakenna oma työkalu agentille

Luo uusi työkalu AI-agentille: 1) Valitse tehtävä (esim. tiedostohaku, prosessin tarkistus, API-kutsu), 2) Kirjoita deklaraatio (nimi, kuvaus, parametrit), 3) Toteuta suoritusfunktio, 4) Lisää turvallisuustarkistukset. Testaa antamalla agentille tehtävä joka vaatii työkalua.

Yhteenveto

  • CLI-työkalut ovat vakaita, universaaleja ja nopeasti käyttöönotettavia
  • MCP tarjoaa strukturoitua dataa, tilallisia sessioita ja käyttöoikeushallintaa
  • Valitse halvempi rajapinta: CLI ensin, MCP kun tarvitset lisäominaisuuksia
  • Turvallisuustarkistukset ovat pakollisia kaikille työkaluille
  • Seuraavaksi rakennamme oman agentin gemini_agent.py-pohjasta

Kirjaudu seurataksesi edistymistäsi

Kysymykset ja vastaukset

Kirjaudu sisään osallistuaksesi keskusteluun