diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
index 6c9ce77..52b1190 100644
--- a/src/main/resources/static/index.html
+++ b/src/main/resources/static/index.html
@@ -364,6 +364,35 @@
document.addEventListener('DOMContentLoaded', fetchTools);
+ function generateDummyArguments(schemaStr) {
+ try {
+ if (!schemaStr || schemaStr === "null") return {};
+ const schema = JSON.parse(schemaStr);
+ if (!schema || !schema.properties) return {};
+
+ const dummy = {};
+ for (const [key, value] of Object.entries(schema.properties)) {
+ if (value.type === 'string') {
+ dummy[key] = "test_" + key;
+ } else if (value.type === 'number' || value.type === 'integer') {
+ dummy[key] = 123;
+ } else if (value.type === 'boolean') {
+ dummy[key] = true;
+ } else if (value.type === 'array') {
+ dummy[key] = [];
+ } else if (value.type === 'object') {
+ dummy[key] = {};
+ } else {
+ dummy[key] = "test";
+ }
+ }
+ return dummy;
+ } catch (e) {
+ console.warn("Failed to parse schema", e);
+ return {};
+ }
+ }
+
document.getElementById('mcpForm').addEventListener('submit', async function(e) {
e.preventDefault();
@@ -378,16 +407,15 @@
// Show Loading
loadingOverlay.classList.add('active');
+ const selectedOption = toolSelect.options[toolSelect.selectedIndex];
+ const dummyArguments = generateDummyArguments(selectedOption.dataset.schema);
+
const payload = {
jsonrpc: "2.0",
method: "tools/call",
params: {
- name: document.getElementById('toolName').value,
- arguments: {
- // arguments는 이제 순수 DTO이므로 테스트 UI에서는 빈 객체 또는 Mock 데이터를 보냅니다.
- // 실제 AI Agent는 parameterSchema를 보고 채워줍니다.
- ui_test_call: true
- }
+ name: toolSelect.value,
+ arguments: dummyArguments
},
id: Math.floor(Math.random() * 10000)
};