LNA-Report MCP Server
This server analyzes AWS Learning Needs Analysis (LNA) CSV data and automatically generates capability assessment reports, enabling AI agents to perform data analysis and report generation.
Capabilities:
Analyze LNA Data (
analyze_lna): Parse and analyze an LNA CSV file to return team-by-team competency status, including scores, certifications, and roles in JSON format.Generate PPT Report (
generate_report): Automatically create a full PowerPoint (.pptx) report from LNA CSV data, including radar charts, team profiles, executive summary, training recommendations, and next steps. Supports custom company name and team configuration.Get Team/Overall Scores (
get_team_scores): Retrieve course-by-course competency scores for a specific team or the entire organization in JSON format.Get Recommendations (
get_recommendations): Generate prioritized training course recommendations (urgent/high/medium priority) for a specific team or all teams based on LNA scores.Get Individual Assessments (
get_individual_assessments): Retrieve per-person competency evaluations including average score, top 3 strengths, top 3 weaknesses, and top 3 recommended training courses.
Analyzes LNA (Learning Needs Analysis) CSV data exported from Qualtrics to generate competency assessment reports in PPT format.
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., "@LNA-Report MCP ServerAnalyze the LNA CSV file and generate a PPT competency report."
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.
π§ LNA-Report MCP Server
AWS LNA(Learning Needs Analysis) CSV λ°μ΄ν°λ₯Ό μλ λΆμνμ¬ **μλκ°ν νκ° λΆμ 리ν¬νΈ(PPT)**λ₯Ό μμ±νλ MCP(Model Context Protocol) μλ²μ λλ€.
MCPλ? AI μμ΄μ νΈκ° μΈλΆ λꡬλ₯Ό νΈμΆν μ μκ² ν΄μ£Όλ νμ€ νλ‘ν μ½μ λλ€.
μ΄ μλ²λ₯Ό μ°κ²°νλ©΄ AIκ° LNA λ°μ΄ν° λΆμκ³Ό 리ν¬νΈ μμ±μ μλμΌλ‘ μνν©λλ€.
β¨ μ£Όμ κΈ°λ₯
Tool | κΈ°λ₯ | μΆλ ₯ |
| LNA CSV μ 체 λΆμ | JSON (νλ³ μ μ, μ격μ¦, μν ) |
| PPT 리ν¬νΈ μλ μμ± | PPTX (λ μ΄λ μ°¨νΈ ν¬ν¨) |
| ν/μ 체 κ³Όμ λ³ μ μ μ‘°ν | JSON (κ³Όμ λ³ μ μ) |
| κ΅μ‘ μΆμ² κ³Όμ λμΆ | JSON (κΈ΄κΈ/λμ/보ν΅) |
| κ°μΈλ³ μλ νκ° | JSON (κ°μ /μ½μ /μΆμ²κ΅μ‘) |
Related MCP server: S3 Data Lake MCP Server
π μꡬμ¬ν
Python 3.10 μ΄μ
pip ν¨ν€μ§ κ΄λ¦¬μ
Windows 10/11, macOS, λλ Linux
π μ€μΉ λ°©λ²
Step 1: 리ν¬μ§ν 리 Clone
git clone https://github.com/twkim1122/LNA_Report_MCP.git
cd LNA_Report_MCPStep 2: ν¨ν€μ§ μ€μΉ (editable λͺ¨λ)
pip install -e .μ°Έκ³ : μμ‘΄μ±μ΄ μλ μ€μΉλ©λλ€ (
mcp[cli],pandas,python-pptx,matplotlib,numpy)
Step 3: μ€μΉ νμΈ
python -m lna_mcp.server --helpμ€λ₯ μμ΄ μ€νλλ©΄ μ€μΉ μλ£!
π MCP ν΄λΌμ΄μΈνΈ μ°λ μ€μ
Option A: Amazon Quick μ°λ
Amazon Quick μ΄κΈ°
Settings β Capabilities β Connectors μ΄λ
"+ Add MCP server" β Local (stdio) μ ν
μλ κ° μ λ ₯:
νλͺ© | κ° |
Name |
|
Command |
|
Args |
|
Working Directory |
|
Save β μ λνμμ "LNA νμΌ λΆμν΄ μ€" μ λ ₯νμ¬ Tool μΈμ νμΈ
Option B: Kiro CLI μ°λ
~/.kiro/settings/mcp.json νμΌμ μΆκ° (μμΌλ©΄ μλ‘ μμ±):
{
"mcpServers": {
"lna-report": {
"command": "python",
"args": ["-m", "lna_mcp.server"],
"cwd": "<cloneν κ²½λ‘>/LNA_Report_MCP/src",
"env": {}
}
}
}Windows μμ:
"cwd": "C:\\Users\\<username>\\projects\\LNA_Report_MCP\\src"macOS/Linux μμ:
"cwd": "/home/<username>/projects/LNA_Report_MCP/src"
Kiro CLI μ¬μμ ν Toolμ΄ μΈμλ©λλ€.
Option C: Claude Desktop μ°λ
claude_desktop_config.jsonμ μΆκ°:
{
"mcpServers": {
"lna-report": {
"command": "python",
"args": ["-m", "lna_mcp.server"],
"cwd": "<cloneν κ²½λ‘>/LNA_Report_MCP/src"
}
}
}π μ¬μ© λ°©λ²
1. μ 체 λΆμ
AIμκ² μμ²:
LNA CSV νμΌμ λΆμν΄ μ£ΌμΈμ.
csv_path: "C:\κ²½λ‘\LNA_2026.csv"2. PPT 리ν¬νΈ μμ±
LNA λΆμ 리ν¬νΈλ₯Ό PPTλ‘ λ§λ€μ΄ μ£ΌμΈμ.
csv_path: "C:\κ²½λ‘\LNA_2026.csv"
output_path: "C:\μΆλ ₯\리ν¬νΈ.pptx"
company_name: "ACME Corp"
LNA λΆμ 리ν¬νΈλ₯Ό HTMLλ‘ λ§λ€μ΄ μ£ΌμΈμ.3. νΉμ ν κ΅μ‘ μΆμ²
ν΄λΌμ°λ AXνμ νμν κ΅μ‘ κ³Όμ μ μΆμ²ν΄ μ£ΌμΈμ.4. κ°μΈλ³ νκ°
κ° κ°μΈλ³ κ°μ , μ½μ , μΆμ² κ΅μ‘μ μλ € μ£ΌμΈμ.ποΈ CSV μ λ ₯ νμ
νμ μ¬ν
Qualtrics LNA Excelμμ 'Raw Data' μνΈλ₯Ό CSVλ‘ λ³ν
β οΈ 'Student Heatmap' μνΈκ° μλ 'Raw Data' μνΈ μ¬μ©
Progress컬λΌμ΄ λ°λμ ν¬ν¨λμ΄μΌ ν¨ (100% μλ£ μλ΅λ§ λΆμ)μΈμ½λ©: UTF-8 BOM κΆμ₯
CSV λ³ν λ°©λ²
Qualtrics LNA Excel μ΄κΈ°
'Raw Data' μνΈ μ ν
λ€λ₯Έ μ΄λ¦μΌλ‘ μ μ₯βCSV UTF-8 (μΌνλ‘ λΆλ¦¬)(*.csv)μ νμ μ₯
π’ ν μ€μ (team_config)
LNA CSVμ ν 컬λΌμ Qualtrics μλ² λλ λ³μ(${e://Field/Team1} λ±)λ‘ λμ΄ μμ΄, μ€μ νλͺ
κ³Ό λ§€νμ΄ νμν©λλ€.
team_config JSON νμ
{
"${e://Field/Team1}": {
"name": "μν°νλΌμ΄μ¦ ꡬμΆ/μ΄μν",
"leader": "K",
"mission": "ν΄λΌμ°λ ꡬμΆ/μ΄μ"
},
"${e://Field/Team2}": {
"name": "AXν",
"leader": "T",
"mission": "ν΄λΌμ°λ μ ν 컨μ€ν
"
}
}ν: team_config μμ΄λ λΆμμ κ°λ₯ν©λλ€. μ΄ κ²½μ° νλͺ μ΄ μμκ°μΌλ‘ νμλ©λλ€.
π 리ν¬νΈ ν¬ν¨ λ΄μ© (PPT)
μμ±λλ PPT 리ν¬νΈμλ λ€μμ΄ ν¬ν¨λ©λλ€:
νμ§ + κΈ°λ° κ³ μ§
LNA μΆμ§ λ°°κ²½ λ° λͺ©μ
Executive Summary (κ°μ /μ½μ μμ)
Score μ μ κΈ°μ€ (1~5μ ν΄μ)
μ μ¬ μλ νν© + λ μ΄λ μ°¨νΈ
νλ³ μμΈ λΆμ (νλ‘ν, μ μ, κ°λ³ λ μ΄λ μ°¨νΈ)
νλ³ λΉκ΅ λ μ΄λ μ°¨νΈ (μ€λ²λ μ΄)
νλ³ κ΅μ‘ μΆμ² (κΈ΄κΈ/λμ/보ν΅)
κ²°λ‘ λ° Next Steps
π νλ‘μ νΈ κ΅¬μ‘°
LNA_Report_MCP/
βββ pyproject.toml # ν¨ν€μ§ μ€μ λ° μμ‘΄μ±
βββ README.md # λ³Έ λ¬Έμ
βββ .gitignore
βββ src/lna_mcp/
βββ __init__.py
βββ server.py # MCP μλ² (Tool μ μ)
βββ analyzer.py # LNA λΆμ μμ§
βββ report_generator.py # PPT 리ν¬νΈ μμ±κΈ°π μ λ°μ΄νΈ λ°©λ²
μλ²κ° μ λ°μ΄νΈλλ©΄:
cd LNA_Report_MCP
git pull
pip install -e . # μμ‘΄μ± λ³κ²½ μAmazon Quick / Kiro CLI μ¬μμ λλ MCP μλ² Reconnect
β FAQ
Q: Python λ²μ μ΄ 3.9μΈλ° μ¬μ© κ°λ₯νκ°μ?
A: 3.10 μ΄μμ΄ νμν©λλ€. python --versionμΌλ‘ νμΈ ν, νμμ μ
κ·Έλ μ΄λνμΈμ.
Q: pip install -e . μμ μ€λ₯κ° λ°μν©λλ€
A: pipλ₯Ό μ΅μ μΌλ‘ μ κ·Έλ μ΄λν ν μ¬μλ:
pip install --upgrade pip
pip install -e .Q: Toolμ΄ μΈμλμ§ μμ΅λλ€
A: cwd κ²½λ‘κ° src ν΄λλ₯Ό κ°λ¦¬ν€λμ§ νμΈνμΈμ. LNA_Report_MCP/srcκ° μ νν κ²½λ‘μ
λλ€.
Q: CSV λΆμ μ "Progress μ»¬λΌ μμ" μ€λ₯
A: Qualtrics Excelμμ 'Raw Data' μνΈλ₯Ό CSVλ‘ λ³ννλμ§ νμΈνμΈμ. 'Student Heatmap' μνΈλ Progress 컬λΌμ΄ μμ΅λλ€.
Q: νκΈμ΄ κΉ¨μ§λλ€
A: CSV μ μ₯ μ UTF-8 BOM μΈμ½λ©μ μ¬μ©νμΈμ. Excelμμ CSV UTF-8 (μΌνλ‘ λΆλ¦¬) νμμΌλ‘ μ μ₯ν©λλ€.
Q: λ μ΄λ μ°¨νΈκ° μμ±λμ§ μμ΅λλ€
A: matplotlib νκΈ ν°νΈ μ΄μμΌ μ μμ΅λλ€. Windowsλ 'Malgun Gothic', macOSλ 'AppleGothic'μ΄ νμν©λλ€. macOS μ¬μ©μλ src/lna_mcp/report_generator.pyμμ ν°νΈ μ€μ μ λ³κ²½νμΈμ:
plt.rcParams["font.family"] = "AppleGothic" # macOSπ·οΈ Score μ μ
Score | μμ€ | μλ―Έ |
1 | None | κΈ°λ³Έμ μΈ κ΄λ ¨ μ§μμ΄ μλ μν |
2 | Basic | κΈ°λ³Έμ μΈ μ΄ν΄λ ₯μ κ°μΆκ³ μμΌλ μ 무 μν λΆκ° |
3 | Functional | μ€ν¬ νμ© μ 무 μν κ°λ₯, νμμ AWS μ§μ νμ |
4 | Proficient | λ€μν μμ€μ μ 무λ₯Ό μν λ° μ μ© κ°λ₯ |
5 | Expert | μ λ¬Έκ° μν μν λ° μ»¨μ€ν μν κ°λ₯ |
π License
Internal use only β AWS T&C Korea
π€ Author
AWS T&C Korea Team
Contact: ktaewoo@amazon.com
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/twkim1122/LNA_Report_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server