FCPC-lms-mcp-server
FCPC LMS MCP 서버
AI 어시스턴트가 학생 본인의 Moodle 계정에 관한 질문(제출 기한이 다가오는 과제, 읽지 않은 메시지, 대기 중인 퀴즈, 수강 중인 강좌)에 답할 수 있게 해주는 MCP 서버입니다.
학생들은 웹, 휴대폰, 데스크톱의 Claude에서 URL 하나를 등록하여 연결합니다. 설치할 소프트웨어도, 직접 복사할 토큰도 없습니다.
First City Providential College를 위해 제작되었지만, 웹 서비스가 활성화된 모든 Moodle 사이트에서 작동합니다.
답변할 수 있는 내용
과제 제출 기한이 언제인지
선생님과 급우들이 보낸 읽지 않은 메시지
아직 완료하지 않은 퀴즈
수강 중인 강좌 목록
"Do I have any new messages?"
"What is due this week?"Related MCP server: Moodle MCP Server
실행 방법 두 가지
원격 서버 | 로컬 서버 | |
대상 | 학급 또는 기관 전체 | 개인, 자신의 컴퓨터에서 |
클라이언트 | Claude (웹, iOS, Android, 데스크톱) | 해당 컴퓨터의 모든 MCP 클라이언트 |
학생 설정 | URL 하나 | 없음, 단 저장소 설치 필요 |
로그인 | OAuth, Claude가 처리 |
|
진입점 |
|
|
대부분의 배포는 원격 서버를 사용합니다.
원격 서버 (권장)
요구 사항
Python 3.11 이상
cloudflared (
brew install cloudflared) 또는 HTTPS 주소를 노출할 수 있는 다른 방법해당 사이트의 Moodle 계정. 설정 중 사이트 주소를 기록하기 위해 한 번 사용됩니다.
관리자용
setup.command(macOS) 또는setup.bat(Windows)을 한 번 실행하고 로그인합니다. 그러면 Moodle 사이트 주소가.env에 기록됩니다.start-server.command를 실행합니다. 배포할 URL이 출력됩니다:
https://xxxx.trycloudflare.com/mcp해당 창을 닫으면 서버가 중지되므로, 서비스 사용 중에는 창을 열어 두세요. 무료 trycloudflare.com 주소는 재시작할 때마다 변경됩니다. 고정 주소가 필요하면
named tunnel을 사용하세요.
학생용
휴대폰을 포함한 모든 브라우저에서 claude.ai를 엽니다.
설정 → 커넥터 → 사용자 지정 커넥터 추가로 이동합니다.
이름을 정하고 받은 URL을 붙여넣습니다.
Claude가 Moodle 로그인 페이지를 엽니다. 평소 사용하는 Moodle 사용자 이름과 비밀번호로 로그인합니다.
이것이 설정의 전부입니다. 이후에는 Claude 모바일 앱에서도 작동합니다.
커넥터는 Claude 웹사이트에서만 추가할 수 있지만, 휴대폰 브라우저도 정상 작동합니다. 추가되면 앱에 동기화됩니다.
로그인 작동 방식
Student's Claude ──HTTPS──▶ MCP server ──▶ Moodle
(OAuth)각 사용자는 OAuth 로그인으로 식별됩니다. 학생이 로그인하면 해당 학생의 Moodle 토큰이 액세스 토큰 자체에 암호화되어 Claude에 반환됩니다.
서버는 Moodle 토큰도 비밀번호도 저장하지 않습니다
비밀번호는 토큰을 얻는 데 한 번만 사용된 후 폐기됩니다
어떤 사용자도 다른 사용자의 데이터를 볼 수 없습니다
.oauth_key(암호화 키)와 .oauth_clients.json은 비밀입니다. 둘 다
git에서 제외됩니다. .oauth_key를 삭제하면 모든 사용자가 로그아웃됩니다.
로컬 서버
자신의 컴퓨터에서 stdio를 통해 MCP 서버를 실행하기 위한 것입니다.
setup.command/setup.bat을 실행하거나:
python -m venv venv
source venv/bin/activate # macOS/Linux
.\venv\Scripts\activate # Windows PowerShell
pip install -r requirements.txt
python setup_gui.pyMCP 클라이언트를
server.py에 연결합니다. 예를 들어 Claude Desktop의claude_desktop_config.json에서:
{
"mcpServers": {
"moodle": {
"command": "/path/to/venv/bin/python",
"args": ["/path/to/server.py"]
}
}
}AI가 정확히 무엇을 받는지 확인하려면:
python list_tools.py독립형 채팅 클라이언트도 두 개 있습니다: client.py(OpenAI)와
client_localLLM.py(ollama). 둘 다 서버 스크립트를 인자로 받습니다:
python client.py server.py테스트
selftest.py는 브라우저 없이 확인할 수 있는 모든 것을 검사합니다: Moodle
연결, 두 서버, 실제 도구 호출까지 이어지는 OAuth 흐름, 그리고 사용자가
서로의 데이터를 볼 수 없는지 여부입니다.
python selftest.py # all checks
python selftest.py --offline # skip anything needing the network모든 검사가 통과하면 0으로 종료되고 나머지 수동 단계를 출력합니다: Claude에서 커넥터 등록, 로그인, 질문하기, 휴대폰에서 반복하기.
설치 후, 코드 변경 후, 그리고 서버를 호스팅할 머신에서 실행하세요.
Moodle 관련 참고 사항
일부 Moodle 사이트는 Cloudflare 뒤에 있어 일반 HTTPS 클라이언트에 HTTP 403으로
거부합니다. 따라서 요청은 브라우저 TLS 지문을 사용하는 curl_cffi를 통해
전달됩니다. 이것이 서버를 Apps Script 등으로 재구현할 수 없는 이유이자,
정상적인 네트워크 경로가 있는 곳에서 실행해야 하는 이유입니다.
SSO(Google 등)로 Moodle에 로그인하는 사용자는 login/token.php를 사용할 수
없습니다. decode_token.py가 이 경우를 처리합니다.
파일
파일 | 용도 |
| Claude 커넥터용 OAuth가 포함된 원격 MCP 서버 |
| OAuth 인증 서버, 토큰을 저장하지 않음 |
| Claude가 여는 Moodle 로그인 페이지 |
| stdio를 통한 로컬 MCP 서버 |
| Moodle API 클라이언트, 인스턴스당 토큰 하나 |
| 토큰 검색 및 |
| 설정 마법사 |
| 더블클릭 설정 (macOS / Windows) |
| 원격 서버 게시 (macOS) |
| 설치를 처음부터 끝까지 확인 |
| AI가 보는 도구 출력 |
| 명령줄에서 토큰 가져오기 |
| SSO 사용자용 토큰 추출 |
| 독립형 채팅 클라이언트 |
크레딧
MCP 서버 자체(server.py, client.py, client_localLLM.py)는
**정지성(@jeongjisung690)**이 작성했습니다.
원본 저장소: https://github.com/jeongjisung690/Moodle---MCP-server
이 저장소는 다음을 추가합니다:
Cloudflare 뒤에 있는 Moodle 사이트 지원
사용자 이름과 비밀번호로부터의 자동 토큰 검색
SSO 사용자용 토큰 추출
비전문가 사용자를 위한 설정 마법사
OAuth가 포함된 원격 MCP 서버로, 학생들이 단일 URL로 연결 가능
라이선스
라이선스가 설정되지 않았습니다. 이 코드를 사용하거나 재배포하기 전에 작성자에게 연락하시기 바랍니다.
This server cannot be installed
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 Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.14MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.14MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.104MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Connect AI assistants to ITM Platform projects, tasks, budgets, risks, and team workload.
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/Ogaaawa/FCPC-lms-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server