Lewati ke konten utama

MCP Tools

AI Agent Plane menjalankan MCP server kecil di dalam Lazarus IDE. Halaman ini merangkum tool yang tersedia. Detail teknis lengkap (dalam Bahasa Inggris) ada di docs/MCP.md.

Server​

ItemNilai
Nama serverfastplaz
URLhttp://127.0.0.1:<port>/mcp
Port default17826; jika terpakai, port berikutnya sampai 17835
TransportMCP Streamable HTTP (bentuk paling sederhana): POST /mcp dengan satu pesan JSON-RPC, respons JSON, tanpa SSE
Versi protokol2025-11-25, 2025-06-18 (default), 2025-03-26, 2024-11-05
Methodinitialize, ping, tools/list, tools/call, resources/list, resources/read, resources/templates/list
AutentikasiAuthorization: Bearer <token>, token acak baru setiap server dimulai
BatasBody request 4 MB; hasil teks dipotong di 32 KB

Tool dijalankan di main thread IDE. Pemanggilan yang lama, seperti compile, menahan request HTTP sampai selesai.

Tool​

Ada 19 tool dalam tiga kelompok. Path boleh absolut atau relatif terhadap direktori project.

Setiap tool membawa MCP annotations: readOnlyHint, destructiveHint (hanya clean_and_compile_project), idempotentHint, dan openWorldHint: false.

IDE​

ToolFungsiIzin
open_fileMembuka file di Source Editor, opsional di baris dan kolom tertentuauto
get_active_editorFile, posisi kursor, teks terpilih, dan status modified dari editor aktifauto
list_open_filesDaftar file yang terbuka dan apakah ada perubahan yang belum disimpanauto
read_editorIsi file seperti di editor (termasuk perubahan yang belum disimpan) dengan nomor baris. Hanya file project dan search pathauto
project_infoInfo project aktif: file .lpi, main unit, build mode, target OS/CPU, search path, opsi compiler, file outputauto
list_project_unitsFile yang menjadi bagian projectauto
compile_projectCompile project (atau build semua dengan rebuild). Menyimpan file editor yang berubah terlebih dahuluask once per session
build_projectBuild semua unit, seperti Run → Buildask once per session
clean_and_compile_projectSeperti Run → Clean up and Build: menghapus file hasil compile lalu build semua. File source tidak pernah dihapusalways ask
get_messagesPesan compiler terakhir dari jendela Messages, lengkap dengan file, baris, dan kolomauto

Argumen bersama: build_mode (build mode yang diaktifkan dulu) dan min_urgency (hint, note, warning, error; default warning).

Contoh hasil build:

{"success": true, "duration_ms": 1234,
"messages": [{"file": "...", "line": 10, "column": 5, "urgency": "error", "text": "..."}]}

Editor, Pencarian, dan Unit​

ToolFungsiIzin
edit_textMengganti old_string dengan new_string di buffer editor sebagai satu langkah undo (Ctrl+Z membatalkannya). Gagal jika old_string tidak ada, atau muncul lebih dari sekali tanpa replace_all. Ditulis ke disk hanya dengan saveask once per session
save_fileMenyimpan buffer editor sebuah file (unit form ikut menyimpan .lfm-nya)ask once per session
revert_fileMembuang perubahan yang belum disimpan dan memuat ulang file dari diskalways ask
search_projectPencarian teks di file project (termasuk buffer yang belum disimpan), atau di directory dengan mask. Mengembalikan file, baris, dan isi barisauto
find_unitUntuk error "Can't find unit X": file yang akan dipakai compiler, apakah termasuk project, package yang memuatnya, dan petunjuk perbaikanauto

Generator dan Referensi FastPlaz​

Generator menulis unit baru dari template FastPlaz, menambahkannya ke project, lalu membukanya di editor. Di FastPlaz, module adalah controller, jadi permintaan "buat module" dikerjakan dengan generator controller.

ToolFungsiIzin
create_simple_controllerController halaman web (TMyCustomController dengan Get/Post, dirender lewat theme). Menyimpan <permalink>_controller.pasask once per session
create_api_controllerController REST yang menjawab JSON (Get/Post/Options). Menyimpan <permalink>_controller.pasask once per session
create_modelUnit TSimpleModel untuk tabel database. Menyimpan <name>_model.pasask once per session
get_fastplaz_referenceReferensi FastPlaz (sama dengan resource fastplaz://reference). Dengan section, hanya bagian tertentu (routes, model, theme, ...)auto

Argumen generator:

  • name: nama module atau model dalam kata-kata. "user group" menjadi TUserGroupController / TUserGroupModel.
  • permalink: route controller, misalnya user-group. Default: dari name.
  • table: nama tabel database. Jika name dikosongkan, nama model diambil dari tabel (users menjadi TUserModel).
  • directory: lokasi unit, harus di dalam direktori project. Default: direktori project.

Aturan generator:

  • Tidak ada yang ditimpa. Jika file sudah ada, pemanggilan gagal dan tidak ada yang berubah.
  • Controller yang dibuat mendaftarkan route-nya di bagian initialization. Jika project memiliki routes.pas, pindahkan baris tersebut ke sana. Lihat Routing.

Resource​

URIIsi
fastplaz://referenceReferensi FastPlaz untuk agent (text/markdown): struktur project, controller, route, request dan session, theme dan template tag, TSimpleModel, TJSONUtil, config.json, helper, alur kerja di IDE, dan jebakan umum

Contoh Request​

POST /mcp HTTP/1.1
Host: 127.0.0.1:17826
Authorization: Bearer <token>
Mcp-Session-Id: <session id dari initialize>
Content-Type: application/json

{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"open_file","arguments":{"path":"main.pas","line":42}}}

Dalam pemakaian normal Anda tidak perlu memanggil server ini secara manual: Agent Plane mendaftarkannya ke agent secara otomatis.

Menambah Tool​

Bagi kontributor yang ingin menambah tool baru, langkah-langkahnya ada di bagian Adding a tool pada docs/MCP.md. Source MCP server ada di tools/src/ai_plane/.