forked from kimhyungsik/ax_hub_mcp_tool
refactor: sync ToolMetadata and HTML scaffolding UI with new @McpFunction attributes (subToolName->name, name->displayName)
This commit is contained in:
@@ -38,8 +38,8 @@ public class ToolMetadata {
|
||||
// 1. Tool 기본 정보
|
||||
private String uid; // UUID 형식의 고유 식별자
|
||||
private String semver; // 버전 (예: 1.0.0)
|
||||
private String name; // 사람이 읽는 라벨 (1-128자)
|
||||
private String subToolName; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
||||
private String displayName; // 사람이 읽는 라벨 (1-128자)
|
||||
private String name; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
||||
private String description; // 툴의 목적 및 설명 (LLM 프롬프트에 활용 가능)
|
||||
|
||||
// 2. 파라미터 스키마 (JSON Schema 형태의 Map)
|
||||
|
||||
@@ -160,8 +160,7 @@ public class PodScaffolder {
|
||||
|
||||
# API 보안 키 설정
|
||||
mcp.security.api-keys.SHINHAN_MCP_SECRET_KEY_2026=mcp-client-1
|
||||
mcp.security.api-keys.SHINHAN_MCP_TEST_KEY_9999=mcp-client-2
|
||||
mcp.security.tenant-domains.mcp-client-1=CUSTOMER,COMMON
|
||||
mcp.security.tenant-domains.mcp-client-1=CUSTOMER,COMMON
|
||||
mcp.security.tenant-domains.mcp-client-2=ALL
|
||||
|
||||
# Gateway/Tool URLs
|
||||
|
||||
@@ -38,8 +38,8 @@ public class ToolMetadata {
|
||||
// 1. Tool 기본 정보
|
||||
private String uid; // UUID 형식의 고유 식별자
|
||||
private String semver; // 버전 (예: 1.0.0)
|
||||
private String name; // 사람이 읽는 라벨 (1-128자)
|
||||
private String subToolName; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
||||
private String displayName; // 사람이 읽는 라벨 (1-128자)
|
||||
private String name; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
||||
private String description; // 툴의 목적 및 설명 (LLM 프롬프트에 활용 가능)
|
||||
|
||||
// 2. 파라미터 스키마 (JSON Schema 형태의 Map)
|
||||
|
||||
@@ -387,7 +387,7 @@
|
||||
<form id="editToolForm">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">서브툴 이름 (수정불가)</label>
|
||||
<input type="text" class="form-control" id="editSubToolName" name="subToolName" readonly>
|
||||
<input type="text" class="form-control" id="editToolName" name="toolName" readonly>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">소속 도메인 그룹</label>
|
||||
@@ -515,8 +515,8 @@
|
||||
<tr class="tool-row">
|
||||
<td class="text-nowrap"><span class="badge bg-secondary tool-group">${t.categoryKey || 'UNKNOWN'}</span></td>
|
||||
<td class="fw-bold text-primary text-break tool-name">
|
||||
<a href="javascript:void(0)" onclick="openEditModal('${t.subToolName}', '${t.categoryKey}', '${escDesc}', ${isReg})" class="text-decoration-none">
|
||||
${t.subToolName}
|
||||
<a href="javascript:void(0)" onclick="openEditModal('${t.name}', '${t.categoryKey}', '${escDesc}', ${isReg})" class="text-decoration-none">
|
||||
${t.name}
|
||||
</a>
|
||||
${badgeHtml}
|
||||
</td>
|
||||
@@ -555,8 +555,8 @@
|
||||
}
|
||||
|
||||
let editModalInstance = null;
|
||||
function openEditModal(subToolName, categoryKey, description, isReg) {
|
||||
document.getElementById('editSubToolName').value = subToolName;
|
||||
function openEditModal(toolName, categoryKey, description, isReg) {
|
||||
document.getElementById('editToolName').value = toolName;
|
||||
document.getElementById('editCategoryKey').value = categoryKey !== 'null' ? categoryKey : '';
|
||||
document.getElementById('editDescription').value = description;
|
||||
document.getElementById('editRegister').value = isReg ? 'true' : 'false';
|
||||
@@ -568,7 +568,7 @@
|
||||
}
|
||||
|
||||
function submitToolUpdate() {
|
||||
const subToolName = document.getElementById('editSubToolName').value;
|
||||
const toolName = document.getElementById('editToolName').value;
|
||||
const categoryKey = document.getElementById('editCategoryKey').value;
|
||||
const description = document.getElementById('editDescription').value;
|
||||
const register = document.getElementById('editRegister').value;
|
||||
@@ -582,7 +582,7 @@
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
subToolName: subToolName,
|
||||
toolName: toolName,
|
||||
categoryKey: categoryKey,
|
||||
description: description,
|
||||
register: register
|
||||
|
||||
@@ -317,7 +317,7 @@
|
||||
<div class="absolute top-4 right-4 px-2 py-0.5 rounded text-[9px] font-bold font-mono border tracking-wider ${typeClass}">
|
||||
${tool.integrationType || 'DIRECT'}
|
||||
</div>
|
||||
<h3 class="text-lg font-bold text-white mb-1 pr-16">${tool.subToolName}</h3>
|
||||
<h3 class="text-lg font-bold text-white mb-1 pr-16">${tool.name}</h3>
|
||||
<p class="text-sm text-slate-400 leading-relaxed min-h-[40px]">${tool.description || '설명이 없습니다.'}</p>
|
||||
|
||||
${paramHtml}
|
||||
|
||||
@@ -31,8 +31,8 @@ public class ToolMetadata {
|
||||
// 1. Tool 기본 정보
|
||||
private String uid; // UUID 형식의 고유 식별자
|
||||
private String semver; // 버전 (예: 1.0.0)
|
||||
private String name; // 사람이 읽는 라벨 (1-128자)
|
||||
private String subToolName; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
||||
private String displayName; // 사람이 읽는 라벨 (1-128자)
|
||||
private String name; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
||||
private String description; // 툴의 목적 및 설명 (LLM 프롬프트에 활용 가능)
|
||||
|
||||
// 2. 파라미터 스키마 (JSON Schema 형태의 Map)
|
||||
|
||||
@@ -93,8 +93,8 @@ public class ToolRegistryHeartbeatSender {
|
||||
|
||||
ToolMetadata meta = new ToolMetadata();
|
||||
meta.setUid(java.util.UUID.nameUUIDFromBytes(subToolName.getBytes()).toString());
|
||||
meta.setName(baseName);
|
||||
meta.setSubToolName(subToolName);
|
||||
meta.setDisplayName(baseName);
|
||||
meta.setName(subToolName);
|
||||
meta.setSemver("1.0.0");
|
||||
meta.setDescription(functionAnnotation.description());
|
||||
meta.setCategoryKey(toolAnnotation.categoryKey());
|
||||
|
||||
Reference in New Issue
Block a user