m>minicode

MCP & LSP

sumber: src/mcp/client.tsEdit di GitHub

MCP & LSP

MCP — dua transport

# stdio — server lokal yang di-spawn minicode
minicode config mcp add fs --command npx --args "-y,@modelcontextprotocol/server-filesystem,."

# Streamable HTTP — server remote (spec 2025-03-26, SSE juga ditangani)
minicode config mcp add ctx7 --url https://mcp.example.com/mcp --header "authorization=Bearer xxx"

# localhost butuh opt-in eksplisit (anti-SSRF)
minicode config mcp add lokal --url http://127.0.0.1:3000/mcp --allow-private

Setelah terdaftar, mcp_list menampilkan tools, resources, prompts sekaligus:

ToolSpecCatatan
mcp_listtools/list + resources/list + prompts/listread-only, tidak di-gate
mcp_calltools/calldi-gate
mcp_readresources/readdi-gate (konten pihak ketiga = jalur prompt-injection). Biner diganti penanda ukuran
mcp_promptprompts/getdi-gate, server merender argumen

Tool dinamis serverId.toolName otomatis muncul. resources/prompts opsional di spec: server "Method not found" tetap terhubung dengan tool utuh.

Keamanan HTTP: host privat ditolak kecuali --allow-private (penjaga sama dengan web_fetch: DNS pinning). Redirect tidak diikuti. Ukuran dibatasi. Balasan dicocokkan per request id. Header Authorization tidak masuk log.

Izin: semua MCP bertitik selalu di-gate — auto minta konfirmasi sekali per tool ([a] Always persist ke allowlist); readonly/plan/allowlist menolak. Tanpa wildcard auto-allow (proteksi supply-chain).

Model kepercayaan: permission hanya kontrol *pemanggilan*. Capability di balik server (filesystem, network, proses, API) tak bisa diketahui statis — anggap setiap mcp_call external capability arbitrer. Pembatalan hentikan penungguan, tapi tidak bunuh proses stdio maupun batalkan efek yang sudah terjadi.

Ekspos balik:

minicode mcp serve   # minicode sebagai MCP server (curated tools + permission aktif)

LSP

minicode config lsp add .ts --command typescript-language-server --args --stdio

Setelah terdaftar: lsp_diagnostics, lsp_definition, lsp_references, lsp_hover, lsp_symbols, lsp_workspace_symbols. Diagnostics otomatis di edit/write_file bila server terkonfigurasi. didClose cleanup.

Bila LSP tidak jalan: pastikan server terinstall dan command benar. Repo-map regex tetap jalan sebagai fallback (MINICODE_REPOMAP=regex).