LNA-Report MCP Server
Enables AI agents to automatically analyze AWS LNA CSV data and generate competency assessment PPT reports with radar charts and team-level insights.
README
π§ LNA-Report MCP Server
AWS LNA(Learning Needs Analysis) CSV λ°μ΄ν°λ₯Ό μλ λΆμνμ¬ **μλκ°ν νκ° λΆμ 리ν¬νΈ(PPT)**λ₯Ό μμ±νλ MCP(Model Context Protocol) μλ²μ λλ€.
MCPλ? AI μμ΄μ νΈκ° μΈλΆ λꡬλ₯Ό νΈμΆν μ μκ² ν΄μ£Όλ νμ€ νλ‘ν μ½μ λλ€.
μ΄ μλ²λ₯Ό μ°κ²°νλ©΄ AIκ° LNA λ°μ΄ν° λΆμκ³Ό 리ν¬νΈ μμ±μ μλμΌλ‘ μνν©λλ€.
β¨ μ£Όμ κΈ°λ₯
| Tool | κΈ°λ₯ | μΆλ ₯ |
|---|---|---|
analyze_lna |
LNA CSV μ 체 λΆμ | JSON (νλ³ μ μ, μ격μ¦, μν ) |
generate_report |
PPT 리ν¬νΈ μλ μμ± | PPTX (λ μ΄λ μ°¨νΈ ν¬ν¨) |
get_team_scores |
ν/μ 체 κ³Όμ λ³ μ μ μ‘°ν | JSON (κ³Όμ λ³ μ μ) |
get_recommendations |
κ΅μ‘ μΆμ² κ³Όμ λμΆ | JSON (κΈ΄κΈ/λμ/보ν΅) |
get_individual_assessments |
κ°μΈλ³ μλ νκ° | JSON (κ°μ /μ½μ /μΆμ²κ΅μ‘) |
π μꡬμ¬ν
- 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_MCP
Step 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 | lna-report |
| Command | python |
| Args | -m, lna_mcp.server |
| Working Directory | <cloneν κ²½λ‘>/LNA_Report_MCP/src |
- 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"
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.