Lompat ke konten

Referensi API MCP

Referensi lengkap untuk semua 11 tools MCP Maguyva yang menghadap pelanggan. Setiap tool menyertakan parameter, panduan penggunaan, dan rekomendasi kapan paling cocok dipakai.

Gambaran Umum API#

API MCP Maguyva saat ini menyediakan 11 tools yang menghadap pelanggan di 4 kategori utama:

  • Tool Search Inti - Kemampuan pencarian tingkat lanjut di seluruh codebase-mu
  • Tool Struktural & Graf - Query AST, pencarian simbol, dan analisis dependensi
  • Tool Analisis Kode - Analisis kode mendalam dan pemetaan relasi
  • Tool Sistem & Utilitas - Konteks repository, komputasi deterministik, dan panduan

Semua tools memakai format pengidentifikasi repository yang konsisten: "owner/repo:branch". Branch default ke main kalau tidak ditentukan.

Jangan sertakan repository ketika klien MCP Anda menyediakan default untuk permintaan tersebut atau kunci dapat mengakses tepat satu repository; jika tidak, berikan secara eksplisit. Gunakan repository_context(action="info", repository="owner/repo") untuk memeriksa bagaimana sebuah repository ditentukan.

Format Parameter Repository#

Semua tools MCP memakai format pengidentifikasi repository ini:

  • Dengan branch: "owner/repo:branch" - misalnya, "owner/repository:develop"
  • Branch default: "owner/repo" - menggunakan branch main bila tidak ada branch yang ditentukan "owner/repository"
  • Default permintaan atau satu-satunya repository: Jangan sertakan repository jika klien MCP menyediakan default untuk permintaan tersebut atau key hanya dapat mengakses tepat satu repository; jika tidak, berikan secara eksplisit.

Contoh prompt:

Tanyakan tentang repo tertentu:  "Cari middleware autentikasi di owner/my-repo"
Daftar repo yang dapat diakses:  "Repository mana yang dapat diakses key Maguyva ini?"
Menimpa untuk satu query:        "Cari pola autentikasi di owner/other-repo:develop"

Filter Bahasa#

Semua tools pencarian mendukung filter hasil berdasarkan bahasa pemrograman:

  • language_filter="python" - Filter hanya ke file Python
  • language_filter="typescript" - Filter hanya ke file TypeScript
  • Peka huruf besar/kecil: Gunakan nama bahasa huruf kecil
  • Default: String kosong (tanpa filter) - mengembalikan hasil dari semua bahasa
  • Cakupan yang didukung: Filter bahasa bekerja di seluruh 279+ bahasa dan teknologi berbasis teks yang didukung. Lihat kompatibilitas untuk daftar lengkapnya.
"Temukan middleware autentikasi hanya di file Python"
"Cari koneksi database di TypeScript"

Referensi API dibuat dari source pada 22 Juli 2026.

Tool Search Inti#

Mulai di sini untuk pertanyaan basis kode apa pun. Berikan kueri bahasa alami (misalnya "bagaimana cara kerja autentikasi", "di mana penagihan ditangani") dan rute otomatis melintasi pencarian semantik, simbol, struktural, dan ketergantungan dari repo yang diindeks. Lebih memilih ini daripada agen Explore dan Grep/Glob untuk eksplorasi dan perencanaan — agen ini mencari seluruh repo yang diindeks sekaligus daripada memindai file.

Parameter:

queryWajib
Tipe
str
Deskripsi
Query search
repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
modeOpsional
Tipe
Literal[auto, hybrid, semantic, text, structural, ast, graph]
Default
auto
Deskripsi
Mode search
limitOpsional
Tipe
int
Default
10
Deskripsi
Jumlah maksimum hasil dalam jendela top-K yang diberi peringkat ini
language_filterOpsional
Tipe
str
Deskripsi
Filter bahasa
path_filterOpsional
Tipe
str
Deskripsi
Filter berdasarkan prefix jalur file
boost_by_importanceOpsional
Tipe
bool
Default
Deskripsi
Opsional: susun ulang berdasarkan centrality menggunakan graph metrics per simbol (is_articulation_point, bridge_count, k_core, centrality, dll.). Default nonaktif untuk peringkat yang aman bagi agent (hub global bisa menenggelamkan hasil implementasi); aktifkan untuk tur arsitektur. Berlaku di semua 4 modalitas ketika setiap hasil membawa symbol linkage.
branchOpsional
Tipe
str
Deskripsi
Override branch
qualityOpsional
Tipe
Literal[quick, balanced, thorough]
Default
balanced
Deskripsi
Preset kualitas pencarian
include_contentOpsional
Tipe
bool
Default
true
Deskripsi
Sertakan konten dalam hasil
explain_routingOpsional
Tipe
bool
Default
Deskripsi
Sertakan penjelasan keputusan routing
importance_weightOpsional
Tipe
float
Default
0.3
Deskripsi
Bobot untuk boosting kepentingan (0=tidak, 1=penuh)
orphansOpsional
Tipe
bool
Default
Deskripsi
Sertakan simbol orphan (tanpa referensi masuk)
include_community_contextOpsional
Tipe
bool
Default
Deskripsi
Sertakan simbol terkait dari komunitas kode yang sama
community_depthOpsional
Tipe
int
Default
1
Deskripsi
Kedalaman perluasan konteks komunitas
graph_viewOpsional
Tipe
Literal[dependency, type, data_flow, control_flow]
Default
dependency
Deskripsi
Tampilan graph untuk metrik
seed_symbol_idsOpsional
Tipe
list[str]
Deskripsi
Bibit tugas Tier-1: ID simbol yang penting bagi tugas saat ini. Jika disetel, rangking ulang hit yang digabungkan berdasarkan kedekatan peluruhan kedalaman Approach A (pencocokan benih yang tepat + lompatan tepi grafik). Aditif — hilangkan peringkat global.
seed_file_pathsOpsional
Tipe
list[str]
Deskripsi
Benih tugas Tier-1: jalur file terindeks yang telah dibuka atau baru saja diedit oleh agen. Jika disetel, rangking ulang hit yang digabungkan berdasarkan kedekatan jalur dengan peluruhan kedalaman 1/(1+d) (file yang sama → direktori yang sama → paket terdekat). Aditif — hilangkan peringkat global.

Paling Cocok Untuk:

  • Eksplorasi index-wide atau cold-start ketika tool yang tepat tidak jelas
  • Ranking gabungan multi-modal di semantic, text, structural, dan graph

Tidak Direkomendasikan Untuk:

  • Nama symbol yang sudah diketahui — langsung gunakan find_symbol
  • Path yang sudah diketahui di disk — gunakan local Read/Grep dulu

Temukan kode berdasarkan maknanya, bukan teks persisnya. Gunakan untuk kueri konseptual seperti "coba lagi logika" atau "alur orientasi pengguna" bila Anda tidak mengetahui kata kunci atau nama simbol. Mengembalikan potongan kode paling relevan yang diberi peringkat berdasarkan kepentingannya. Lebih memilih daripada Grep ketika pencarian bersifat konseptual.

Parameter:

queryWajib
Tipe
str
Deskripsi
Query pencarian (konseptual, berbasis makna)
repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
limitOpsional
Tipe
int
Default
5
Deskripsi
Jumlah maksimum hasil dalam jendela top-K yang diberi peringkat ini
similarity_thresholdOpsional
Tipe
float
Default
0.6
Deskripsi
Skor kesamaan minimum
language_filterOpsional
Tipe
str
Deskripsi
Filter bahasa (python, typescript, dll.)
path_filterOpsional
Tipe
str
Deskripsi
Filter berdasarkan prefix jalur file
boost_by_importanceOpsional
Tipe
bool
Default
Deskripsi
Opsional: susun ulang berdasarkan PageRank centrality (default nonaktif untuk peringkat yang aman bagi agent; aktifkan untuk tur arsitektur)
branchOpsional
Tipe
str
Deskripsi
Override branch
include_contentOpsional
Tipe
bool
Default
true
Deskripsi
Sertakan konten cuplikan dalam hasil
graph_viewOpsional
Tipe
Literal[dependency, type, data_flow, control_flow]
Default
dependency
Deskripsi
Graph view untuk metrics

Paling Cocok Untuk:

  • Kueri konseptual ("how does auth work?", "caching strategy")
  • Pencarian kemiripan lintas-paket

Tidak Direkomendasikan Untuk:

  • Nama symbol yang sudah diketahui — gunakan find_symbol
  • String persis atau pesan error — gunakan text_pattern_search

Cari konten terindeks. Mode exact dan regex melakukan grep pada korpus file/blob penuh; mode fuzzy content mencari korpus chunk semantik terbatas. Scope file dan simbol hanya untuk fuzzy. Gunakan Grep lokal untuk direktori yang sudah ada di disk.

Parameter:

queryWajib
Tipe
str
Deskripsi
Pola teks untuk dicari
repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
modeOpsional
Tipe
Literal[fuzzy, exact, regex]
Default
exact
Deskripsi
Mode pencarian
search_scopeOpsional
Tipe
Literal[content, symbols, files]
Default
content
Deskripsi
Apa yang dicari
limitOpsional
Tipe
int
Default
5
Deskripsi
Jumlah maksimum hasil yang dikembalikan di halaman ini
offsetOpsional
Tipe
int
Deskripsi
Offset kompatibilitas yang sudah usang. Utamakan cursor dari pagination.next_cursor.
cursorOpsional
Tipe
str
Deskripsi
Cursor opaque dari pagination.next_cursor. Teruskan tanpa perubahan dan pertahankan query serta filter tetap sama.
language_filterOpsional
Tipe
str
Deskripsi
Filter bahasa
path_filterOpsional
Tipe
str
Deskripsi
Filter berdasarkan awalan jalur file
case_sensitiveOpsional
Tipe
bool
Default
Deskripsi
Pencocokan peka huruf besar/kecil
branchOpsional
Tipe
str
Deskripsi
Override branch
fuzzy_algorithmOpsional
Tipe
Literal[hybrid, trigram, levenshtein]
Default
hybrid
Deskripsi
Algoritma pencocokan fuzzy
thresholdOpsional
Tipe
float
Default
0.05
Deskripsi
Ambang kesamaan minimum untuk fuzzy
semantic_fallbackOpsional
Tipe
bool
Default
Deskripsi
Fallback ke semantic search jika tidak ada hasil

Paling Cocok Untuk:

  • String persis, pesan error, dan regex
  • Pencocokan trigram fuzzy untuk teks yang hampir mirip

Tidak Direkomendasikan Untuk:

  • Path yang sudah diketahui di disk — utamakan local Grep
  • Kueri konseptual — gunakan semantic_search

Tool Struktural & Graf#

Utamakan preset=functions|classes|methods|imports|variables (atau pattern= bebas). Temukan kode berdasarkan bentuk AST (bukan teks). Filter tingkat menengah: name_pattern, node_type, decorator, parent_child. Filter path/ltree/call bersifat advanced — atur advanced=true saat sengaja menggunakannya; kunci advanced datar tetap diterima untuk back-compat. Berikan setidaknya satu structural selector.

Parameter:

repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
presetOpsional
Tipe
Literal[functions, classes, methods, imports, variables]
Deskripsi
Structural selector yang disarankan. Meluas ke tipe node AST lintas bahasa — functions (definisi function/arrow/method di berbagai bahasa); classes (definisi class/struct/impl); methods (definisi method (dan function_definition untuk bahasa tanpa node method)); imports (pernyataan import/use/include); variables (deklarasi variable/let/const/static). Utamakan ini daripada pattern/node_type bebas untuk query bergaya browse.
patternOpsional
Tipe
str
Deskripsi
Pattern Free-form ketika preset terlalu kasar (terdeteksi otomatis: 'def foo(' → node_type + name_pattern). Utamakan preset= untuk query browse.
name_patternOpsional
Tipe
str
Deskripsi
Pattern nama symbol (wildcard shell, regex POSIX terbatas, atau teks fuzzy; maksimal 256 karakter)
node_typeOpsional
Tipe
str
Deskripsi
Tipe node AST (function_definition, class_definition, dll.) — utamakan preset= untuk bentuk umum
decoratorOpsional
Tipe
str
Deskripsi
Filter nama decorator
base_classOpsional
Tipe
str
Deskripsi
Filter nama base class
language_filterOpsional
Tipe
str
Deskripsi
Filter bahasa
limitOpsional
Tipe
int
Default
20
Deskripsi
Jumlah maksimum hasil yang dikembalikan di halaman ini
offsetOpsional
Tipe
int
Deskripsi
Offset kompatibilitas yang sudah usang. Utamakan cursor dari pagination.next_cursor.
cursorOpsional
Tipe
str
Deskripsi
Cursor opaque dari pagination.next_cursor. Teruskan tanpa perubahan dan pertahankan query serta filter tetap sama.
path_filterOpsional
Tipe
str
Deskripsi
Filter berdasarkan awalan jalur file
branchOpsional
Tipe
str
Deskripsi
Override branch
query_typeOpsional
Tipe
Literal[node_type, name_pattern, parent_child]
Deskripsi
Tipe query eksplisit
parent_typeOpsional
Tipe
str
Deskripsi
Filter jenis node induk AST
relationshipOpsional
Tipe
Literal[parent, ancestor]
Default
parent
Deskripsi
Untuk parent_child: parent langsung saja, atau ancestor mana saja (pakai ancestor untuk metode kelas yang berada dalam block class)
has_modifierOpsional
Tipe
str
Deskripsi
Filter berdasarkan modifier (export, async, static, dll.)
advancedOpsional
Tipe
bool
Default
Deskripsi
Atur true ketika dengan sengaja menggunakan jalur lanjutan, pohon, atau filter panggilan (ltree_ancestor, ltree_descendant, min_depth, max_depth, field_role, definition_name, callee_text, callee_name). Secara default, false menjaga antarmuka agen tetap fokus pada preset. Kunci tingkat lanjut dalam format datar masih berfungsi untuk kompatibilitas mundur, dengan peringatan metadata.
callee_textOpsional
Tipe
str
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Filter teks callee ekspresi call. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
callee_nameOpsional
Tipe
str
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Filter nama callee ekspresi call. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
field_roleOpsional
Tipe
str
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Filter field role AST. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
ltree_ancestorOpsional
Tipe
str
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Filter path ltree ancestor AST. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
ltree_descendantOpsional
Tipe
str
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Filter path ltree descendant AST. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
definition_nameOpsional
Tipe
str
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Filter nama definition. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
min_depthOpsional
Tipe
int
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Minimum AST depth. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.
max_depthOpsional
Tipe
int
Deskripsi
Advanced — utamakan preset=functions|classes|methods|imports|variables. Maximum AST depth. Atur advanced=true saat sengaja menggunakan filter path/ltree/call.

Paling Cocok Untuk:

  • Struktur tingkat AST: class, decorator, preset function/method
  • Menemukan kode berdasarkan bentuk, bukan teks

Tidak Direkomendasikan Untuk:

  • Kueri free-text atau konseptual — gunakan semantic_search atau intelligent_search

Permukaan blast-radius / graph utama. Menjawab "apa yang memanggil ini?" / "apa yang menggunakan ini?" lewat call/import graph yang sesungguhnya. Untuk dampak sebelum edit: analysis_type="dependents" atau analysis_type="impact" (incoming, default shallow untuk impact), include_metrics=false secara default (opt-in untuk centrality + refactor_risk). Dampak PR/diff (P1-8): kirim changed_paths dan/atau patch (unified diff) — meresolusi symbol per path dan mengembalikan payload dependents shallow-incoming yang ringkas tanpa memerlukan nama symbol. Setelah sebuah edit, atur verify_after_edit=true dengan targets dan/atau changed_paths untuk kueri ulang multi-root yang ringkas atas symbol yang terdampak. Juga mendukung dependencies, centrality, dan orphans. analyze_dependencies adalah alias tipis untuk jalur impact — utamakan tool ini untuk agent baru.

Parameter:

repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
queryOpsional
Tipe
str
Deskripsi
Nama simbol atau istilah pencarian
targetOpsional
Tipe
str
Deskripsi
Nama simbol (alias untuk query)
changed_pathsOpsional
Tipe
list[str]
Deskripsi
Jalur repo-relatif untuk dampak PR/diff (default) atau, dengan verify_after_edit=true, verifikasi akar pasca-edit. PR/diff: menyelesaikan simbol per jalur dan menjalankan tanggungan masuk yang dangkal; dapat dikombinasikan dengan patch=. Verifikasi: menyelesaikan hingga 5 simbol per jalur sebagai akar verifikasi (dibatasi lebih rendah di dalam mode verifikasi). Tidak memerlukan query/target untuk dampak PR/diff.
patchOpsional
Tipe
str
Deskripsi
Dampak PR/diff: teks patch diff / git terpadu. Jalur diurai dari header diff --git / --- / +++; jalur dampak kompak yang sama seperti changed_paths.
analysis_typeOpsional
Tipe
Literal[centrality, dependencies, dependents, impact, orphans]
Default
dependencies
Deskripsi
Mode analisis. impact = blast radius (dependents incoming; depth shallow ketika depth tidak diisi). dependents juga menjawab impact. Ketika changed_paths atau patch diatur, analisis dipaksa menjadi dampak PR/diff. centrality/orphans tidak memerlukan target.
depthOpsional
Tipe
Literal[shallow, balanced, deep]
Default
balanced
Deskripsi
Traversal depth. Untuk analysis_type=impact dan dampak PR/diff, default efektifnya adalah shallow kecuali Anda mengatur depth secara eksplisit.
limitOpsional
Tipe
int
Default
20
Deskripsi
Jumlah maksimum hasil yang dikembalikan di halaman ini
offsetOpsional
Tipe
int
Deskripsi
Offset kompatibilitas yang sudah usang. Utamakan cursor dari pagination.next_cursor.
cursorOpsional
Tipe
str
Deskripsi
Cursor opaque dari pagination.next_cursor. Teruskan tanpa perubahan dan pertahankan query serta filter tetap sama.
path_filterOpsional
Tipe
str
Deskripsi
Membatasi resolusi target symbol berdasarkan prefix file path; relasi graph yang dikembalikan bisa melintas keluar dari path tersebut
language_filterOpsional
Tipe
str
Deskripsi
Filter resolusi target dan hasil browse berdasarkan bahasa
directionOpsional
Tipe
Literal[outgoing, incoming, both]
Deskripsi
Arah traversal (menimpa inferensi analysis_type)
relationship_typesOpsional
Tipe
list[str]
Deskripsi
Filter tipe edge (CALL, IMPORT, INHERITS_FROM, dll.). Daftar yang tidak kosong menggantikan default graph_view.
exclude_test_pathsOpsional
Tipe
bool
Default
true
Deskripsi
Default true: mengecualikan path test, fixture, vendor, dan contoh dari hasil traversal dan centrality. Atur false untuk menyertakannya. Analisis orphan selalu menerapkan pengecualian noise-nya sendiri yang lebih ketat.
exclude_generated_pathsOpsional
Tipe
bool
Default
Deskripsi
Kecualikan deklarasi yang dihasilkan ditambah jalur build, cakupan, cache, peta sumber, dan artefak yang diperkecil dari hasil traversal
include_module_symbolsOpsional
Tipe
bool
Default
Deskripsi
Secara default, false mengecualikan tepi grafik ketika from_name atau to_name adalah simbol __module__ sintetis (gangguan tingkat modul). Atur true untuk menyertakan tepi tingkat modul dalam hasil hubungan ketergantungan dan ketergantungan.
branchOpsional
Tipe
str
Deskripsi
Override branch
per_hop_limitOpsional
Tipe
int
Deskripsi
Jumlah maksimum relationship per hop (1-300)
include_metricsOpsional
Tipe
bool
Default
Deskripsi
Graph metrics opt-in pada baris hasil (dipadatkan dengan refactor_risk). Metrics juga diambil secara internal ketika min_centrality>0 tetapi tidak dikembalikan kecuali ini true.
metrics_detailOpsional
Tipe
Literal[summary, full]
Default
summary
Deskripsi
Ketika include_metrics=true: summary (default) mengembalikan sinyal keputusan + refactor_risk; full mengembalikan kumpulan metrik hasil kurasi yang lebih besar
include_edge_metadataOpsional
Tipe
bool
Default
Deskripsi
Sertakan metadata dan bobot tepi mentah (besar). Muatan dampak kompak mengabaikan hal ini.
symbol_typesOpsional
Tipe
list[str]
Deskripsi
Filter symbol yang dikembalikan berdasarkan jenis (function, class, method, dll.)
exact_matchOpsional
Tipe
bool
Default
Deskripsi
Wajibkan pencocokan nama simbol persis
find_similar_patternsOpsional
Tipe
bool
Default
Deskripsi
Temukan pola penggunaan serupa
min_centralityOpsional
Tipe
float
Default
0
Deskripsi
Skor PageRank minimum. Metrics diambil secara internal untuk filtering; graph_metrics hanya dikembalikan ketika include_metrics=true.
graph_viewOpsional
Tipe
Literal[dependency, type, data_flow, control_flow]
Default
dependency
Deskripsi
Graph view yang digunakan untuk default relationship traversal, metrics, dan peringkat centrality; analisis orphan dihitung di semua view
verify_after_editOpsional
Tipe
bool
Default
Deskripsi
Mode verifikasi pasca-edit P2-7: kueri ulang grafik dampak yang diindeks untuk simbol yang baru diedit dalam satu respons multi-root yang ringkas. Membutuhkan targets dan/atau changed_paths (atau target/query). Default untuk tanggungan masuk yang dangkal; hasilnya mencerminkan grafik yang diindeks (mungkin memperlambat pengeditan langsung). Jika benar, akan lebih diutamakan daripada dampak PR/diff pada changed_paths yang sama.
targetsOpsional
Tipe
list[str]
Deskripsi
Ketika verify_after_edit=true: nama simbol untuk diverifikasi ulang (penelepon/tanggungan). Digabung dengan target/query jika keduanya disediakan.

Paling Cocok Untuk:

  • Analisis blast-radius / impact sebelum mengedit symbol yang dipakai bersama
  • PR/diff impact lewat changed_paths atau patch
  • Verifikasi pasca-edit lewat verify_after_edit

Tidak Direkomendasikan Untuk:

  • Pencarian text atau symbol sederhana — gunakan text_pattern_search atau find_symbol

Tool Analisis Kode#

find_symbolStabil

Lompat ke lokasi definisi dan penggunaan fungsi, class, atau variabel. Gunakan ketika Anda tahu nama (mis. "getCurrentUser") — lebih cepat dan presisi daripada Grep, serta mencakup seluruh repo terindeks. Opsional mengembalikan referensi dan metrik kepentingan.

Parameter:

symbol_nameOpsional
Tipe
str
Deskripsi
Nama simbol untuk dicari (opsional — kosongi untuk menelusuri berdasarkan metrik)
repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
scopeOpsional
Tipe
Literal[definitions, references, both]
Default
both
Deskripsi
Cakupan pencarian
limitOpsional
Tipe
int
Default
15
Deskripsi
Jumlah maksimum hasil yang dikembalikan di halaman ini
offsetOpsional
Tipe
int
Deskripsi
Offset kompatibilitas yang sudah usang. Utamakan cursor dari pagination.next_cursor.
cursorOpsional
Tipe
str
Deskripsi
Cursor opaque dari pagination.next_cursor. Teruskan tanpa perubahan dan pertahankan query serta filter tetap sama.
find_similarOpsional
Tipe
bool
Default
Deskripsi
Sertakan nama simbol serupa
include_metricsOpsional
Tipe
bool
Default
Deskripsi
Sertakan metrik centrality
metrics_detailOpsional
Tipe
Literal[summary, full]
Default
summary
Deskripsi
Ketika include_metrics=true: summary (default) mengembalikan sinyal keputusan + refactor_risk; full mengembalikan kumpulan metrik hasil kurasi yang lebih besar
path_filterOpsional
Tipe
str
Deskripsi
Filter berdasarkan awalan jalur file
branchOpsional
Tipe
str
Deskripsi
Override branch
symbol_typeOpsional
Tipe
Literal[function, class, variable, method, constant, module, interface, type]
Deskripsi
Filter tipe simbol
high_impactOpsional
Tipe
bool
Default
Deskripsi
Jelajahi symbol yang penting secara arsitektural (abaikan symbol_name). Mode default adalah popularity (desil PageRank teratas dikurangi utility mega-hub). Atur high_impact_mode=risk untuk articulation/bridge cut-vertex.
high_impact_modeOpsional
Tipe
Literal[popularity, risk]
Default
popularity
Deskripsi
Ketika high_impact=true: popularitas = desil PageRank teratas dikurangi mega-hub/modul utilitas; risiko = poin artikulasi diberi peringkat berdasarkan SMV bridge_count lalu k_core (risiko refaktor struktural, bukan popularitas hub)
in_cycleOpsional
Tipe
bool
Default
Deskripsi
Filter hanya simbol dalam siklus dependency
exclude_test_pathsOpsional
Tipe
bool
Default
true
Deskripsi
Saat menjelajah berdasarkan metrik grafik, kecualikan pengujian, fixtures, kode pihak ketiga, dan contoh sebelum memberi peringkat. Pencarian berdasarkan simbol bernama tidak berubah.

Paling Cocok Untuk:

  • Mematok definition, reference, dan graph metric dari symbol yang sudah diketahui
  • Menelusuri berdasarkan centrality, high_impact, atau in_cycle ketika symbol_name tidak disertakan

Tidak Direkomendasikan Untuk:

  • Kueri konseptual atau area yang belum dikenal — gunakan intelligent_search atau semantic_search

analyze_dependenciesStabil

Alias untuk blast-radius lewat dependency_search (dependents/incoming). Utamakan dependency_search dengan analysis_type="dependents" atau "impact" untuk agent baru. Mempertahankan bentuk respons impact multi-hop lama (graph, connection_summary, metrics opsional dengan refactor_risk). Gunakan graph_view untuk membatasi relationship family: dependency (default), type, data_flow, control_flow.

Parameter:

repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
targetWajib
Tipe
str
Deskripsi
Nama simbol untuk dianalisis
depthOpsional
Tipe
Literal[shallow, balanced, deep]
Default
balanced
Deskripsi
Kedalaman analisis
limitOpsional
Tipe
int
Default
10
Deskripsi
Jumlah maksimum hasil yang dikembalikan di halaman ini
offsetOpsional
Tipe
int
Deskripsi
Offset kompatibilitas yang sudah usang. Utamakan cursor dari pagination.next_cursor.
cursorOpsional
Tipe
str
Deskripsi
Cursor opaque dari pagination.next_cursor. Teruskan tanpa perubahan dan pertahankan query serta filter tetap sama.
directionOpsional
Tipe
Literal[incoming, outgoing, both]
Default
incoming
Deskripsi
Arah traversal
relationship_typesOpsional
Tipe
list[str]
Deskripsi
Filter tipe edge (CALL, IMPORT, INHERITS_FROM, dll.). Menimpa default yang diturunkan dari graph_view bila diberikan.
graph_viewOpsional
Tipe
Literal[dependency, type, data_flow, control_flow]
Default
dependency
Deskripsi
Tampilan graph: menentukan tipe edge traversal default dan metrik view yang dipakai saat include_metrics=true. dependency=[CALL,IMPORT,EXPORTS,REFERENCE,INSTANTIATES] (default), type=[INHERITS_FROM,IMPLEMENTS,OVERRIDE,DECORATES,OF_TYPE], data_flow=[READS,WRITES,ASSIGNS_TO], control_flow=[CONTROL_FLOW,THROWS,CATCHES]. Hanya dipakai sebagai default relationship_types bila relationship_types tidak diberikan. Nama parameter ini sengaja konsisten dengan dependency_search untuk keseragaman antar tools.
path_filterOpsional
Tipe
str
Deskripsi
Membatasi resolusi target symbol berdasarkan prefix file path; relasi graph yang dikembalikan bisa melintas keluar dari path tersebut
language_filterOpsional
Tipe
str
Deskripsi
Filter bahasa
branchOpsional
Tipe
str
Deskripsi
Override branch
per_hop_limitOpsional
Tipe
int
Deskripsi
Jumlah maksimum relationship per hop (1-300)
include_metricsOpsional
Tipe
bool
Default
Deskripsi
Sertakan metrik grafik dalam hasil, masing-masing diperkaya dengan blok refactor_risk turunan ({risk: "low"|"medium"|"high", is_articulation_point, bridge_count, k_core, graph_view, reasons}). risk adalah "low" jika bukan merupakan titik artikulasi (dalam tampilan yang dipilih), "medium" saat titik artikulasi menjembatani beberapa sisi, "high" saat menjembatani banyak sisi (ambang batas heuristik, tidak divalidasi secara empiris). Dihilangkan per simbol ketika tidak ada baris metrik untuk simbol/tampilan tersebut.
metrics_detailOpsional
Tipe
Literal[summary, full]
Default
summary
Deskripsi
Ketika include_metrics=true: summary (default) mengembalikan sinyal keputusan + refactor_risk; full mengembalikan kumpulan metrik hasil kurasi yang lebih besar
include_edge_metadataOpsional
Tipe
bool
Default
Deskripsi
Sertakan metadata dan bobot tepi mentah. Dinonaktifkan secara default karena metadata ekstraktor bisa berukuran besar; cakupan pengayaan dilaporkan ketika diaktifkan.
exclude_test_pathsOpsional
Tipe
bool
Default
true
Deskripsi
true default: mengecualikan jalur pengujian, perlengkapan, vendor, dan contoh dari tepi grafik yang dikembalikan. Atur false untuk menyertakannya.
include_module_symbolsOpsional
Tipe
bool
Default
Deskripsi
Secara default, false mengecualikan tepi grafik ketika from_name atau to_name adalah simbol __module__ sintetis. Atur true untuk menyertakan tepi tingkat modul.

Paling Cocok Untuk:

  • Legacy caller yang sudah terpasang pada bentuk response-nya (graph, connection_summary)

Tidak Direkomendasikan Untuk:

  • Agent loop baru — utamakan dependency_search, yang berbagi traversal core yang sama

get_task_contextStabil

Memulai pekerjaan di area yang belum dikenal? Jelaskan task-nya (mis. "tambahkan dukungan SSO", "perbaiki billing webhook") dan dapatkan satu paket file, kode, symbol, dan dependency yang relevan dalam satu panggilan yang dibatasi. File yang di-seed menyumbangkan konten indexed langsung meskipun tidak mendefinisikan symbol apa pun. Untuk hasil lebih banyak, lanjutkan dengan search tool khusus untuk layer tersebut.

Parameter:

task_descriptionWajib
Tipe
str
Deskripsi
Deskripsi task yang membutuhkan konteks
repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
limitOpsional
Tipe
int
Default
15
Deskripsi
Item konteks maksimum per layer
scopeOpsional
Tipe
Literal[semantic, symbols, dependencies, all]
Default
all
Deskripsi
Layer konteks yang disertakan
language_filterOpsional
Tipe
str
Deskripsi
Filter bahasa
path_filterOpsional
Tipe
str
Deskripsi
Filter berdasarkan prefix jalur file
branchOpsional
Tipe
str
Deskripsi
Override branch
include_related_contextOpsional
Tipe
bool
Default
Deskripsi
Sertakan konteks terkait dari simbol tetangga
seed_symbol_idsOpsional
Tipe
list[str]
Deskripsi
Tier-1 seed eksplisit: ID simbol yang sudah diketahui agen relevan untuk task (mis. simbol di file terbuka). Diprioritaskan dibanding seed turunan kata kunci. Tambahan — kosongi untuk perilaku berbasis kata kunci saja saat ini.
seed_file_pathsOpsional
Tipe
list[str]
Deskripsi
Seed eksplisit Tier-1: path file indexed yang sedang dibuka atau baru saja diedit agent. Mengembalikan bukti file langsung yang dibatasi dan meresolusi hingga 5 symbol per file untuk graph context, termasuk dokumen dan config tanpa symbol. Bersifat additive — abaikan untuk perilaku keyword-only.

Paling Cocok Untuk:

  • Task-aware context yang memadukan file yang di-seed dengan layer semantic, symbol, dan dependency

Tidak Direkomendasikan Untuk:

  • Pencarian single-tool ketika tool yang lebih spesifik sudah menjawab pertanyaannya

get_fileStabil

Membaca file dari repo indexed berdasarkan path. Utamakan Read tool lokal untuk file di disk — gunakan ini untuk pencarian cross-repo atau remote ketika file tidak ada di working tree Anda. Mendukung line range opsional; lanjutkan respons yang token-truncated dari metadata.next_line_start.

Parameter:

file_pathWajib
Tipe
str
Deskripsi
Jalur file relatif ke root repository
repositoryOpsional
Tipe
str
Deskripsi
Repository sebagai owner/repo[:branch]. Opsional — jangan sertakan untuk memakai default klien pada permintaan tersebut (bila disediakan) atau satu-satunya repository yang dapat diakses; berikan secara eksplisit hanya untuk menargetkan repository terindeks lain. Respons menampilkan repository yang digunakan.
line_startOpsional
Tipe
int
Deskripsi
Baris awal (1-indexed)
line_endOpsional
Tipe
int
Deskripsi
Baris akhir (1-indexed, inklusif; harus di line_start atau setelahnya)
branchOpsional
Tipe
str
Deskripsi
Override branch
max_tokensOpsional
Tipe
int
Default
5000
Deskripsi
Token maksimum untuk dikembalikan
include_metadataOpsional
Tipe
bool
Default
true
Deskripsi
Sertakan metadata file dalam respons

Paling Cocok Untuk:

  • Snapshot file remote atau indexed (line range, token limit)

Tidak Direkomendasikan Untuk:

  • Path yang sudah ada di disk lokal — gunakan Read tool lokal

Tool Sistem & Utilitas#

repository_contextStabil

Daftar repository yang bisa Anda cari, atau dapatkan info identity tentang satu (namespace/branch, indexed_commit_sha / index freshness). Panggil dengan action:"list" sekali untuk mengetahui repo slug persis yang diterima search tools. (Jika key Anda hanya punya satu repo, search tools default ke situ — Anda bisa melewatinya.) Jumlah file/blob/edge di seluruh namespace bersifat opt-in lewat include_statistics=true.

Parameter:

actionWajib
Tipe
Literal[list, info]
Deskripsi
Aksi: list repositori tersedia atau dapatkan info repo
repositoryOpsional
Tipe
str
Deskripsi
Repository dalam format owner/repo atau owner/repo:branch (wajib untuk info)
branchOpsional
Tipe
str
Deskripsi
Override branch
patternOpsional
Tipe
str
Deskripsi
Filter daftar repository dengan pola
include_statisticsOpsional
Tipe
bool
Default
Deskripsi
Opsional: sertakan jumlah indexed-data di seluruh namespace (file/blob/edge). Default false — identity repository tidak memerlukan agregat yang lebih lambat ini.
limitOpsional
Tipe
int
Default
20
Deskripsi
Jumlah maksimum hasil yang dikembalikan di halaman ini
offsetOpsional
Tipe
int
Deskripsi
Offset kompatibilitas tidak digunakan lagi. Lebih suka cursor dari pagination.next_cursor.
cursorOpsional
Tipe
str
Deskripsi
cursor buram dari pagination.next_cursor. Teruskan tanpa mengubah dan pertahankan kueri dan filter tidak berubah.

Paling Cocok Untuk:

  • Membuat daftar repository yang bisa diakses
  • Menentukan repository identity, branch, dan HEAD-vs-index freshness

Tidak Direkomendasikan Untuk:

  • Statistik seluruh namespace secara default — kirim include_statistics=true secara eksplisit, karena bisa lebih lambat daripada resolution

ask_maguyvaStabil

Bantuan dan feedback Maguyva. Utama: dapatkan tool guidance, atau kirim bug report / feature request yang disimpan untuk maintainer Maguyva. Jangan pernah menyertakan secret atau data pribadi sensitif dalam feedback. Operasi evaluate tetap ada hanya untuk back-compat — utamakan komputasi lokal atau host tools untuk pekerjaan math/hash/string.

Parameter:

operationWajib
Tipe
Literal[guidance, report_bug, request_feature, evaluate]
Deskripsi
Utama: guidance, report_bug, request_feature. Hanya legacy/compat: evaluate (deterministic expression engine; bukan bagian dari alur kerja agent utama).
queryOpsional
Tipe
str
Deskripsi
Topik guidance (mis. tool_selection, semantic_search). Hanya untuk evaluate legacy: expression string.
descriptionOpsional
Tipe
str
Deskripsi
Wajib untuk report_bug dan request_feature. Feedback Free-form untuk maintainer Maguyva. Jangan pernah menyertakan secret atau data pribadi sensitif.
related_toolOpsional
Tipe
Literal[ask_maguyva, get_file, repository_context, find_symbol, structural_search, dependency_search, analyze_dependencies, semantic_search, text_pattern_search, intelligent_search, get_task_context]
Deskripsi
Alat Maguyva opsional paling erat kaitannya dengan umpan balik

Paling Cocok Untuk:

  • Tool guidance (operation="guidance")
  • Bug report dan feature request permanen untuk maintainer Maguyva

Tidak Direkomendasikan Untuk:

  • Komputasi math/hash/string — operasi evaluate tetap ada hanya untuk back-compat; utamakan komputasi host lokal

Praktik Terbaik#

  1. Gunakan Override Eksplisit dengan Sengaja: Jangan sertakan repository ketika klien MCP Anda menyediakan default untuk permintaan tersebut atau kunci dapat mengakses tepat satu repository; jika tidak, berikan secara eksplisit.
  2. Pilih Mode Pencarian yang Tepat: Gunakan intelligent_search dengan mode="auto" untuk sebagian besar kasus. Tentukan mode bila Anda tahu persis kebutuhan Anda.
  3. Manfaatkan Filter Bahasa: Gunakan language_filter untuk mempersempit hasil dan meningkatkan performa.
  4. Boosting GraphRAG: Boosting kepentingan GraphRAG untuk pencarian semantik nonaktif secara default (boost_by_importance=false) demi menjaga ranking tetap aman untuk agent. Kirim boost_by_importance=true untuk mengaktifkan re-ranking yang peka sentralitas bagi architecture tour.
  5. Pencocokan Repository Tidak Peka Huruf Besar/Kecil, Bukan Fuzzy: repository_context mencocokkan nama repository tanpa peduli huruf besar/kecil — bukan mengoreksi typo. Periksa metadata.resolution_reason pada action info ("exact" vs "corrected") untuk melihat bagaimana sebuah nama diresolusi.
  6. Gabungkan Tools: Gunakan beberapa metode API bersamaan untuk analisis yang menyeluruh.
  7. Tangani Hasil Besar: Gunakan limit dan kontrol paging khusus tool (mis. line_start/line_end di get_file).
  8. Gunakan ask_maguyva untuk Panduan Tool: Operasi evaluate pada ask_maguyva (hash, base64, JSON, matematika) sifatnya legacy / hanya untuk back-compat. Panggil ask_maguyva dengan operation="guidance" dan query="tool_selection" sebagai gantinya untuk matriks local-tool-wins dan cheat sheet lengkap per tool.
  9. Verifikasi Dampak Sebelum dan Sesudah Mengedit: Sebelum mengedit symbol yang dipakai bersama, panggil dependency_search dengan analysis_type="impact" (atau kirim changed_paths untuk dampak PR/diff) untuk melihat blast radius-nya. Setelah mengedit, set verify_after_edit=true dengan targets dan/atau changed_paths untuk pengecekan ulang yang ringkas atas symbol yang sama.

Karakteristik Performa#

OperasiCatatan performa
Pencarian semantikKurang dari satu detik, tapi mencakup panggilan API embedding langsung setiap kali (tidak di-cache) — perkirakan ada latensi ekstra selain dari query vector
Pencarian teksKurang dari satu detik untuk exact/regex; pencarian konten fuzzy melakukan paging di sisi klien, jadi offset yang dalam lebih mahal — persempit dengan path_filter/language_filter
Pencarian strukturalTerindeks AST — biaya berskala sesuai volume hasil, bukan ukuran repository
Pencarian dependensiBiaya berskala sesuai depth — utamakan depth="shallow" kecuali Anda butuh konteks multi-hop; per_hop_limit membatasi fan-out
Pengambilan fileNyaris instan untuk satu file — gunakan line_start/line_end atau max_tokens untuk mem-page file besar alih-alih menarik satu file besar sekaligus
Konteks repositoryResolusi namespace hanya di-cache per request, bukan lintas panggilan — setiap pemanggilan tool melakukan resolusi ulang
ask_maguyva (guidance / evaluate)Nyaris instan — berjalan in-Worker tanpa panggilan database

Penanganan Error#

Semua metode API mengembalikan envelope terstruktur:

  • status: String — "success" atau "error". Sinyal degraded-match dan freshness ada di field bersarang seperti metadata.resolution_reason pada repository_context atau metadata.index_freshness.status.
  • tool: Nama tool yang menghasilkan respons ini
  • data: Payload hasil kalau berhasil (strukturnya bervariasi per tool)
  • error: Objek error terstruktur kalau status adalah "error" — mencakup type, message, suggestions, dan recovery_actions
  • metadata: Informasi tambahan tentang operasinya (routing, caching, penyesuaian parameter)
  • pagination: Ada di respons list — mencakup has_more dan next_cursor

Selalu periksa field status sebelum memproses hasil — nilainya hanya "success" atau "error". Untuk sinyal degraded-match atau freshness, baca field bersarang sebagai gantinya: metadata.resolution_reason pada repository_context, atau metadata.index_freshness.status (known/partial/unknown/unavailable).

Memulai#

  1. Konfigurasi Klien MCP: Arahkan klien MCP Anda ke endpoint server Maguyva
  2. Konfirmasi Akses Repository: Gunakan repository_context dengan list atau info untuk memeriksa repositori yang dapat diakses oleh API key
  3. Mulai Mencari: Mulai dengan intelligent_search dan jelajahi tools khusus sesuai kebutuhan
  4. Gabungkan Tools: Gunakan beberapa tools bersama untuk analisis kode menyeluruh

Untuk instruksi integrasi lebih detail, lihat panduan instalasi.