learnlog-mcp
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation3/5
The tools have some overlap in purpose, particularly the three prompt retrieval tools (get_prompts_by_date, get_recent_prompts, get_today_prompts) which all fetch prompts with different time filters. While their descriptions clarify the distinctions, an agent might still confuse them when selecting the appropriate one for a query about 'recent' or 'today's' prompts. However, get_learning_stats and save_prompt are clearly distinct.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_learning_stats, save_prompt). The naming is predictable and readable throughout the set, with no deviations in style or convention.
Tool Count5/5With 5 tools, the count is well-scoped for a learning log server focused on tracking and retrieving prompts and statistics. Each tool appears to serve a specific purpose without redundancy, making the set manageable and appropriate for the domain.
Completeness3/5The tool surface covers retrieval (get_*) and saving (save_prompt) for prompts and statistics, but there are notable gaps. For example, there are no tools for updating or deleting saved prompts, which could limit agent workflows if users need to modify or remove entries. The domain suggests a CRUD-like system, but only create and read operations are provided.
Average 3.1/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
This repository is licensed under ISC License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates this is a read operation ('조회합니다'), but doesn't specify whether it requires authentication, has rate limits, returns paginated results, or what the output format might be. For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Korean that directly states the tool's function. It's front-loaded with the core action and resource, with no unnecessary words. However, it could be slightly more structured by explicitly naming the parameter or output, but it's appropriately concise for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with one parameter) and the absence of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list of prompts, metadata), error conditions, or behavioral details like authentication needs. For a tool with no structured support, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions '최근 며칠간' (recent days), which aligns with the 'days' parameter in the schema. Since schema description coverage is 100% (the parameter is fully documented with a description and default value), the description adds minimal value beyond what the schema provides. The baseline score of 3 is appropriate 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.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose ('조회합니다' meaning 'retrieves' or 'queries') and specifies the resource ('질문들' meaning 'questions/prompts') with a time scope ('최근 며칠간' meaning 'recent days'). However, it doesn't clearly distinguish this tool from its siblings like 'get_prompts_by_date' or 'get_today_prompts', which also retrieve prompts with different time filters. The purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 'get_prompts_by_date' (which might allow specific date ranges) or 'get_today_prompts' (which likely retrieves only today's prompts), nor does it specify prerequisites or exclusions. Usage is implied by the time scope but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves statistics, implying a read-only operation, but does not address critical aspects such as authentication requirements, rate limits, error handling, or response format. The description lacks details on what '학습 깊이 점수' entails or how data is structured, leaving behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with two sentences that efficiently convey the tool's purpose and key data points. There is no wasted language, and it avoids redundancy. However, it could be slightly more structured by explicitly separating purpose from data details, but it remains highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (retrieving statistical data) and the absence of annotations and output schema, the description is incomplete. It mentions what data is available but does not explain the return values, data formats, or any behavioral constraints. For a tool with no structured output information, the description should provide more context on what to expect from the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'date' parameter well-documented in the schema. The description adds no additional parameter semantics beyond implying date-based filtering. Since schema coverage is high, the baseline score is 3, as the description does not compensate with extra details but doesn't detract from the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '특정 날짜의 학습 통계를 조회합니다' (retrieves learning statistics for a specific date), specifying the verb (조회/retrieve) and resource (학습 통계/learning statistics). It distinguishes from siblings by focusing on statistics rather than prompts, though it doesn't explicitly contrast with them. The additional detail about '질문 타입별 분포, 학습 깊이 점수' (distribution by question type, learning depth score) adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 mentions what data is retrieved but does not indicate scenarios for its use, prerequisites, or comparisons to sibling tools like get_prompts_by_date or get_today_prompts. Usage is implied through the action described, but explicit context or exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('조회합니다') but doesn't describe whether this is a read-only operation, what permissions are needed, how results are returned (e.g., format, pagination), or any rate limits. For a tool with no annotation coverage, this leaves significant 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized for a simple tool, though it could be slightly more structured (e.g., by explicitly mentioning the parameter). Every part of the sentence contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list of prompts, error handling), behavioral traits like safety or performance, or how it differs from sibling tools. For a tool with no structured metadata, the description should provide more context to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'date' fully documented in the schema as '조회할 날짜 (YYYY-MM-DD 형식)' (date to retrieve in YYYY-MM-DD format). The description adds no additional parameter semantics beyond what the schema provides, such as examples or edge cases, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('조회합니다' - retrieves/looks up) and resource ('질문들' - questions/prompts) with a specific scope ('특정 날짜에 했던' - done on a specific date). It distinguishes from 'get_recent_prompts' and 'get_today_prompts' by specifying date-based retrieval, though not explicitly contrasting them. The purpose is unambiguous but could more directly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'get_recent_prompts' or 'get_today_prompts'. The description implies usage for historical date queries but doesn't specify prerequisites, exclusions, or comparative contexts. Without explicit alternatives or constraints, the agent lacks clear decision-making criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a query/retrieval operation ('조회합니다'), implying read-only behavior, but doesn't disclose important behavioral traits like whether it requires authentication, returns paginated results, has rate limits, or what format/schema the output follows. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences: one stating the purpose, one providing usage examples. Every word earns its place, and the structure is front-loaded with the core functionality followed by contextual guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description adequately covers purpose and usage. However, for a query tool with sibling alternatives, it could better address differentiation and output expectations. The absence of annotations means the description should ideally provide more behavioral context, but it's minimally complete for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose and usage. This meets the baseline expectation for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '오늘 했던 질문들을 조회합니다' (retrieves today's questions). It specifies the resource (today's questions) and verb (retrieve/query). However, it doesn't explicitly differentiate from sibling tools like 'get_prompts_by_date' or 'get_recent_prompts', which likely have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with examples: '사용자가 "오늘 뭐 공부했지?", "오늘 뭐 물어봤지?" 같은 요청을 할 때 사용합니다' (use when users ask questions like 'What did I study today?' or 'What did I ask today?'). This gives good guidance on when to invoke the tool, though it doesn't explicitly mention when NOT to use it or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the saving action and usage modes but lacks details on behavioral traits such as permissions needed, whether saves are permanent or reversible, rate limits, or error handling. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose and followed by usage instructions and examples. Each sentence adds value, with no redundant information. However, the structure could be slightly improved by separating the purpose and usage sections more clearly, but it remains efficient and easy to follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation tool with no annotations and no output schema), the description is partially complete. It covers purpose and usage well but lacks behavioral details and output information. With sibling tools for retrieval, the context is somewhat addressed, but more completeness is needed for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'prompt' documented as '저장할 질문 또는 메모 내용' (question or note content to save). The description doesn't add meaning beyond this, as it focuses on usage rather than parameter details. With high schema coverage, the baseline score of 3 is appropriate, as the schema adequately handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '학습 관련 질문이나 메모를 저장합니다' (saves learning-related questions or notes). It specifies the resource (learning-related content) and verb (save), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like get_prompts_by_date, which might retrieve saved prompts, leaving some ambiguity about its unique role in the toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with two modes: automatic saving (when AI recognizes learning-related questions) and manual saving (when users request it with phrases like '이거 저장해줘'). It includes examples ('N+1 쿼리가 뭐야? 저장해줘') and specifies context (learning-related content), giving clear instructions on when and how to use the tool effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/YUJAEYUN/learnlog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server