Hi-AI
Hi-AI is a Model Context Protocol-based AI development tool that enhances productivity through natural language interaction and seamless AI collaboration. Key capabilities include:
π£οΈ Natural Language Command Execution: Automatically detects keywords (Korean/English) to execute appropriate tools without explicit commands
π§ Context-Aware Memory Management: Store, retrieve, search, and prioritize long-term memories with automatic context saving and session restoration
π Semantic Code Analysis: Performs deep code analysis using AST for TypeScript, JavaScript, JSX, and TSX projects
π Code Quality Analysis: Evaluates complexity, coupling, and cohesion metrics with real-time improvement suggestions
π§© Cognitive Problem Solving: Break down complex problems into structured steps with detailed step-by-step analyses
π― Prompt Engineering: Transform vague requests into specific prompts and analyze prompt quality
π Planning & Documentation: Generate PRDs, user stories, and development roadmaps
π Browser & Network Tools: Monitor console logs and inspect network requests for web applications
π Time Utilities: Manage time-based queries with specified formats and timezones
π οΈ Modular Architecture: Supports custom tool integration and enterprise-grade scalability
π Security & Privacy: Ensures local execution and session isolation for secure data handling
Provides integration with GitHub for issue reporting and project collaboration.
Available as an npm package for easy installation and integration with Node.js projects.
Enables real browser interactions for web development tasks through Puppeteer, allowing for console log monitoring and network request tracking.
Mentioned as a use case example, suggesting specialized support for React development workflows.
Built with TypeScript to ensure type safety, providing a foundation for the MCP's modular tool architecture.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hi-AIanalyze the complexity of my main.js file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hi-AI
Model Context Protocol κΈ°λ° AI κ°λ° μ΄μμ€ν΄νΈ
TypeScript + Python μ§μ Β· 35κ° μ λ¬Έ λꡬ Β· μ§μ κ·Έλν λ©λͺ¨λ¦¬ Β· μΈμ 컨ν μ€νΈ μλ μ£Όμ
λͺ©μ°¨
Related MCP server: Hi-AI
κ°μ
Hi-AIλ Model Context Protocol (MCP) νμ€μ ꡬνν AI κ°λ° μ΄μμ€ν΄νΈμ λλ€. μμ°μ΄ κΈ°λ° ν€μλ μΈμμ ν΅ν΄ 35κ°μ μ λ¬Ένλ λꡬλ₯Ό μ 곡νλ©°, κ°λ°μκ° λ³΅μ‘ν μμ μ μ§κ΄μ μΌλ‘ μνν μ μλλ‘ λμ΅λλ€.
ν΅μ¬ κ°μΉ
μμ°μ΄ κΈ°λ°: νκ΅μ΄/μμ΄ ν€μλλ‘ λꡬλ₯Ό μλμΌλ‘ μ€ν
μ§μ κ·Έλν λ©λͺ¨λ¦¬: λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό κ·Έλνλ‘ κ΅¬μ±νμ¬ μ°κ΄ μ 보 νμ
λ€μ€ μΈμ΄ μ§μ: TypeScript, JavaScript, Python μ½λ λΆμ
μμ‘΄μ± λΆμ: μ½λ κ° μμ‘΄ κ΄κ³ μκ°ν λ° μν μ°Έμ‘° κ°μ§
μν°νλΌμ΄μ¦ νμ§: 100% ν μ€νΈ 컀λ²λ¦¬μ§ λ° μ격ν νμ μμ€ν
μ£Όμ κΈ°λ₯
1. μ§μ κ·Έλν λ©λͺ¨λ¦¬ μμ€ν
λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό κ·Έλνλ‘ κ΅¬μ±νμ¬ μ°κ΄ μ 보λ₯Ό νμνλ 11κ°μ λꡬ:
μΈμ 컨ν μ€νΈ μλ μ£Όμ : μΈμ μμ μ μ΄μ λ©λͺ¨λ¦¬μ μ§μ κ·Έλνλ₯Ό μλμΌλ‘ λ‘λ (v2.1 μ κ·)
κ΄κ³ μ°κ²°: λ©λͺ¨λ¦¬ κ° μλ―Έλ‘ μ κ΄κ³ μ€μ (related_to, depends_on, implements λ±)
κ·Έλν νμ: BFS/DFS μκ³ λ¦¬μ¦μ ν΅ν μ°κ΄ λ©λͺ¨λ¦¬ νμ
λ©ν° μ λ΅ κ²μ: 5κ°μ§ κ²μ μ λ΅ μ§μ (keyword, graph_traversal, temporal, priority, context_aware)
νμλΌμΈ: μκ°μ λ©λͺ¨λ¦¬ νμ€ν 리 μκ°ν
μ£Όμ λꡬ:
get_session_context- π μΈμ μμ μ 컨ν μ€νΈ μλ λ‘λ (v2.1 μ κ·)save_memory- μ₯κΈ° λ©λͺ¨λ¦¬μ μ 보 μ μ₯recall_memory- μ μ₯λ μ 보 κ²μlink_memories- λ©λͺ¨λ¦¬ κ° κ΄κ³ μ°κ²°get_memory_graph- μ§μ κ·Έλν μ‘°νsearch_memories_advanced- λ©ν° μ λ΅ κ²μcreate_memory_timeline- νμλΌμΈ μμ±prioritize_memory- λ©λͺ¨λ¦¬ μ°μ μμ κ΄λ¦¬
2. μλ§¨ν± μ½λ λΆμ
AST κΈ°λ° μ½λ λΆμ λ° νμ λꡬ:
μ¬λ³Ό κ²μ: νλ‘μ νΈ μ 체μμ ν¨μ, ν΄λμ€, λ³μ μμΉ νμ
μ°Έμ‘° μΆμ : νΉμ μ¬λ³Όμ λͺ¨λ μ¬μ©μ² μΆμ
μμ‘΄μ± κ·Έλν: μ½λ κ° μμ‘΄ κ΄κ³ μκ°ν (v2.0 μ κ·)
μν μ°Έμ‘° κ°μ§: μν μμ‘΄μ± μλ νμ§ (v2.0 μ κ·)
λ€μ€ μΈμ΄: TypeScript, JavaScript, Python μ§μ
μ£Όμ λꡬ:
find_symbol- μ¬λ³Ό μ μ κ²μfind_references- μ¬λ³Ό μ°Έμ‘° μ°ΎκΈ°analyze_dependency_graph- μμ‘΄μ± κ·Έλν λΆμ (v2.0 μ κ·)
3. μ½λ νμ§ λΆμ
ν¬κ΄μ μΈ μ½λ λ©νΈλ¦ λ° νμ§ νκ°:
볡μ‘λ λΆμ: Cyclomatic, Cognitive, Halstead λ©νΈλ¦
κ²°ν©λ/μμ§λ: λͺ¨λ ꡬ쑰 건μ μ± νκ°
νμ§ μ μ: A-F λ±κΈ μμ€ν
κ°μ μ μ: μ€ν κ°λ₯ν 리ν©ν λ§ λ°©μ
μ£Όμ λꡬ:
analyze_complexity- 볡μ‘λ λ©νΈλ¦ λΆμvalidate_code_quality- μ½λ νμ§ νκ°check_coupling_cohesion- κ²°ν©λ/μμ§λ λΆμsuggest_improvements- κ°μ μ μapply_quality_rules- νμ§ κ·μΉ μ μ©get_coding_guide- μ½λ© κ°μ΄λ μ‘°ν
4. νλ‘μ νΈ κ³ν λꡬ
체κ³μ μΈ μꡬμ¬ν λΆμ λ° λ‘λλ§΅ μμ±:
PRD μμ±: μ ν μꡬμ¬ν λ¬Έμ μλ μμ±
μ¬μ©μ μ€ν 리: μμ© μ‘°κ±΄ ν¬ν¨ μ€ν 리 μμ±
MoSCoW λΆμ: μꡬμ¬ν μ°μ μμν
λ‘λλ§΅ μμ±: λ¨κ³λ³ κ°λ° μΌμ κ³ν
μ£Όμ λꡬ:
generate_prd- μ ν μꡬμ¬ν λ¬Έμ μμ±create_user_stories- μ¬μ©μ μ€ν 리 μμ±analyze_requirements- μꡬμ¬ν λΆμfeature_roadmap- κΈ°λ₯ λ‘λλ§΅ μμ±
5. μμ°¨μ μ¬κ³ λꡬ
ꡬ쑰νλ λ¬Έμ ν΄κ²° λ° μμ¬κ²°μ μ§μ:
λ¬Έμ λΆν΄: 볡μ‘ν λ¬Έμ λ₯Ό λ¨κ³λ³λ‘ λΆν΄
μ¬κ³ 체μΈ: μμ°¨μ μΆλ‘ κ³Όμ μμ±
λ€μν κ΄μ : λΆμμ /μ°½μμ /체κ³μ /λΉνμ μ¬κ³
μ€ν κ³ν: μμ μ μ€ν κ°λ₯ν κ³νμΌλ‘ λ³ν
μ£Όμ λꡬ:
create_thinking_chain- μ¬κ³ μ²΄μΈ μμ±analyze_problem- λ¬Έμ λΆμstep_by_step_analysis- λ¨κ³λ³ λΆμformat_as_plan- κ³ν νμν
6. ν둬ννΈ μμ§λμ΄λ§
ν둬ννΈ νμ§ ν₯μ λ° μ΅μ ν:
μλ κ°ν: λͺ¨νΈν μμ²μ ꡬ체μ μΌλ‘ λ³ν
νμ§ νκ°: λͺ νμ±, ꡬ체μ±, λ§₯λ½μ± μ μν
Gemini μ΅μ ν: Google Gemini API ν둬νν μ λ΅
μ£Όμ λꡬ:
enhance_prompt- ν둬ννΈ κ°νanalyze_prompt- ν둬ννΈ νμ§ λΆμenhance_prompt_gemini- Gemini ν둬νν μ λ΅
7. μΆλ‘ νλ μμν¬
볡μ‘ν λ¬Έμ μ 체κ³μ λΆμ:
9λ¨κ³ μΆλ‘ : λ¬Έμ λΆν΄, κ°μ€ νμ, μν νκ°
λ Όλ¦¬μ κ²μ¦: μμ μ±κ³Ό μ λ°μ± 보μ₯
μ£Όμ λꡬ:
apply_reasoning_framework- 9λ¨κ³ μΆλ‘ νλ μμν¬
8. μ¬μ© λΆμ (v2.0 μ κ·)
λꡬ μ¬μ© ν΅κ³ λ° λΆμ:
λ©λͺ¨λ¦¬ ν΅κ³: μΉ΄ν κ³ λ¦¬λ³ λΆν¬, μκ°λ³ νλ
κ·Έλν λΆμ: μ°κ²° ν΅κ³, ν΄λ¬μ€ν° μ 보
μ£Όμ λꡬ:
get_usage_analytics- μ¬μ© λΆμ μ‘°ν
9. UI ν리뷰 & μκ°
preview_ui_ascii- ASCII UI ν리뷰get_current_time- νμ¬ μκ° μ‘°ν
Hi-GCloud μ°λ
Hi-AIλ hi-gcloud MCPμ ν¨κ» μ¬μ©νλ©΄ κ°λ ₯ν GCP μ΄μ + μ½λ μμ μν¬νλ‘μ°λ₯Ό μ 곡ν©λλ€.
μ°λ λ°©μ
hi-gcloudμμ μλ¬λ₯Ό λ°κ²¬νλ©΄ hi-ai λꡬλ₯Ό μλμΌλ‘ μΆμ²ν©λλ€:
π Cloud Run λ‘κ·Έ: my-api
π΄ 3κ°μ μλ¬κ° λ°κ²¬λμμ΅λλ€.
π‘ hi-ai μ°λ κ°λ₯: μλ¬ λΆμμ΄ νμνλ©΄ analyze_problem λκ΅¬λ‘ μμΈμ λΆμνκ³ ,
κ΄λ ¨ μ½λλ₯Ό μ°Ύμ μμ λ°©μμ μ μν μ μμ΅λλ€.μν¬νλ‘μ° μμ
User: "λ°°ν¬κ° μ€ν¨νμ΄"
[hi-gcloud]
β gcp_run_logsλ‘ μλ¬ λ‘κ·Έ μ‘°ν
β μλ¬ 3건 λ°κ²¬, hi-ai μ°λ ννΈ μ 곡
[hi-ai μλ μ°λ]
β analyze_problemμΌλ‘ μλ¬ μμΈ λΆμ
β find_symbolλ‘ κ΄λ ¨ μ½λ μμΉ νμ
β suggest_improvementsλ‘ μμ λ°©μ μ μ
β save_memoryλ‘ ν΄κ²° λ°©λ² μ μ₯ (μ¬λ° λ°©μ§)μ€μΉ
λ MCPλ₯Ό ν¨κ» μ€μΉνλ©΄ μλμΌλ‘ μ°λλ©λλ€:
{
"mcpServers": {
"hi-ai": {
"command": "npx",
"args": ["-y", "@su-record/hi-ai"]
},
"hi-gcloud": {
"command": "npx",
"args": ["-y", "@polin-go/hi-gcloud"]
}
}
}μ°λ λꡬ λ§€ν
hi-gcloud μν© | hi-ai μΆμ² λꡬ |
μλ¬ λ‘κ·Έ λ°κ²¬ |
|
λ°°ν¬ μ€ν¨ |
|
μ±λ₯ λ¬Έμ |
|
λΉμ© μ¦κ° |
|
v2.1.0 μ λ°μ΄νΈ
μ£Όμ λ³κ²½μ¬ν
Hi-AI v2.1.0μ μΈμ 컨ν μ€νΈ μλ μ£Όμ κΈ°λ₯μ λμ ν λ§μ΄λ 릴리μ€μ λλ€.
μ κ· κΈ°λ₯
κΈ°λ₯ | μ€λͺ |
| μΈμ μμ μ μ΄μ λ©λͺ¨λ¦¬, μ§μ κ·Έλν, νμλΌμΈμ ν λ²μ μ‘°ν |
| ν΄λΌμ΄μΈνΈκ° 리μμ€λ₯Ό μ½μ λ μλμΌλ‘ 컨ν μ€νΈ μ 곡 |
λꡬ description κ°μ | LLMμ΄ μΈμ μμ μ μλμΌλ‘ 컨ν μ€νΈλ₯Ό νμ νλλ‘ μ λ |
λ³κ²½ μμ½
νλͺ© | v2.0.0 | v2.1.0 | λ³ν |
λꡬ κ°μ | 34κ° | 35κ° | +1κ° |
리μμ€ κ°μ | 3κ° | 4κ° | +1κ° |
μΈμ 컨ν μ€νΈ | μλ | μλ κΆμ₯ | κ°μ |
v2.0.0 μ λ°μ΄νΈ
μ£Όμ λ³κ²½μ¬ν
Hi-AI v2.0.0μ μ§μ κ·Έλν κΈ°λ° λ©λͺ¨λ¦¬ μμ€ν κ³Ό κ³ κΈ μ½λ λΆμ κΈ°λ₯μ λμ ν λ©μ΄μ 릴리μ€μ λλ€.
μ κ· κΈ°λ₯ (6κ° λꡬ)
λꡬ | μ€λͺ |
| λ©λͺ¨λ¦¬ κ° κ΄κ³ μ°κ²° (μ§μ κ·Έλν) |
| μ§μ κ·Έλν μ‘°ν/μκ°ν (Mermaid λ€μ΄μ΄κ·Έλ¨ μ§μ) |
| 5κ°μ§ μ λ΅μ λ©ν° κ²μ |
| μκ°μ λ©λͺ¨λ¦¬ νμλΌμΈ |
| μ½λ μμ‘΄μ± λΆμ λ° μν μ°Έμ‘° κ°μ§ |
| μ¬μ© ν΅κ³/λΆμ |
μν€ν μ² κ°μ
index.ts: 37κ° switch case β λμ λμ€ν¨μΉ ν¨ν΄
MemoryManager: μ§μ κ·Έλν κΈ°λ₯ μΆκ° (395μ€ β 823μ€)
μ½λ μ΅μ ν: λΆνμν μμ‘΄μ± μ κ±° (puppeteer-core)
μ€μΉ
μμ€ν μꡬμ¬ν
Node.js 18.0 μ΄μ
TypeScript 5.0 μ΄μ
MCP νΈν ν΄λΌμ΄μΈνΈ (Claude Desktop, Cursor, Windsurf)
Python 3.x (Python μ½λ λΆμ μ)
μ€μΉ λ°©λ²
NPM ν¨ν€μ§
# κΈλ‘λ² μ€μΉ
npm install -g @su-record/hi-ai
# λ‘컬 μ€μΉ
npm install @su-record/hi-aiSmithery νλ«νΌ
# μν΄λ¦ μ€μΉ
https://smithery.ai/server/@su-record/hi-aiMCP ν΄λΌμ΄μΈνΈ μ€μ
Claude Desktop λλ λ€λ₯Έ MCP ν΄λΌμ΄μΈνΈμ μ€μ νμΌμ μΆκ°:
{
"mcpServers": {
"hi-ai": {
"command": "hi-ai",
"args": [],
"env": {}
}
}
}λꡬ μΉ΄νλ‘κ·Έ
μ 체 λꡬ λͺ©λ‘ (35κ°)
μΉ΄ν κ³ λ¦¬ | λꡬ μ | λꡬ λͺ©λ‘ |
λ©λͺ¨λ¦¬ - κΈ°λ³Έ | 6 | save_memory, recall_memory, list_memories, delete_memory, update_memory, prioritize_memory |
λ©λͺ¨λ¦¬ - κ·Έλν | 4 | link_memories, get_memory_graph, search_memories_advanced, create_memory_timeline |
λ©λͺ¨λ¦¬ - μΈμ | 1 | get_session_context π |
μ½λ λΆμ | 3 | find_symbol, find_references, analyze_dependency_graph |
μ¬κ³ | 4 | create_thinking_chain, analyze_problem, step_by_step_analysis, format_as_plan |
μ½λ νμ§ | 6 | analyze_complexity, validate_code_quality, check_coupling_cohesion, suggest_improvements, apply_quality_rules, get_coding_guide |
κ³ν | 4 | generate_prd, create_user_stories, analyze_requirements, feature_roadmap |
ν둬ννΈ | 3 | enhance_prompt, analyze_prompt, enhance_prompt_gemini |
μΆλ‘ | 1 | apply_reasoning_framework |
λΆμ | 1 | get_usage_analytics |
UI | 1 | preview_ui_ascii |
μκ° | 1 | get_current_time |
ν€μλ λ§€ν μμ
λ©λͺ¨λ¦¬ λꡬ
λꡬ | νκ΅μ΄ | μμ΄ |
save_memory | κΈ°μ΅ν΄, μ μ₯ν΄ | remember, save this |
recall_memory | λ μ¬λ €, κΈ°μ΅λ | recall, remind me |
get_session_context | μΈμ μμ, 컨ν μ€νΈ | session start, context |
link_memories | μ°κ²°ν΄, κ΄κ³ | link, connect |
get_memory_graph | κ·Έλν, κ΄κ³λ | graph, relations |
search_memories_advanced | κ³ κΈ κ²μ, μ°Ύμ | advanced search, find |
μ½λ λΆμ λꡬ
λꡬ | νκ΅μ΄ | μμ΄ |
find_symbol | ν¨μ μ°Ύμ, ν΄λμ€ μ΄λ | find function, where is |
analyze_dependency_graph | μμ‘΄μ±, κ΄κ³ | dependency, relations |
analyze_complexity | 볡μ‘λ, 볡μ‘νμ§ | complexity, how complex |
validate_code_quality | νμ§, 리뷰 | quality, review |
μν€ν μ²
μμ€ν ꡬ쑰
graph TB
subgraph "Client Layer"
A[Claude Desktop / Cursor / Windsurf]
end
subgraph "MCP Server"
B[Hi-AI v2.1.0]
end
subgraph "Core Libraries"
C1[MemoryManager + Graph]
C2[ContextCompressor]
C3[ProjectCache]
C4[PythonParser]
end
subgraph "Tool Categories"
D1[Memory Basic x6]
D2[Memory Graph x4]
D2b[Memory Session x1]
D3[Code Analysis x3]
D4[Thinking Tools x4]
D5[Quality Tools x6]
D6[Planning Tools x4]
D7[Prompt Tools x3]
D8[Reasoning x1]
D9[Analytics x1]
D10[UI/Time x2]
end
subgraph "Data Layer"
E1[(SQLite Database)]
E2[Project Files]
end
A <--> B
B --> C1 & C2 & C3 & C4
B --> D1 & D2 & D2b & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10
C1 --> E1
C3 --> E2
C4 --> E2
D1 --> C1 & C2
D2 --> C1
D3 --> C3 & C4
D5 --> C4
D9 --> C1ν΅μ¬ μ»΄ν¬λνΈ
MemoryManager (v2.0 νμ₯)
μν : μꡬ λ©λͺ¨λ¦¬ μ μ₯μ λ° μ§μ κ·Έλν κ΄λ¦¬
κΈ°μ : SQLite, better-sqlite3
κΈ°λ₯: CRUD, κ²μ, μ°μ μμ, κ·Έλν κ΄κ³, BFS/DFS νμ
μ΅μ ν: WAL λͺ¨λ, μΈλ±μ±, Prepared Statements
ContextCompressor
μν : 컨ν μ€νΈ μμΆ κ΄λ¦¬
μκ³ λ¦¬μ¦: μ°μ μμ κΈ°λ° μμΆ
κΈ°λ₯: μ€μλμ λ°λ₯Έ μ νμ 보쑴
ProjectCache
μν : ts-morph νλ‘μ νΈ μΊμ±
μ λ΅: LRU μκ³ λ¦¬μ¦
κΈ°λ₯: λ°λ³΅ λΆμ μ±λ₯ ν₯μ
μ ν: 100MB/νλ‘μ νΈ, 200MB μ 체
PythonParser
μν : Python μ½λ AST λΆμ
λ°©λ²: subprocess μ€ν
κΈ°λ₯: μ¬λ³Ό μΆμΆ, 볡μ‘λ κ³μ°
μμ : νμμμ, μλ μ 리
λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ (v2.0)
-- memories ν
μ΄λΈ
CREATE TABLE memories (
key TEXT PRIMARY KEY,
value TEXT NOT NULL,
category TEXT NOT NULL DEFAULT 'general',
timestamp TEXT NOT NULL,
lastAccessed TEXT NOT NULL,
priority INTEGER DEFAULT 0
);
-- memory_relations ν
μ΄λΈ (v2.0 μ κ·)
CREATE TABLE memory_relations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sourceKey TEXT NOT NULL,
targetKey TEXT NOT NULL,
relationType TEXT NOT NULL,
strength REAL DEFAULT 1.0,
metadata TEXT,
timestamp TEXT NOT NULL,
UNIQUE(sourceKey, targetKey, relationType)
);μ±λ₯
μ£Όμ μ΅μ ν
νλ‘μ νΈ μΊμ±
LRU μΊμλ₯Ό ν΅ν λ°λ³΅ λΆμ μ±λ₯ ν₯μ
5λΆ TTLλ‘ μ΅μ μν μ μ§
λ©λͺ¨λ¦¬ μ νμ ν΅ν 리μμ€ κ΄λ¦¬
λ©λͺ¨λ¦¬ μμ
SQLite νΈλμμ μΌλ‘ λ°°μΉ μμ μ΅μ ν
μκ° λ³΅μ‘λ κ°μ : O(nΒ²) β O(n)
μΈλ±μ±μ ν΅ν λΉ λ₯Έ μ‘°ν
κ·Έλν νμ (v2.0)
BFS/DFS μκ³ λ¦¬μ¦μΌλ‘ ν¨μ¨μ νμ
Union-Findλ‘ ν΄λ¬μ€ν° κ°μ§
κ²½λ‘ μ°ΎκΈ° μ΅μ ν
κ°λ° κ°μ΄λ
νκ²½ μ€μ
# 리ν¬μ§ν 리 ν΄λ‘
git clone https://github.com/su-record/hi-ai.git
cd hi-ai
# μμ‘΄μ± μ€μΉ
npm install
# λΉλ
npm run build
# κ°λ° λͺ¨λ
npm run devν μ€νΈ
# μ 체 ν
μ€νΈ μ€ν
npm test
# Watch λͺ¨λ
npm run test:watch
# UI λͺ¨λ
npm run test:ui
# 컀λ²λ¦¬μ§ 리ν¬νΈ
npm run test:coverageμ½λ μ€νμΌ
TypeScript: strict λͺ¨λ
νμ :
src/types/tool.tsμ¬μ©ν μ€νΈ: 100% 컀λ²λ¦¬μ§ μ μ§
컀λ°: Conventional Commits νμ
μ λꡬ μΆκ°
src/tools/category/λλ ν 리μ νμΌ μμ±ToolDefinitionμΈν°νμ΄μ€ ꡬνsrc/index.tsμtoolHandlersμ λ±λ‘tests/unit/λλ ν 리μ ν μ€νΈ μμ±README μ λ°μ΄νΈ
κΈ°μ¬μ
νΉλ³ κ°μ¬
Smithery - MCP μλ² λ°°ν¬ λ° μν΄λ¦ μ€μΉ νλ«νΌ μ 곡
λΌμ΄μ μ€
MIT License - μμ λ‘κ² μ¬μ©, μμ , λ°°ν¬ κ°λ₯
μΈμ©
μ΄ νλ‘μ νΈλ₯Ό μ°κ΅¬λ μμ μ μ©λλ‘ μ¬μ©νμ€ κ²½μ°:
@software{hi-ai2025,
author = {Su},
title = {Hi-AI: Knowledge Graph-Based MCP Server for AI-Assisted Development},
year = {2025},
version = {2.1.0},
url = {https://github.com/su-record/hi-ai}
}Star History
Hi-AI v2.1.0
μ§μ κ·Έλν λ©λͺ¨λ¦¬ Β· μΈμ 컨ν μ€νΈ μλ μ£Όμ Β· μμ‘΄μ± λΆμ Β· 35κ° μ λ¬Έ λꡬ
Made with β€οΈ by Su
π Homepage Β· π Documentation Β· π Issues Β· π¬ Discussions
Available Tools
35 toolsanalyze_complexityCRead-onlyIdempotent
볡μ‘λ|볡μ‘νμ§|complexity|how complex|λμ΄λ - Analyze code complexity
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code to analyze | |
| metrics | No | Metrics to calculate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, indicating a safe, non-destructive, repeatable operation with closed-world behavior. The description adds no behavioral traits beyond this, but since annotations are comprehensive, the bar is lower. There's no contradiction with annotations, and the description doesn't mislead, so it earns a baseline score for not detracting from the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but inefficiently structured with redundant terms ('볡μ‘λ|볡μ‘νμ§|complexity|how complex|λμ΄λ'), which adds noise without clarity. It's front-loaded but could be more concise by eliminating repetition. The single sentence earns some points for brevity but loses for wastefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, 1 required), rich annotations (covering safety and behavior), and no output schema, the description is minimally complete. It states the purpose but lacks details on output format or usage context. With annotations handling behavioral aspects, it's adequate but could better address gaps like result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters ('code' and 'metrics' with enum values). The description adds no meaning beyond the schema, as it doesn't explain parameter usage or semantics. With high schema coverage, the baseline is 3, reflecting adequate but no extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool analyzes code complexity, which is a clear purpose, but it's somewhat vague with repetitive phrasing ('볡μ‘λ|볡μ‘νμ§|complexity|how complex|λμ΄λ'). It doesn't explicitly differentiate from sibling tools like 'analyze_problem' or 'validate_code_quality', though the title 'Analyze Complexity' helps. The verb 'analyze' is specific, but the resource 'code complexity' could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention sibling tools like 'analyze_problem' or 'validate_code_quality', nor does it specify contexts or exclusions for its use. Usage is implied by the name and description but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_dependency_graphBRead-onlyIdempotent
μ½λ μμ‘΄μ± κ·Έλνλ₯Ό λΆμν©λλ€.
ν€μλ: μμ‘΄μ±, κ΄κ³ λΆμ, μν μ°Έμ‘°, dependency graph, circular dependency
λΆμ λ΄μ©:
νμΌ κ° import/export κ΄κ³
μν μμ‘΄μ± κ°μ§
λͺ¨λ ν΄λ¬μ€ν° μλ³
μ½λ κ²°ν©λ λΆμ
μ¬μ© μμ:
"src ν΄λμ μμ‘΄μ± κ·Έλν λΆμν΄μ€"
"index.tsμ μμ‘΄ κ΄κ³ 보μ¬μ€"
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | νλ‘μ νΈ κ²½λ‘ | |
| targetFile | No | νΉμ νμΌ λΆμ (μ νμ¬ν) | |
| maxDepth | No | μ΅λ νμ κΉμ΄ (κΈ°λ³Έκ°: 3) | |
| includeExternal | No | μΈλΆ ν¨ν€μ§ ν¬ν¨ μ¬λΆ (κΈ°λ³Έκ°: false) | |
| detectCircular | No | μν μμ‘΄μ± κ°μ§ (κΈ°λ³Έκ°: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds behavioral context by specifying what gets analyzed (e.g., circular dependencies, module clusters), which is useful beyond annotations. However, it doesn't disclose additional traits like performance implications, output format, or error handling. With annotations covering core safety, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with a clear purpose statement followed by bullet points of analysis content and usage examples. It avoids redundancy and wastes no sentences, though the keyword list could be considered slightly extraneous. Overall, it's efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema), the description provides a good overview of what the analysis entails but lacks details on return values or error cases. Annotations cover safety aspects, but without an output schema, the description doesn't explain what results to expect (e.g., graph structure, report format). It's adequate but has gaps in completeness for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 5 parameters well-documented in the schema (e.g., projectPath, targetFile, maxDepth). The description doesn't add parameter-specific details beyond what the schema provides, such as explaining how maxDepth affects analysis or what includeExternal entails. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate with extra semantic insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes code dependency graphs, listing specific analysis aspects like import/export relationships, circular dependency detection, module clustering, and coupling analysis. It distinguishes from most siblings (e.g., analyze_complexity, check_coupling_cohesion) by focusing specifically on dependency graphs, though it doesn't explicitly differentiate from tools like get_memory_graph which might have overlapping concepts. The purpose is specific but could be more precise about sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage examples that imply when to use this tool (e.g., analyzing src folder dependencies or index.ts relationships), giving some contextual guidance. However, it lacks explicit when-not-to-use advice or clear alternatives among siblings (e.g., vs. check_coupling_cohesion or analyze_complexity). The guidelines are helpful but not comprehensive for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_problemCRead-onlyIdempotent
λ¬Έμ λΆμ|μ΄λ»κ² μ κ·Ό|λΆμν΄μ€|analyze this|how to approach|break this down - Break down complex problem into structured steps
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | Problem to analyze | |
| domain | No | Problem domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds minimal behavioral context beyond thisβit implies a step-by-step breakdown but doesn't specify output format, limitations, or side effects. No contradiction with annotations exists, but the description doesn't enrich behavioral understanding significantly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is poorly structured and not front-loaded. It starts with a confusing keyword-like phrase ('λ¬Έμ λΆμ|μ΄λ»κ² μ κ·Ό|λΆμν΄μ€|analyze this|how to approach|break this down') before the core function. This wastes space and reduces clarity. The core message is concise, but the overall structure is inefficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and annotations covering basic safety, the description lacks completeness. It doesn't explain what the structured steps output looks like, any limitations (e.g., problem size), or how it differs from similar tools. For a tool with 2 parameters and many siblings, this leaves significant gaps for an agent to infer usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions ('Problem to analyze', 'Problem domain'). The description adds no parameter-specific details beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline is 3, as the description doesn't compensate but doesn't detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool breaks down complex problems into structured steps, which is a clear purpose. However, it's somewhat vague ('complex problem' is broad) and doesn't differentiate from siblings like 'step_by_step_analysis' or 'analyze_complexity' that might have overlapping functionality. The initial phrase 'λ¬Έμ λΆμ|μ΄λ»κ² μ κ·Ό|λΆμν΄μ€|analyze this|how to approach|break this down' appears to be keyword-like and doesn't add clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools (e.g., 'step_by_step_analysis', 'analyze_complexity', 'analyze_requirements'), there's no indication of context, prerequisites, or exclusions. The agent must infer usage from the tool name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_promptCRead-onlyIdempotent
ν둬ννΈ λΆμ|νκ°|μ μ|μΌλ§λ μ’μμ§|analyze prompt|rate this|score|how good|prompt quality - Analyze prompt quality
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Prompt to analyze | |
| criteria | No | Specific criteria to evaluate (default: all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a read-only, non-destructive, idempotent operation with a closed-world scope, which the description does not contradict. The description adds minimal behavioral context by implying the tool evaluates prompt quality, but it does not elaborate on aspects like evaluation metrics, output format, or rate limits. Given the annotations cover key safety traits, the description's addition is limited but not contradictory, warranting a score above baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a disorganized list of keywords and translations (e.g., 'ν둬ννΈ λΆμ|νκ°|μ μ|μΌλ§λ μ’μμ§|analyze prompt|rate this|score|how good|prompt quality') rather than a coherent sentence. It lacks structure and front-loading of key information, making it inefficient and cluttered without adding substantive value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations provide clear safety hints (read-only, non-destructive) and the schema fully documents parameters, the description is minimally adequate for a simple analysis tool. However, it lacks details on output (no output schema) and does not explain what 'prompt quality' entails or how results are presented, leaving gaps in understanding the tool's full behavior and use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters ('prompt' and 'criteria'). The description does not add any meaningful semantics beyond the schema, such as examples of criteria or how the analysis is applied. With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract from the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a tautology that essentially restates the tool name 'analyze_prompt' with synonyms and translations (e.g., 'νκ°', 'μ μ', 'rate this', 'score'), rather than clearly stating what the tool does. It mentions analyzing prompt quality but lacks specificity about what aspects of quality are evaluated or how the analysis is performed, failing to distinguish it from sibling tools like 'analyze_complexity' or 'suggest_improvements'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, nor does it reference sibling tools (e.g., 'enhance_prompt' for improvement suggestions or 'analyze_complexity' for complexity analysis). This leaves the agent with no information to make an informed choice among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_requirementsCRead-onlyIdempotent
μꡬμ¬ν λΆμ|νμν κ²λ€|requirements analysis|what we need|analyze requirements|νμ κΈ°λ₯ - Analyze project requirements
| Name | Required | Description | Default |
|---|---|---|---|
| requirements | Yes | List of requirements to analyze | |
| stakeholders | No | Project stakeholders (e.g., users, admins, developers) | |
| constraints | No | Project constraints (timeline, budget, technical) | |
| analysisMethod | No | Analysis method | moscow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, which already convey that this is a safe, non-destructive, and deterministic operation. The description adds no behavioral context beyond this, such as rate limits or authentication needs. However, it does not contradict the annotations, so it meets the lower bar set by the annotations without adding significant value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a repetitive list of phrases ('μꡬμ¬ν λΆμ|νμν κ²λ€|requirements analysis|what we need|analyze requirements|νμ κΈ°λ₯ - Analyze project requirements') that lack structure and front-loading. It wastes space by restating the same concept in multiple languages without adding clarity or value, making it inefficient and poorly organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, 100% schema coverage, annotations provided, no output schema), the description is incomplete. It fails to explain what the analysis outputs or how it integrates with sibling tools, leaving gaps in understanding the tool's role. However, annotations cover safety and determinism, partially compensating for the description's shortcomings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for all parameters (e.g., 'requirements' as a list to analyze, 'analysisMethod' with enum options). The description adds no parameter semantics beyond what the schema provides, such as explaining how parameters interact or their impact on analysis. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'μꡬμ¬ν λΆμ|νμν κ²λ€|requirements analysis|what we need|analyze requirements|νμ κΈ°λ₯ - Analyze project requirements' is vague and repetitive. It lists multiple phrases that essentially restate the tool name ('analyze requirements') without specifying what the analysis produces or how it differs from sibling tools like 'analyze_complexity' or 'analyze_problem'. The purpose is implied but lacks specificity about the verb+resource outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, nor does it differentiate from sibling tools such as 'analyze_complexity' or 'generate_prd'. Without such information, the agent must infer usage from the tool name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_quality_rulesCRead-onlyIdempotent
κ·μΉ μ μ©|νμ€ μ μ©|apply rules|apply standards|follow conventions|μ μ©ν΄ - Apply quality rules
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | Application scope | |
| language | No | Programming language context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide comprehensive behavioral information (readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false), so the description's burden is reduced. The description doesn't contradict these annotations, but also adds no meaningful behavioral context beyond what's already in structured fields. No information about what 'applying' entails operationally, side effects, or implementation details is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically brief, the description is poorly structured and contains redundant synonyms that don't add value. The multilingual repetition ('κ·μΉ μ μ©|νμ€ μ μ©|apply rules|apply standards|follow conventions|μ μ©ν΄') creates noise without improving understanding. This isn't effective conciseness but rather under-specification disguised as brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a tool with 2 parameters (one required), no output schema, and annotations covering safety aspects, the description is inadequate. It doesn't explain what 'applying quality rules' means operationally, what the tool actually does, or what kind of output/result to expect. For a tool that presumably performs some meaningful operation on code/quality standards, this leaves too much undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters having clear descriptions and enumerated values, so the baseline is 3. The description adds no additional parameter information beyond what's in the schema - it doesn't explain how 'scope' and 'language' interact, provide examples of valid combinations, or clarify the meaning of 'all' scope or 'general' language context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a tautology that restates the tool name with synonyms ('κ·μΉ μ μ©|νμ€ μ μ©|apply rules|apply standards|follow conventions|μ μ©ν΄ - Apply quality rules'). It doesn't specify what 'applying quality rules' actually means operationally - whether it's validation, transformation, analysis, or something else. While it distinguishes from siblings by focusing on 'quality rules' rather than analysis or creation tasks, the purpose remains vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention any prerequisites, appropriate contexts, or comparison to sibling tools like 'validate_code_quality' or 'suggest_improvements' that might serve similar functions. The agent must infer usage purely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_reasoning_frameworkBRead-onlyIdempotent
μΆλ‘ νλ μμν¬|체κ³μ λΆμ|λ Όλ¦¬μ μ¬κ³ |reasoning framework|systematic analysis|logical thinking - Apply 9-step reasoning framework to analyze complex problems systematically
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The problem or task to analyze using the reasoning framework | |
| context | No | Additional context about the problem (project constraints, tech stack, etc.) | |
| focus_steps | No | Specific framework steps to focus on (1-9). If not provided, all steps will be applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds that it's a 'systematic analysis' with a '9-step framework', which provides some behavioral context about the structured approach. However, it doesn't mention what the 9 steps actually are, what the output looks like, or any rate limits/performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise but has some redundancy with the repeated keywords ('μΆλ‘ νλ μμν¬|체κ³μ λΆμ|λ Όλ¦¬μ μ¬κ³ |reasoning framework|systematic analysis|logical thinking'). The core functionality is stated clearly, but the keyword repetition doesn't add meaningful value and could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 100% schema coverage, and comprehensive annotations, the description provides adequate context about what the tool does. However, without an output schema and with multiple similar sibling tools, the description could better explain what distinguishes this framework and what kind of output to expect from the analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any additional parameter semantics beyond what's already in the schema descriptions. The baseline score of 3 is appropriate since the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies a 9-step reasoning framework to analyze complex problems systematically. It specifies the verb 'apply' and the resource 'reasoning framework', but doesn't explicitly differentiate from similar sibling tools like 'step_by_step_analysis' or 'analyze_problem' that might also perform systematic analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple analysis-focused sibling tools (analyze_complexity, analyze_problem, step_by_step_analysis, etc.), there's no indication of when this specific 9-step framework is preferred or what distinguishes it from other analysis approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_coupling_cohesionCRead-onlyIdempotent
κ²°ν©λ|μμ§λ|coupling|cohesion|dependencies check|module structure - Check coupling and cohesion
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code to analyze | |
| type | No | Code type | |
| checkDependencies | No | Analyze dependencies |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, indicating a safe, deterministic read operation. The description adds context by specifying the analysis focuses on 'coupling', 'cohesion', 'dependencies', and 'module structure', which clarifies the tool's behavioral scope beyond the annotations. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a keyword list without proper sentence structure, making it inefficient and poorly organized. It's not front-loaded with a clear purpose, and the keywords could be condensed into a more coherent statement. It lacks conciseness due to under-specification rather than brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analyzing code metrics), annotations cover safety and determinism, but there's no output schema to describe return values. The description provides some context (focus areas) but is incomplete for a tool that likely returns analysis results. It's minimally adequate but has clear gaps in explaining output or detailed behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description doesn't add any meaningful details about parameters beyond what's in the schema (e.g., it doesn't explain how 'code' should be formatted or what 'checkDependencies' entails). Baseline score of 3 is appropriate as the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists keywords ('coupling', 'cohesion', 'dependencies check', 'module structure') that suggest analyzing code metrics, but it lacks a clear verb+resource statement. It doesn't explicitly state what the tool does (e.g., 'Analyze code to calculate coupling and cohesion metrics') and doesn't distinguish it from siblings like 'analyze_complexity' or 'validate_code_quality'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description doesn't mention when this tool is appropriate or what distinguishes it from sibling tools like 'analyze_complexity' or 'validate_code_quality'. Usage is implied through keywords but not clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_memory_timelineCRead-onlyIdempotent
λ©λͺ¨λ¦¬ νμλΌμΈμ μμ±ν©λλ€.
ν€μλ: νμλΌμΈ, μκ°μ, νμ€ν 리, timeline, history, chronological
μ¬μ© μμ:
"μ΅κ·Ό λ©λͺ¨λ¦¬ νμλΌμΈ 보μ¬μ€"
"μ§λ 7μΌκ° λ©λͺ¨λ¦¬ νμ€ν 리"
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | μμ λ μ§ (ISO νμ, μ: 2024-01-01) | |
| endDate | No | μ’ λ£ λ μ§ (ISO νμ) | |
| category | No | μΉ΄ν κ³ λ¦¬ νν° | |
| limit | No | μ΅λ κ²°κ³Ό μ (κΈ°λ³Έκ°: 20) | |
| groupBy | No | κ·Έλ£Ήν κΈ°μ€ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide comprehensive behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false), so the description doesn't need to repeat these. However, the description adds useful context through the keywords ('νμλΌμΈ, μκ°μ, νμ€ν 리') and examples that suggest chronological organization of memory data. It doesn't describe rate limits, authentication needs, or specific behavioral traits beyond what annotations already cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a clear purpose statement followed by keywords and usage examples. The structure is logical and front-loaded with the main purpose. The Korean/English keywords section could be more concise, but overall the description avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the comprehensive annotations (which cover safety and idempotency) and 100% schema description coverage, the description provides adequate context. However, with no output schema and multiple sibling memory tools, the description could better explain what distinguishes this tool's output format or use case. The examples help but don't fully address the complexity of having 5 parameters and no output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 5 parameters well-documented in the schema itself. The description adds no parameter-specific information beyond what's already in the schema. The usage examples imply date range usage but don't provide additional semantic context about parameters. With complete schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'λ©λͺ¨λ¦¬ νμλΌμΈμ μμ±ν©λλ€' (creates a memory timeline) which provides a basic verb+resource, but it's vague about what a 'memory timeline' actually is. It doesn't distinguish this tool from sibling memory tools like 'list_memories', 'search_memories_advanced', or 'get_memory_graph'. The keywords section adds some context but doesn't clarify the tool's specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage examples ('μ΅κ·Ό λ©λͺ¨λ¦¬ νμλΌμΈ 보μ¬μ€', 'μ§λ 7μΌκ° λ©λͺ¨λ¦¬ νμ€ν 리') which imply this tool is for viewing historical memory data, but it doesn't explicitly state when to use this tool versus alternatives like 'list_memories' or 'search_memories_advanced'. No guidance is given about prerequisites, constraints, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_thinking_chainCRead-onlyIdempotent
μκ° κ³Όμ |μ¬κ³ νλ¦|μ°μμ μΌλ‘|thinking process|chain of thought|reasoning chain - Create sequential thinking chain
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Topic to think about | |
| steps | No | Number of thinking steps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description does not contradict these and adds context by implying sequential, chain-like reasoning, though it lacks details on output format or rate limits. With annotations present, the bar is lower, and the description provides some behavioral insight beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is inefficiently structured with repetitive terms like 'μκ° κ³Όμ |μ¬κ³ νλ¦|μ°μμ μΌλ‘|thinking process|chain of thought|reasoning chain' before stating 'Create sequential thinking chain', which adds noise without value. It could be more front-loaded and concise, as the repetition does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has annotations covering key behavioral traits and a fully described input schema but no output schema, the description is minimally adequate. However, it lacks details on what the thinking chain output entails or how it integrates with sibling tools, leaving gaps in contextual understanding for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with parameters 'topic' and 'steps' clearly documented in the schema. The description does not add any meaning beyond the schema, such as explaining what constitutes a 'step' or how the topic influences the chain. Baseline is 3 since the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool creates a sequential thinking chain, which indicates its purpose, but it's vague and repetitive with terms like 'thinking process' and 'chain of thought' without specifying what the chain is used for or how it differs from siblings like 'step_by_step_analysis' or 'apply_reasoning_framework'. It lacks a clear verb-resource distinction beyond 'create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as 'step_by_step_analysis' or 'apply_reasoning_framework', nor any context on prerequisites or exclusions. The description only repeats the tool's function without providing usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_user_storiesBRead-onlyIdempotent
μ€ν 리|μ¬μ©μ μ€ν 리|user story|user stories|as a user - Generate user stories from requirements
| Name | Required | Description | Default |
|---|---|---|---|
| features | Yes | List of features or requirements to convert to user stories | |
| userTypes | No | Types of users (e.g., admin, customer, guest) | |
| priority | No | Default priority level | |
| includeAcceptanceCriteria | No | Include acceptance criteria for each story |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide key behavioral hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds no additional behavioral context (e.g., rate limits, auth needs, or output format details). However, it doesn't contradict the annotations, so it meets the baseline for annotations covering safety and idempotency, but lacks extra value like explaining what 'generate' entails operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose ('Generate user stories from requirements'), followed by alternative names for clarity. It uses minimal words without redundancy, though the alternative names could be seen as slightly verbose. Overall, it's efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema) and rich annotations, the description is adequate but incomplete. It clearly states what the tool does but lacks usage guidelines, behavioral details beyond annotations, and output information. For a generation tool with no output schema, more context on expected results would be helpful, but it meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the input schema (e.g., 'features' as 'List of features or requirements to convert to user stories'). The description adds no parameter-specific information beyond the schema, such as examples or formatting tips. Given the high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to heavily.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate user stories from requirements.' It specifies the verb ('Generate') and resource ('user stories'), and provides alternative names ('μ€ν 리|μ¬μ©μ μ€ν 리|user story|user stories|as a user') to aid recognition. However, it doesn't explicitly differentiate from sibling tools like 'analyze_requirements' or 'generate_prd', which might have overlapping domains, so it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'analyze_requirements' (which might analyze rather than generate) or 'generate_prd' (which could produce a different artifact), nor does it specify prerequisites or exclusions. This leaves the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_memoryADestructiveIdempotent
μμ΄|μμ ν΄|μ§μ|forget|delete|remove|erase - Delete specific memory
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true (irreversible deletion) and idempotentHint=true (safe to retry), which the description doesn't contradict. The description adds value by emphasizing the action with synonyms ('forget', 'erase'), reinforcing the destructive nature beyond annotations. However, it doesn't detail side effects (e.g., impact on linked memories) or error conditions, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, using a compact format with synonyms separated by pipes. Every element ('μμ΄|μμ ν΄|μ§μ|forget|delete|remove|erase - Delete specific memory') serves to clarify the action without redundancy. It efficiently communicates the core purpose in minimal words, with no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive operation with one parameter), annotations cover key behavioral traits (destructive, idempotent), and schema fully describes the input. However, there's no output schema, and the description doesn't explain return values or error handling. For a deletion tool, more context on outcomes (e.g., confirmation message, failure modes) would improve completeness, but it's minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'key' fully documented in the schema. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or constraints. This meets the baseline score of 3 for high schema coverage, but no extra semantic value is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('delete') and resource ('specific memory'), making the purpose understandable. It provides multilingual synonyms ('μμ΄|μμ ν΄|μ§μ|forget|delete|remove|erase') which enhances clarity for diverse users. However, it doesn't explicitly differentiate from sibling tools like 'update_memory' or 'prioritize_memory', which would require a more specific scope statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing memory key), exclusions, or comparisons to siblings like 'remove' operations in other tools. Usage is implied through the action verbs but lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_promptBRead-onlyIdempotent
ꡬ체μ μΌλ‘|μμΈν|λͺ ννκ²|λ ꡬ체μ μΌλ‘|be specific|more detail|clarify|elaborate|vague - Transform vague requests
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Original prompt to enhance | |
| context | No | Additional context or project information | |
| enhancement_type | No | Type of enhancement (default: all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond what annotations provide. Annotations already indicate this is a read-only, non-destructive, idempotent operation with a closed-world scope. The description doesn't contradict these annotations, but only adds that it transforms 'vague requests' - which is essentially restating the tool's purpose rather than providing additional behavioral details like rate limits, authentication needs, or transformation specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with relevant keywords. It uses a pipe-separated format to list synonyms and transformation goals efficiently, then adds a brief purpose statement. Every element serves a purpose without redundancy, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a transformation tool with good annotations (read-only, idempotent, non-destructive) and comprehensive parameter documentation, the description provides adequate but minimal context. It states what the tool does but lacks information about output format, transformation methodology, or quality of enhancements. Without an output schema, the description could benefit from mentioning what kind of enhanced prompt to expect, but it meets minimum viability given the structured data coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain how the 'enhancement_type' choices affect the transformation, how 'context' influences the enhancement, or provide examples of prompt transformations. The baseline of 3 is appropriate given the comprehensive schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: transforming vague requests into more specific, detailed, or clarified versions. It lists specific transformation goals (clarity, specificity, context) and provides synonyms for 'enhance' (be specific, more detail, clarify, elaborate). However, it doesn't explicitly differentiate from its sibling 'enhance_prompt_gemini', which appears to be a similar tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it mentions what the tool does, it doesn't indicate when it's appropriate to use versus other prompt-related tools like 'analyze_prompt', 'suggest_improvements', or its sibling 'enhance_prompt_gemini'. There's no mention of prerequisites, typical use cases, or comparison with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_prompt_geminiARead-onlyIdempotent
ν둬ννΈ κ°μ |μ λ―Έλμ΄ μ λ΅|νμ§ ν₯μ|prompt enhancement|gemini strategies|quality improvement - Enhance prompts using Gemini API prompting strategies (Few-Shot, Output Format, Context)
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The original prompt to enhance | |
| agent_role | No | The role of the agent that will receive this prompt (e.g., "Specification Agent", "Planning Agent") | |
| strategies | No | Specific Gemini strategies to apply. If not provided, all strategies will be applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide clear behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true), but the description adds valuable context by specifying that it applies 'Gemini API prompting strategies' and lists specific techniques. This clarifies the tool's approach beyond the generic safety profile indicated by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured as a tag-like list of keywords followed by a clarifying parenthetical explanation. While somewhat unconventional in format, it conveys essential information without redundancy. The front-loaded keywords make the core purpose immediately apparent, though the pipe-separated format could be more readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with comprehensive annotations and full schema coverage but no output schema, the description provides adequate context about the enhancement approach and strategy scope. However, it doesn't describe what the enhanced prompt output looks like or any limitations of the Gemini strategies, leaving some behavioral aspects unspecified despite good annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description mentions 'strategies' generically but doesn't add meaningful semantic context beyond what the schema provides about parameters like 'agent_role' or 'strategies' enum values. Baseline score of 3 is appropriate given comprehensive schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Enhance prompts') and resources ('using Gemini API prompting strategies'), listing specific strategies like Few-Shot, Output Format, and Context. It distinguishes from the sibling 'enhance_prompt' tool by specifying 'Gemini strategies' in both the description and title annotation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'Gemini API prompting strategies' and lists strategy names, but doesn't explicitly state when to use this tool versus alternatives like 'enhance_prompt' or other analysis tools. No guidance on prerequisites or exclusions is provided, leaving usage context partially inferred rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feature_roadmapCRead-onlyIdempotent
λ‘λλ§΅|μΌμ |κ³νν|roadmap|timeline|project plan|development schedule - Generate development roadmap
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | Yes | Name of the project | |
| features | Yes | List of features to include in roadmap | |
| timeframe | No | Project timeframe | |
| approach | No | Development approach | mvp-first |
| teamSize | No | Development team size |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, which already inform the agent this is a safe, deterministic generation tool. The description adds minimal behavioral context beyond this - it doesn't explain what 'Generate' means operationally (e.g., creates a new artifact, returns structured data), nor does it mention any limitations, quality of output, or processing characteristics. With annotations covering safety aspects, the description adds some value but lacks rich behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with a keyword list followed by the core function. However, the keyword list could be considered redundant since 'roadmap' already appears in both the tool name and core description. The structure is front-loaded with relevant terms, but the second part ('Generate development roadmap') is somewhat generic and could be more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a generation tool with 5 parameters, no output schema, and good annotation coverage for safety aspects, the description is minimally adequate. It identifies the tool's domain but lacks details about what exactly gets generated, the format of output, quality considerations, or how it differs from related planning tools. The annotations handle safety profiling, but the description should do more to explain the tool's behavior and output characteristics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 5 parameters well-documented in the schema itself (including enums for timeframe and approach). The description provides no additional parameter information beyond what's in the schema - it doesn't explain how parameters interact, provide examples of feature lists, or clarify the meaning of 'custom' timeframe or development approaches. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool generates a development roadmap, which provides a basic purpose. However, it's vague about what 'Generate development roadmap' entails - does it create a visual timeline, a text plan, or something else? The keyword list at the beginning (λ‘λλ§΅|μΌμ |κ³νν|roadmap|timeline|project plan|development schedule) suggests multiple interpretations but doesn't clarify the specific output format or nature of the generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. While sibling tools like 'format_as_plan', 'generate_prd', and 'create_user_stories' might be related to planning/documentation, the description doesn't differentiate this roadmap tool from them or explain its specific use case context. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_referencesCRead-onlyIdempotent
μ΄λμ μ°|μ°Έμ‘°|μ¬μ©μ²|find usage|references|where used - Find symbol references
| Name | Required | Description | Default |
|---|---|---|---|
| symbolName | Yes | Name of the symbol to find references for | |
| filePath | No | File path where the symbol is defined | |
| line | No | Line number of the symbol definition | |
| projectPath | Yes | Project directory path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, openWorldHint=false, idempotentHint=true, and destructiveHint=false, indicating a safe, deterministic read operation. The description doesn't add behavioral details beyond this, such as rate limits or output format, but it doesn't contradict the annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a disorganized list of keywords ('μ΄λμ μ°|μ°Έμ‘°|μ¬μ©μ²|find usage|references|where used') followed by a phrase ('Find symbol references'). It lacks proper sentence structure and front-loading, making it inefficient and unclear despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (finding references in code) and lack of output schema, the description is inadequate. It doesn't explain what 'references' means in this context, the return format, or how it differs from similar tools. Annotations cover safety, but more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for all 4 parameters. The description adds no parameter-specific information beyond what the schema provides, so it meets the baseline score of 3 without compensating or enhancing the schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool finds symbol references, which is a clear purpose, but it's presented as a list of keywords ('μ΄λμ μ°|μ°Έμ‘°|μ¬μ©μ²|find usage|references|where used') rather than a coherent sentence. It doesn't distinguish this from sibling tools like 'find_symbol' or 'analyze_dependency_graph', leaving ambiguity about its specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description is a keyword list with no context, prerequisites, or exclusions. Sibling tools like 'find_symbol' or 'analyze_dependency_graph' might overlap, but no comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_symbolCRead-onlyIdempotent
ν¨μ μ°Ύμ|ν΄λμ€ μ΄λ|λ³μ μμΉ|find function|where is|locate - Find symbol definitions
| Name | Required | Description | Default |
|---|---|---|---|
| symbolName | Yes | Name of the symbol to find | |
| projectPath | Yes | Project directory path | |
| symbolType | No | Type of symbol to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds minimal behavioral context beyond this - it implies a search operation but doesn't describe what happens with multiple matches, error conditions, or performance characteristics. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single run-on string with pipe separators and dashes, lacking proper sentence structure. While it's brief, the formatting makes it harder to parse than a well-structured sentence. The information is front-loaded but presented in a disorganized manner that reduces clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with good annotations (read-only, idempotent) and full schema coverage, the description provides basic purpose but lacks important context. Without an output schema, it doesn't describe what results look like (locations, line numbers, confidence scores). The description doesn't address scope limitations or how it interacts with the project structure beyond the projectPath parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions symbol types (function, class, variable) which are already covered by the symbolType enum, but provides no additional context about how parameters interact or special considerations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds symbol definitions with specific examples (function, class, variable) and synonyms (find, locate, where is). It distinguishes from some siblings like 'find_references' by focusing on definitions rather than references. However, it doesn't explicitly contrast with all similar tools like 'search_memories_advanced' which might also search for symbols.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'find_references' (for finding references rather than definitions) or 'search_memories_advanced' (which might search across different contexts). There are no explicit when/when-not instructions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
format_as_planCRead-onlyIdempotent
κ³νμΌλ‘|μ 리ν΄μ€|체ν¬λ¦¬μ€νΈ|format as plan|make a plan|organize this|checklist - Format content into clear plans
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Content to format as a plan | |
| priority | No | Default priority level | |
| includeTimeEstimates | No | Include time estimates for each step | |
| includeCheckboxes | No | Include checkboxes for tracking progress |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide key behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true), so the description doesn't need to repeat safety aspects. It adds value by implying the tool transforms content into a structured plan format, but doesn't detail output behavior (e.g., format specifics, error handling). With annotations covering core traits, a baseline 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a disorganized list of synonyms separated by pipes and dashes ('κ³νμΌλ‘|μ 리ν΄μ€|체ν¬λ¦¬μ€νΈ|format as plan|make a plan|organize this|checklist - Format content into clear plans'), lacking clear structure. It's front-loaded with redundant terms rather than a coherent sentence, reducing readability without adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, 1 required) and rich annotations, the description is minimally adequate. It states the core purpose but misses usage guidelines and output details (no output schema exists). For a transformation tool, more context on the resulting plan format would be helpful, but annotations provide safety coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description doesn't add any parameter-specific details beyond implying 'content' is formatted. It mentions 'checklist' which loosely relates to 'includeCheckboxes', but no explicit mapping. Baseline 3 is correct when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with multiple verbs ('format as plan', 'make a plan', 'organize this') and specifies the resource ('content'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'create_thinking_chain' or 'step_by_step_analysis' that might also organize content, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lists synonyms ('checklist', 'organize this') but doesn't specify contexts, prerequisites, or exclusions. Given the many sibling tools for analysis and organization, this lack of differentiation is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_prdBRead-onlyIdempotent
PRD|μꡬμ¬ν λ¬Έμ|μ ν μꡬμ¬ν|product requirements|requirements document|spec document - Generate Product Requirements Document
| Name | Required | Description | Default |
|---|---|---|---|
| productName | Yes | Name of the product/feature | |
| productVision | Yes | High-level vision and goals | |
| targetAudience | No | Target users and stakeholders | |
| businessObjectives | No | Business goals and success metrics | |
| functionalRequirements | No | Key features and functionality | |
| constraints | No | Technical/business constraints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a read-only, non-destructive, idempotent operation with a closed-world scope. The description adds no behavioral context beyond these annotations, such as rate limits, authentication needs, or output format details. No contradiction exists, but minimal value is added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient line listing synonyms for PRD generation. It's appropriately sized and front-loaded, though it could be slightly more structured by separating synonyms with commas or clarifying the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema) and rich annotations, the description is minimally adequate. It states the purpose but lacks details on output format, error handling, or integration with sibling tools, leaving gaps for an agent to infer usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema fully documents all 6 parameters. The description adds no additional meaning, examples, or constraints beyond what the schema provides, meeting the baseline for high coverage without enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a Product Requirements Document with specific synonyms (PRD, μꡬμ¬ν λ¬Έμ, μ ν μꡬμ¬ν, etc.), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'analyze_requirements' or 'create_user_stories', which could have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'analyze_requirements' or 'create_user_stories'. It lacks context about prerequisites, timing, or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coding_guideBRead-onlyIdempotent
κ°μ΄λ|κ·μΉ|컨벀μ |guide|rules|convention|standards|best practices - Get coding guide
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Guide name to retrieve | |
| category | No | Guide category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide key behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false). The description adds minimal context beyond this, only implying retrieval of coding standards without detailing response format, error handling, or rate limits. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a single phrase with synonyms to convey the tool's purpose efficiently. However, the structure could be improved by front-loading the core action more clearly, as the synonym list might slightly obscure the main intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations cover safety and idempotency, and the schema fully describes parameters, the description is minimally adequate. However, without an output schema, it doesn't explain what the tool returns (e.g., guide content format), leaving a gap in completeness for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, fully documenting both parameters (name and category). The description doesn't add any semantic details beyond what the schema provides, such as examples of guide names or categories, so it meets the baseline for high schema coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'Get' and resource 'coding guide', and includes relevant synonyms (guide, rules, convention, standards, best practices) to clarify scope. However, it doesn't explicitly differentiate from sibling tools like 'apply_quality_rules' or 'validate_code_quality', which might have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, typical use cases, or comparisons with sibling tools that might handle related tasks like quality rules or code validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_timeBRead-only
μ§κΈ λͺμ|νμ¬ μκ°|λͺμμΌ|what time|current time|time now - Get current time
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Time format | |
| timezone | No | Timezone (e.g., America/New_York, Asia/Seoul) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, establishing this as a safe read operation. The description adds no behavioral context beyond what annotations provide - no information about rate limits, authentication needs, or specific behavioral traits. However, it doesn't contradict annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the core functionality. The natural language variations are efficiently packed, and every element serves a clear purpose for query matching without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple time retrieval tool with good annotations and full parameter documentation, the description is reasonably complete. It states the core purpose clearly. The main gap is lack of output format information since there's no output schema, but for this simple tool, the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema fully documents both parameters (format with enum values and timezone). The description adds no parameter semantics beyond what's in the schema, meeting the baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose ('Get current time') and includes multiple natural language variations for query matching. However, it doesn't differentiate from siblings since there are no time-related sibling tools, so it can't earn the full 5 points for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While there are no obvious time-related sibling tools, there's no explicit context about when this tool is appropriate versus other approaches for obtaining time information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_graphARead-onlyIdempotent
λ©λͺ¨λ¦¬ μ§μ κ·Έλνλ₯Ό μ‘°νν©λλ€.
ν€μλ: κ·Έλν, κ΄κ³λ, μ°κ²° 보기, memory graph, relations, connections
μ¬μ© μμ:
"project-architectureμ κ΄κ³ κ·Έλν 보μ¬μ€"
"μ 체 λ©λͺ¨λ¦¬ κ·Έλν μ‘°ν"
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | μμ λ©λͺ¨λ¦¬ ν€ (μμΌλ©΄ μ 체 κ·Έλν) | |
| depth | No | νμ κΉμ΄ (κΈ°λ³Έκ°: 2) | |
| relationType | No | νν°λ§ν κ΄κ³ μ ν | |
| format | No | μΆλ ₯ νμ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide comprehensive behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false). The description adds value by specifying the tool retrieves 'λ©λͺ¨λ¦¬ μ§μ κ·Έλν' (memory knowledge graph) and provides usage examples that clarify it can retrieve either the entire graph or start from a specific key. This adds useful context beyond what annotations provide about the tool's scope and typical use cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a clear purpose statement followed by keywords and usage examples. The structure is front-loaded with the core purpose first. The keywords section could be more concise, but overall the description avoids unnecessary verbosity while providing useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the comprehensive annotations (which cover safety and behavioral aspects) and 100% schema description coverage, the description provides adequate context. The lack of an output schema means the description doesn't explain return values, but this is acceptable given the annotations indicate it's a read-only operation. The description could be more complete by explicitly differentiating from sibling tools, but it provides sufficient context for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already fully documents all 4 parameters. The description doesn't add any additional parameter semantics beyond what's in the schema descriptions. The usage examples imply parameter usage (e.g., 'project-architectureμ κ΄κ³ κ·Έλν 보μ¬μ€' suggests using the 'key' parameter), but don't provide new information about parameter meaning or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'λ©λͺ¨λ¦¬ μ§μ κ·Έλνλ₯Ό μ‘°νν©λλ€' (retrieves memory knowledge graph), which is a specific verb+resource combination. However, it doesn't explicitly differentiate this from sibling tools like 'analyze_dependency_graph' or 'list_memories', which might have overlapping functionality. The keywords provide additional context but don't enhance the core purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage examples that imply when to use this tool (e.g., 'μ 체 λ©λͺ¨λ¦¬ κ·Έλν μ‘°ν' for retrieving the entire graph), but doesn't explicitly state when to use it versus alternatives like 'analyze_dependency_graph' or 'list_memories'. The examples give contextual guidance but lack explicit when/when-not statements or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_contextARead-onlyIdempotent
π [μ λν/μΈμ μμ μ μλ μ€ν κΆμ₯] μ΄μ μΈμ μ λ©λͺ¨λ¦¬, μ§μ κ·Έλν, μ΅κ·Ό μμ λ΄μμ ν λ²μ μ‘°νν©λλ€.
μ΄ λꡬλ μλ‘μ΄ λνλ₯Ό μμν λ κ°μ₯ λ¨Όμ μ€ννλ©΄ μ’μ΅λλ€. νλ‘μ νΈμ 컨ν μ€νΈλ₯Ό λΉ λ₯΄κ² νμ ν μ μμ΅λλ€.
ν€μλ: μΈμ μμ, 컨ν μ€νΈ, μ΄μ μμ , session start, context, previous work, what did we do
μ¬μ© μμ:
"μ΄μ μ λ¬΄μ¨ μμ νμμ§?"
"νλ‘μ νΈ μ»¨ν μ€νΈ μλ €μ€"
"μΈμ 컨ν μ€νΈ μ‘°ν"
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | No | νλ‘μ νΈλͺ μΌλ‘ νν°λ§ (μ ν) | |
| category | No | μΉ΄ν κ³ λ¦¬λ‘ νν°λ§ (μ ν) | |
| memoryLimit | No | μ‘°νν λ©λͺ¨λ¦¬ μ (κΈ°λ³Έκ°: 15) | |
| includeGraph | No | μ§μ κ·Έλν ν¬ν¨ μ¬λΆ (κΈ°λ³Έκ°: true) | |
| includeTimeline | No | νμλΌμΈ ν¬ν¨ μ¬λΆ (κΈ°λ³Έκ°: true) | |
| timeRange | No | νμλΌμΈ μ‘°ν λ²μ | 7d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds valuable context: it's 'μλ μ€ν κΆμ₯' (recommended for automatic execution) at session start, which helps the agent understand timing and importance. However, it doesn't mention rate limits, authentication needs, or specific error behaviors beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with purpose, usage recommendation, keywords, and examples. However, the keyword section ('ν€μλ: μΈμ μμ...') and examples could be slightly trimmed as they partially repeat the main points. Most sentences earn their place by reinforcing when and how to use the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with no output schema, the description provides good context: purpose, timing, and examples. It covers the 'why' and 'when' well. However, it doesn't describe the return format (what 'λ©λͺ¨λ¦¬, μ§μ κ·Έλν, μ΅κ·Ό μμ λ΄μ' looks like) or potential limitations, which would help the agent interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. It mentions general filtering ('νλ‘μ νΈμ 컨ν μ€νΈλ₯Ό λΉ λ₯΄κ² νμ ' - quickly grasp project context) but no details on parameter usage. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'μ‘°νν©λλ€' (retrieves) 'μ΄μ μΈμ μ λ©λͺ¨λ¦¬, μ§μ κ·Έλν, μ΅κ·Ό μμ λ΄μ' (previous session's memory, knowledge graph, recent work history). It distinguishes from siblings like 'list_memories' or 'get_memory_graph' by emphasizing it's a comprehensive context retrieval for session start, not just memory listing or graph analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: '[μ λν/μΈμ μμ μ μλ μ€ν κΆμ₯]' (recommended to run automatically at new conversation/session start) and 'μ΄ λꡬλ μλ‘μ΄ λνλ₯Ό μμν λ κ°μ₯ λ¨Όμ μ€ννλ©΄ μ’μ΅λλ€' (this tool is good to run first when starting a new conversation). It implicitly suggests alternatives by specifying this is for session context, not for other analysis tasks handled by siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usage_analyticsBRead-onlyIdempotent
λꡬ μ¬μ© λΆμ λ° ν΅κ³λ₯Ό μ‘°νν©λλ€.
ν€μλ: λΆμ, ν΅κ³, μ¬μ©λ, analytics, statistics, usage
μ 곡 μ 보:
λ©λͺ¨λ¦¬ μ¬μ© ν΅κ³
μΉ΄ν κ³ λ¦¬λ³ λΆν¬
μκ°λ³ μ¬μ© ν¨ν΄
κ·Έλν κ΄κ³ ν΅κ³
μ¬μ© μμ:
"μ¬μ© ν΅κ³ 보μ¬μ€"
"λ©λͺ¨λ¦¬ λΆμ"
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | λΆμ μ ν | |
| timeRange | No | μκ° λ²μ | |
| detailed | No | μμΈ μ 보 ν¬ν¨ μ¬λΆ (κΈ°λ³Έκ°: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide strong behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false), indicating this is a safe, read-only operation. The description adds value by specifying the types of analytics returned (memory usage, category distribution, time patterns, graph statistics), which gives context beyond the annotations. It doesn't disclose rate limits or auth needs, but with annotations covering safety, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but has structural issues. It starts with a clear purpose statement, but includes a redundant 'Keywords' section that repeats terms already in the description. The bulleted list of provided information is useful, but the usage examples could be integrated more smoothly. It's front-loaded with the purpose, but some sentences (like the keyword list) don't earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema), the description is reasonably complete. It explains what analytics are returned, supported by annotations that clarify behavioral traits. However, it doesn't detail the output format or structure, which would be helpful since there's no output schema. For a read-only analytics tool, it covers most essentials but leaves some ambiguity about result presentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for all parameters (type, timeRange, detailed) including enums and defaults. The description doesn't add any parameter-specific information beyond what's in the schema, such as explaining the 'all' type or timeRange options. However, with high schema coverage, the baseline is 3, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'retrieving usage analysis and statistics' in Korean, with English keywords reinforcing this. It lists specific types of information provided (memory usage, category distribution, time patterns, graph statistics), making the purpose concrete. However, it doesn't explicitly differentiate from sibling tools like 'analyze_complexity' or 'get_memory_graph', which appear related but have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage examples in Korean ('show usage statistics', 'memory analysis'), which give some implied context for when to use the tool. However, it lacks explicit guidance on when to choose this tool over alternatives like 'analyze_complexity' or 'get_memory_graph', and doesn't mention prerequisites or exclusions. The examples are helpful but insufficient for clear differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_memoriesBIdempotent
λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό μ°κ²°ν©λλ€ (μ§μ κ·Έλν).
ν€μλ: μ°κ²°ν΄, κ΄κ³ μ€μ , λ§ν¬, connect memories, link, relate
μ¬μ© μμ:
"project-architectureμ design-patternsλ₯Ό μ°κ²°ν΄"
"μ΄ λ λ©λͺ¨λ¦¬λ₯Ό related_toλ‘ λ§ν¬ν΄"
| Name | Required | Description | Default |
|---|---|---|---|
| sourceKey | Yes | μμ€ λ©λͺ¨λ¦¬ ν€ | |
| targetKey | Yes | νκ² λ©λͺ¨λ¦¬ ν€ | |
| relationType | Yes | κ΄κ³ μ ν (related_to, depends_on, implements, extends, uses) | |
| strength | No | κ΄κ³ κ°λ (0.0 ~ 1.0, κΈ°λ³Έκ°: 1.0) | |
| bidirectional | No | μλ°©ν₯ κ΄κ³ μ¬λΆ (κΈ°λ³Έκ°: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide key behavioral hints: readOnlyHint=false (mutation), destructiveHint=false (non-destructive), idempotentHint=true (safe to retry). The description adds context about it being for 'μ§μ κ·Έλν' (knowledge graph) relationships, which clarifies the domain beyond what annotations state. However, it doesn't disclose additional traits like potential side effects, authentication needs, or rate limits that aren't covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a clear purpose statement upfront, followed by keywords and usage examples. Every sentence earns its place by providing practical guidance. However, the mixed Korean/English keywords and examples could be slightly more streamlined, and the structure isn't perfectly front-loaded with all critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, mutation operation, no output schema), the description is minimally adequate. It covers the core purpose and provides usage hints, but lacks details on return values, error conditions, or relationship management nuances. With annotations covering safety aspects and schema covering parameters, the description meets basic needs but doesn't fully address the contextual gaps for a knowledge graph linking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema (e.g., relationType enum values, strength range, bidirectional default). The description adds no parameter-specific information beyond what's in the schema. Examples mention 'related_to' and linking two memories, but these are already implied by parameter names. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό μ°κ²°ν©λλ€ (μ§μ κ·Έλν)' (links relationships between memories/knowledge graph), which is a specific verb+resource combination. It distinguishes this from sibling tools like 'create_memory_timeline' or 'get_memory_graph' by focusing on relationship linking rather than creation or retrieval. However, it doesn't explicitly contrast with 'update_memory' which might also modify relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides keywords and usage examples that imply context for when to use this tool (e.g., 'connect memories, link, relate' and examples like linking 'project-architecture' with 'design-patterns'). However, it lacks explicit guidance on when NOT to use it or alternatives among siblings (e.g., vs. 'update_memory' for modifying existing links). The examples are helpful but don't constitute full usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_memoriesARead-onlyIdempotent
μ μ₯λ λ©λͺ¨λ¦¬ λͺ©λ‘μ μ‘°νν©λλ€. μΉ΄ν κ³ λ¦¬λ³ νν°λ§ κ°λ₯.
ν€μλ: λ μμμ§, μ μ₯λ κ±°, λͺ©λ‘, what did I save, list memories, show saved
π‘ μΈμ μμ μ μ 체 컨ν μ€νΈκ° νμνλ©΄ get_session_contextλ₯Ό μ¬μ©νμΈμ.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category | |
| limit | No | Maximum number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds context about filtering capabilities and references 'get_session_context' for session context, which is useful behavioral information beyond annotations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by filtering info, keywords, and a usage tip. It's efficient but includes emojis and mixed languages (Korean/English), which slightly reduces structural clarity. Most sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with good annotations (readOnlyHint, idempotentHint) and no output schema, the description is reasonably complete. It covers purpose, filtering, keywords, and references an alternative tool. Minor gaps include no details on return format or pagination, but annotations help mitigate this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters ('category' and 'limit'). The description mentions 'μΉ΄ν κ³ λ¦¬λ³ νν°λ§ κ°λ₯' (filterable by category), which aligns with the schema but doesn't add significant semantic value beyond it. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'μ μ₯λ λ©λͺ¨λ¦¬ λͺ©λ‘μ μ‘°νν©λλ€' (retrieves a list of saved memories) and adds 'μΉ΄ν κ³ λ¦¬λ³ νν°λ§ κ°λ₯' (filterable by category). It uses specific verbs ('μ‘°νν©λλ€' - retrieves) and distinguishes from siblings like 'search_memories_advanced' by focusing on listing rather than searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it includes keywords for when to use (e.g., 'λ μμμ§', 'list memories') and explicitly references an alternative tool ('get_session_context') for session context needs. This clearly distinguishes when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_ui_asciiARead-onlyIdempotent
UI λ§λ€μ΄|νμ΄μ§ κ°λ°|νμ΄μ§ λ§λ€μ΄|μ»΄ν¬λνΈ μμ±|λ μ΄μμ|νλ©΄ ꡬμ±|create page|build UI|design component|make page|develop page - Preview UI before coding
| Name | Required | Description | Default |
|---|---|---|---|
| page_name | Yes | Name of the page or component (e.g., "Login Page", "Dashboard") | |
| layout_type | No | Layout structure type (default: header-footer) | |
| components | Yes | List of UI components to include | |
| width | No | Preview width in characters (default: 60) | |
| responsive | No | Show mobile view preview (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide clear behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true). The description adds valuable context by specifying that this is a 'preview' tool for UI design before actual coding, which clarifies its non-destructive, planning-oriented nature. This goes beyond what annotations provide by explaining the tool's role in the development workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a list of synonymous action verbs followed by the core purpose 'Preview UI before coding.' It's front-loaded with key terms and avoids unnecessary elaboration. The only minor inefficiency is the repetitive list of verbs, but overall it's appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations (readOnly, non-destructive, idempotent) and 100% schema coverage, the description provides adequate context for this preview tool. The description clarifies the tool's role in the UI design workflow, which complements the structured data. The main gap is the lack of output schema, but the description doesn't need to explain return values since it's a preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description doesn't add any additional parameter semantics beyond what's already in the schema descriptions. This meets the baseline expectation when schema coverage is complete, but doesn't provide extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Preview UI before coding' with multiple synonymous verbs (create, build, design, make, develop). It specifies the resource (UI/page/component) and the action (preview). However, it doesn't explicitly differentiate from sibling tools, which appear to be analysis/memory/planning tools rather than UI preview tools, so the distinction is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the phrase 'Preview UI before coding,' suggesting this is for design/planning phases. However, it doesn't provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The sibling tools are mostly analysis/memory tools, so the distinction is clear but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prioritize_memoryCRead-onlyIdempotent
μ€μν κ±°|μ°μ μμ|prioritize|important|what matters|priority - Prioritize memories by importance
| Name | Required | Description | Default |
|---|---|---|---|
| currentTask | Yes | Current task description | |
| criticalDecisions | No | List of critical decisions made | |
| codeChanges | No | Important code changes | |
| blockers | No | Current blockers or issues | |
| nextSteps | No | Planned next steps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide significant behavioral information: readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false. The description doesn't contradict these annotations, but it also adds minimal behavioral context beyond them. It doesn't explain what 'prioritize' means operationally - whether this is a filtering operation, a sorting operation, or a metadata update. For a tool with good annotation coverage, the description adds some value by emphasizing the importance/priority aspect but lacks detail on the actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief but not effectively concise. It's essentially a keyword list separated by pipes and a dash, which creates confusion rather than clarity. While it's short, it's poorly structured - the pipe-separated synonyms don't form coherent sentences, and the dash-separated final phrase doesn't properly explain the tool. This isn't appropriate conciseness but rather under-specification with confusing formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 5-parameter tool with no output schema, the description is severely incomplete. While annotations cover safety aspects (read-only, non-destructive, idempotent), the description fails to explain what the tool actually produces or how it works. For a prioritization tool that presumably outputs some form of prioritized list or ranking, the absence of output information combined with the vague description leaves significant gaps in understanding the tool's functionality and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 5 parameters well-documented in the input schema. The description provides no additional parameter information whatsoever - it doesn't explain how the parameters relate to prioritization, what format the prioritization output might take, or how different parameter combinations affect results. With complete schema coverage, the baseline is 3, and the description doesn't enhance understanding of parameter usage beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a tautology that essentially restates the tool name 'prioritize_memory' with synonyms like 'important', 'priority', and 'what matters'. It doesn't specify what the tool actually does - whether it reorders existing memories, assigns priority scores, or creates prioritized memory entries. The description fails to distinguish this tool from sibling memory tools like 'list_memories', 'save_memory', or 'update_memory'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. With multiple sibling tools related to memory management (create_memory_timeline, delete_memory, get_memory_graph, link_memories, list_memories, recall_memory, save_memory, search_memories_advanced, update_memory), there's no indication of when prioritization is appropriate versus listing, searching, creating, or updating memories. The description offers no context about prerequisites or appropriate situations for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_memoryARead-onlyIdempotent
νΉμ λ©λͺ¨λ¦¬λ₯Ό ν€λ‘ μ‘°νν©λλ€.
ν€μλ: λ μ¬λ €, recall, κΈ°μ΅λ, remember what, what was, remind
π‘ μ 체 컨ν μ€νΈκ° νμνλ©΄ get_session_contextλ₯Ό λ¨Όμ μ¬μ©νμΈμ.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key to retrieve | |
| category | No | Memory category to search in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds no behavioral traits beyond these annotations, such as rate limits or auth needs. However, it does not contradict annotations, so it meets the baseline for when annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose, followed by keywords and a usage tip. Each sentence adds value without redundancy. It could be slightly more structured but is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (simple retrieval), rich annotations, and no output schema, the description is reasonably complete. It covers purpose, usage guidelines, and hints at context, though it could benefit from mentioning return format or error handling. The annotations help fill gaps, making it adequate for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('key' and 'category') fully described in the schema. The description does not add any meaning beyond the schema, such as examples or constraints. With high schema coverage, the baseline score is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'νΉμ λ©λͺ¨λ¦¬λ₯Ό ν€λ‘ μ‘°νν©λλ€' (Retrieve a specific memory by key). It specifies the verb 'μ‘°νν©λλ€' (retrieve/lookup) and resource 'λ©λͺ¨λ¦¬' (memory), but does not explicitly differentiate from sibling tools like 'list_memories' or 'search_memories_advanced', which is why it scores 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it includes keywords for when to use (λ μ¬λ €, recall, κΈ°μ΅λ, remember what, what was, remind) and recommends an alternative tool ('get_session_context') for full context needs. This clearly indicates when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_memoryAIdempotent
μ€μν μ 보λ₯Ό μ₯κΈ° λ©λͺ¨λ¦¬μ μ μ₯ν©λλ€. νλ‘μ νΈ κ²°μ μ¬ν, μν€ν μ², μ€μ λ±μ κΈ°λ‘νμΈμ.
ν€μλ: κΈ°μ΅ν΄, remember, μ μ₯ν΄, save, memorize, keep
π‘ μ μ₯ ν link_memoriesλ‘ κ΄λ ¨ λ©λͺ¨λ¦¬λ₯Ό μ°κ²°νλ©΄ μ§μ κ·Έλνκ° κ΅¬μΆλ©λλ€.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key/identifier | |
| value | Yes | Information to save | |
| category | No | Memory category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide key behavioral hints: readOnlyHint=false (write operation), idempotentHint=true (safe to retry), destructiveHint=false (non-destructive). The description adds value by specifying the type of information to save (e.g., project decisions, architecture) and mentioning the knowledge graph integration, which isn't covered by annotations. However, it lacks details on potential side effects, error conditions, or performance aspects, so it only partially enhances transparency beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with three sentences that each serve a purpose: stating the tool's function, providing keywords for usage, and suggesting a related action. It avoids redundancy and is front-loaded with the core purpose. A point is deducted because the keyword list could be slightly trimmed or integrated more seamlessly, but overall it's efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema), the description is reasonably complete. It covers the purpose, usage hints, and integration with 'link_memories', complementing the annotations and schema. However, it doesn't explain the return value or potential errors, which could be useful since there's no output schema. This minor gap prevents a perfect score, but it's sufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for 'key' (Memory key/identifier), 'value' (Information to save), and 'category' (Memory category with enum values). The description adds minimal semantic context by implying 'value' should contain 'μ€μν μ 보' (important information) like project decisions, but this doesn't significantly expand beyond the schema. Since the schema is well-documented, the baseline score of 3 is appropriate, as the description doesn't provide additional parameter insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'μ€μν μ 보λ₯Ό μ₯κΈ° λ©λͺ¨λ¦¬μ μ μ₯ν©λλ€' (saves important information to long-term memory) and provides examples of what to save (project decisions, architecture, settings). It distinguishes from siblings like 'delete_memory', 'update_memory', and 'list_memories' by focusing on creation. However, it doesn't explicitly contrast with 'create_memory_timeline' or 'prioritize_memory', keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by listing keywords (e.g., 'κΈ°μ΅ν΄', 'remember', 'save') and suggesting a follow-up action: 'μ μ₯ ν link_memoriesλ‘ κ΄λ ¨ λ©λͺ¨λ¦¬λ₯Ό μ°κ²°νλ©΄ μ§μ κ·Έλνκ° κ΅¬μΆλ©λλ€' (after saving, use link_memories to connect related memories to build a knowledge graph). This gives practical guidance on when to use it and hints at alternatives like 'link_memories'. However, it doesn't explicitly state when not to use this tool versus other memory-related siblings, such as 'update_memory' for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memories_advancedARead-onlyIdempotent
κ³ κΈ λ©ν° μ λ΅ λ©λͺ¨λ¦¬ κ²μμ μνν©λλ€.
ν€μλ: κ³ κΈ κ²μ, μ°Ύμ, μ€λ§νΈ κ²μ, advanced search, find memories
κ²μ μ λ΅:
keyword: μ ν΅μ ν€μλ κ²μ
graph_traversal: κ·Έλν κΈ°λ° κ΄λ ¨ λ©λͺ¨λ¦¬ νμ
temporal: μκ°μ μ λ ¬
priority: μ°μ μμ κΈ°λ°
context_aware: λ³΅ν© μ λ΅ (ν€μλ + μ°μ μμ + μ΅κ·Όμ±)
μ¬μ© μμ:
"authentication κ΄λ ¨ λ©λͺ¨λ¦¬ κ³ κΈ κ²μ"
"κ·Έλν νμμΌλ‘ project-architecture κ΄λ ¨ λ©λͺ¨λ¦¬ μ°ΎκΈ°"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | κ²μ 쿼리 | |
| strategy | No | κ²μ μ λ΅ | |
| limit | No | μ΅λ κ²°κ³Ό μ (κΈ°λ³Έκ°: 10) | |
| category | No | μΉ΄ν κ³ λ¦¬ νν° | |
| startKey | No | κ·Έλν νμ μμ ν€ (graph_traversal μ λ΅μ©) | |
| depth | No | κ·Έλν νμ κΉμ΄ (κΈ°λ³Έκ°: 2) | |
| includeRelations | No | κ΄κ³ μ 보 ν¬ν¨ μ¬λΆ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations by explaining the five different search strategies and their purposes. Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, but the description provides operational details about how searches work differently based on strategy. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably structured with strategy explanations and usage examples, but includes redundant keywords ('κ³ κΈ κ²μ, μ°Ύμ, μ€λ§νΈ κ²μ, advanced search, find memories') that don't add value. The content is front-loaded with the core purpose, but could be more concise by removing the keyword list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex search tool with 7 parameters and no output schema, the description provides good context about search strategies and usage. However, it doesn't explain what the tool returns (memory objects, summaries, etc.) or any limitations like pagination or performance characteristics. The strategy explanations help compensate for the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all 7 parameters thoroughly. The description adds some value by explaining the purpose of different 'strategy' enum values, but doesn't provide additional semantic context for other parameters like 'query', 'limit', or 'category' beyond what's in the schema. Baseline 3 is appropriate when schema does heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'advanced multi-strategy memory search' which is a specific verb+resource combination. However, it doesn't explicitly differentiate itself from sibling tools like 'list_memories' or 'recall_memory', which might also retrieve memories. The purpose is clear but sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use different strategies (keyword for traditional search, graph_traversal for related memories, etc.) and includes usage examples. However, it doesn't explicitly state when NOT to use this tool versus alternatives like 'list_memories' or 'recall_memory' from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
step_by_step_analysisCRead-onlyIdempotent
λ¨κ³λ³|μ°¨κ·Όμ°¨κ·Ό|νλμ©|step by step|one by one|gradually - Perform detailed step-by-step analysis
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task to analyze step by step | |
| context | No | Additional context for the task | |
| detailLevel | No | Level of detail |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, indicating a safe, repeatable, and bounded operation. The description adds minimal behavioral context with 'detailed' and 'step-by-step', but doesn't elaborate on aspects like output format, error handling, or performance characteristics. It doesn't contradict annotations, so it meets the lower bar with annotations present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single run-on phrase with redundant synonyms ('λ¨κ³λ³|μ°¨κ·Όμ°¨κ·Ό|νλμ©|step by step|one by one|gradually'), which adds noise without value. It's front-loaded but inefficient, wasting space on repetition rather than providing clear, actionable information. The structure lacks coherence and could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and annotations cover basic safety, the description should explain what the analysis produces (e.g., a list of steps, a report). It fails to do so, leaving gaps in understanding the tool's output. For a 3-parameter tool with siblings offering similar analyses, this incompleteness reduces its utility for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for 'task', 'context', and 'detailLevel' (including enum values). The description adds no parameter-specific information beyond what the schema provides, such as examples or usage tips. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is tautological, essentially restating the tool name 'step_by_step_analysis' with synonyms like 'step by step' and 'one by one'. It mentions 'Perform detailed step-by-step analysis' but lacks specificity about what kind of analysis or what resource it operates on. Compared to siblings like 'analyze_complexity' or 'analyze_dependency_graph', it doesn't clearly distinguish its unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't specify scenarios, prerequisites, or exclusions. Given siblings like 'analyze_problem' and 'analyze_requirements', the description fails to help an agent decide when this tool is the appropriate choice, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_improvementsCRead-onlyIdempotent
κ°μ |λ μ’κ²|리ν©ν λ§|improve|make better|refactor|optimize|enhance code - Suggest improvements
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code to analyze | |
| focus | No | Focus area | |
| priority | No | Priority level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds no behavioral context beyond what annotations declare, but doesn't contradict them. It mentions 'suggest improvements' which aligns with read-only analysis, so no contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single run-on phrase listing synonyms without proper structure or front-loading of key information. It wastes space on redundant terms ('improve|make better|refactor|optimize|enhance code') rather than providing a clear, concise purpose statement. Every word doesn't earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations cover safety and idempotency, and schema fully describes parameters, the description is minimally adequate. However, it lacks output information (no output schema provided) and doesn't explain what the improvements entail or how results are presented. For a code analysis tool with siblings, more context on differentiation would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for all parameters and enums. The description adds no parameter-specific information beyond what the schema provides, such as examples or usage tips. With high schema coverage, the baseline score of 3 is appropriate as the schema carries the semantic burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists synonyms for 'improve' but lacks a specific verb-resource combination. It states 'Suggest improvements' which is tautological with the tool name, and doesn't clearly differentiate what type of improvements (code improvements) or how it differs from siblings like 'validate_code_quality' or 'apply_quality_rules'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description provides no context about appropriate scenarios, prerequisites, or comparisons to sibling tools like 'analyze_complexity' or 'apply_quality_rules'. Usage is implied through parameter enums but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_memoryCIdempotent
μμ ν΄|μ λ°μ΄νΈ|λ°κΏ|update|change|modify|edit - Update existing memory
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key to update | |
| value | Yes | New value | |
| append | No | Append to existing value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description doesn't contradict the annotations, which already provide comprehensive behavioral information: readOnlyHint=false (mutation), openWorldHint=false (closed system), idempotentHint=true (safe to retry), destructiveHint=false (non-destructive). The description adds no additional behavioral context beyond what annotations provide, but since annotations cover key aspects, this is acceptable. No rate limits, authentication needs, or specific side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is inefficiently structured with redundant synonyms ('μμ ν΄|μ λ°μ΄νΈ|λ°κΏ|update|change|modify|edit') that don't add value. Only the final phrase 'Update existing memory' carries meaningful content. The front-loaded multilingual repetition wastes space without improving clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations provide good behavioral coverage (mutation, idempotent, non-destructive) and schema coverage is complete, the description is minimally adequate for a simple update operation. However, without an output schema and with no description of return values or error conditions, there are gaps. The description should ideally clarify what constitutes 'memory' in this system context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters ('key', 'value', 'append') fully documented in the schema. The description adds no parameter information beyond what the schema provides. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is tautological, primarily restating the tool name ('update') with synonyms in multiple languages. It doesn't specify what 'memory' refers to in this context or what kind of update operation is performed. While it distinguishes from siblings like 'delete_memory' and 'save_memory' by being an update operation, it lacks specificity about the resource being modified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or comparisons with sibling tools like 'save_memory' or 'delete_memory'. The agent receives no usage instructions beyond the basic operation implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_code_qualityCRead-onlyIdempotent
νμ§|리뷰|κ²μ¬|quality|review code|check quality|validate|μ½λ 리뷰 - Validate code quality
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code to validate | |
| type | No | Code type | |
| strict | No | Apply strict validation rules | |
| metrics | No | Specific metrics to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide clear behavioral hints (readOnlyHint: true, idempotentHint: true, destructiveHint: false), indicating a safe, non-mutating operation. The description adds no additional behavioral context (e.g., what quality standards are used, if results are cached, or performance implications), but it doesn't contradict the annotations. With annotations covering key safety aspects, the description's lack of extra detail is acceptable but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a string of keywords separated by pipes and dashes, lacking coherent structure or front-loaded clarity. It's not a proper sentence or paragraph, making it inefficient for quick comprehension. While concise in length, it fails to communicate effectively, as the keyword jumble requires parsing rather than delivering immediate understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema) and rich annotations, the description is insufficient. It doesn't explain what the tool returns (e.g., a quality score, issues list), how validation is performed, or tie parameters to outcomes. With annotations handling safety but no output schema, the description should provide more context about results and behavior to be complete for a quality analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema (e.g., 'code' as 'Code to validate', 'type' with enum values). The description adds no parameter-specific information beyond what the schema provides, such as explaining how 'strict' affects validation or what 'metrics' entail. Given the high schema coverage, a baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a list of keywords ('νμ§|리뷰|κ²μ¬|quality|review code|check quality|validate|μ½λ 리뷰') that suggest the tool validates code quality, but it lacks a clear, specific statement of purpose. It doesn't explicitly state what the tool does (e.g., 'Analyze code against quality metrics') or distinguish it from siblings like 'analyze_complexity' or 'check_coupling_cohesion'. The keyword approach is vague rather than definitive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'analyze_complexity' (for complexity analysis) or 'check_coupling_cohesion' (for coupling/cohesion checks), nor does it specify contexts where this tool is preferred (e.g., for comprehensive quality validation vs. specific analyses). Without such guidance, users must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
18 tool updates
v1.0.0- Added
analyze_dependency_graph - Added
apply_reasoning_framework - Removed
auto_save_context - Removed
break_down_problem - Added
create_memory_timeline - Added
enhance_prompt_gemini - Added
get_memory_graph - Added
get_session_context - Added
get_usage_analytics - Removed
inspect_network_requests - Added
link_memories - Removed
monitor_console_logs - Added
preview_ui_ascii - Removed
restore_session_context - Removed
search_memories - Added
search_memories_advanced - Removed
start_session - Removed
think_aloud_process
33 tool updates
- First observed
analyze_complexity - First observed
analyze_problem - First observed
analyze_prompt - First observed
analyze_requirements - First observed
apply_quality_rules - First observed
auto_save_context - First observed
break_down_problem - First observed
check_coupling_cohesion - First observed
create_thinking_chain - First observed
create_user_stories - First observed
delete_memory - First observed
enhance_prompt - First observed
feature_roadmap - First observed
find_references - First observed
find_symbol - First observed
format_as_plan - First observed
generate_prd - First observed
get_coding_guide - First observed
get_current_time - First observed
inspect_network_requests - First observed
list_memories - First observed
monitor_console_logs - First observed
prioritize_memory - First observed
recall_memory - First observed
restore_session_context - First observed
save_memory - First observed
search_memories - First observed
start_session - First observed
step_by_step_analysis - First observed
suggest_improvements - First observed
think_aloud_process - First observed
update_memory - First observed
validate_code_quality
TDQS
Multiple tools have overlapping purposes, causing significant ambiguity. For example, analyze_complexity, analyze_dependency_graph, check_coupling_cohesion, and validate_code_quality all relate to code analysis with unclear boundaries. Similarly, analyze_prompt, enhance_prompt, and enhance_prompt_gemini overlap in prompt improvement, while create_thinking_chain, apply_reasoning_framework, and step_by_step_analysis all involve structured problem-solving. This overlap makes it difficult for an agent to reliably select the correct tool.
Most tools follow a consistent verb_noun pattern (e.g., analyze_complexity, create_memory_timeline, get_current_time), which aids predictability. However, there are minor deviations like preview_ui_ascii (verb_noun_adjective) and feature_roadmap (noun_noun), slightly disrupting the pattern. Overall, the naming is largely consistent and readable.
With 35 tools, the count is excessive for the server's apparent scope of AI-assisted coding and memory management. This high number suggests redundancy and fragmentation, as seen in overlapping analysis and prompt tools, making the set feel heavy and unwieldy. A more focused set of 10-20 tools would better serve the domain without overwhelming agents.
The tool surface covers core areas like code analysis, memory management, and project planning with good CRUD coverage for memories (save, list, recall, update, delete, link). Minor gaps exist, such as no explicit tool for deleting or updating code analysis results, but agents can work around these using existing tools like update_memory or validate_code_quality. Overall, the set supports key workflows without major dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
33 tools that make AI write, implement, and verify intent against explicit, testable constraints.
Independent directory of agentic AI tools β search, compare & recommend via MCP. Read-only.
Shared control plane for AI coding agents β tasks, memory, decisions, file locks. 12 tools.
Related MCP Servers
- AlicenseAqualityAmaintenanceA comprehensive development toolkit with 23 tools covering code quality analysis, development efficiency, and project management. Enables AI-assisted code review, test generation, performance analysis, SQL generation, UI component creation, and automated project documentation.2421436MIT
- AlicenseCqualityDmaintenanceAI development assistant with 36 specialized tools for memory management, code analysis, project planning, and problem-solving through natural language interactions in Korean and English.363MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI-driven development tools including file system operations, multi-language code analysis with tree-sitter, Git operations, code execution, and system information retrieval.MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with 28 developer tools across file, git, code analysis, HTTP, and system domains, enabling tasks like file editing, repository management, code analysis, and shell command execution.232MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/su-record/hi-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server