massongit/open_university_japan_syllabus_mcp_server
If you are the rightful owner of open_university_japan_syllabus_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Model Context Protocol (MCP) server for Open University Japan Syllabus is designed to facilitate seamless integration and management of syllabus data using advanced LLM and MCP technologies.
Open University of Japan (Face-to-Face Course) Syllabus MCP Server
| English
A Model Context Protocol (MCP) server for the Open University of Japan. It provides syllabus data for face-to-face courses. The server automatically retrieves and parses PDF files from the university's official site. Data is then stored in a structured SQLite database. Functions as an MCP tool that can be directly searched and utilized by AI tools like Claude Code.
Key Features
- PDF Data Extraction: Automatically extracts table data from syllabus PDFs. Uses pdfplumber for face-to-face courses on the web
- SQLite Database: Structured storage of extracted syllabus data in a searchable format
- MCP Server: Provides search APIs directly accessible from AI tools. Functions as a Model Context Protocol server
- Multi-faceted Search Functions:
- Regional and study center-based search
- Cross-field keyword search (course names, instructors, course overviews, etc.)
- Academic level-based search (numbering system support)
Requirements
- Python 3.13 or higher
- uv package manager
Setup
# Install dependencies
uv sync
Usage
MCP Server Registration
For Claude Code, register as an MCP server with the following command:
claude mcp add open-university-japan-syllabus -- uvx --from git+https://github.com/massongit/open_university_japan_syllabus_mcp_server open-university-japan-syllabus-mcp-server
Database Generation
You can generate the database with the MCP server's generate_db command.
To create the database via CLI, run the following command:
uv run generate_db.py
Note: This command takes approximately 16 minutes to complete. Rate limiting is set to 1 request per minute to avoid overloading the university's servers.
Available MCP Tools
The MCP server provides the following tools:
get_version
Retrieves MCP server version information.
generate_db
Generates the database with the latest syllabus data.
Note: This operation takes approximately 16 minutes due to rate limiting.
get_face_to_face_courses_syllabus
Searches syllabi for face-to-face courses. Flexible searching is possible with the following parameters.
places: Filter by region/location- 7 regional blocks:
- Hokkaido-Tohoku, Kita-Kanto-Koshinetsu, Minami-Kanto
- Tokai-Hokuriku, Kinki, Chugoku-Shikoku, Kyushu-Okinawa
- Specific study center names or satellite space names
- 7 regional blocks:
keywords: Keyword search- Full-text search across course names, course categories, instructors, and course overviews
numbering_hundred_digits: Filter by academic level- 1: Foundation subjects (100-199)
- 2: Introductory subjects (200-299)
- 3: Specialized subjects (300-399)
- 4: Comprehensive subjects (400-499)
Development
Development Environment Setup
Install development dependencies and pre-commit hooks.
# Install development dependencies
uv sync --group dev
# Install pre-commit hooks (required to install gitleaks)
uvx pre-commit install
Architecture
File Structure
src/mcp_server.py: FastMCP-based MCP server implementationgenerate_db.py: Database generation entry pointsrc/lib.py: Core PDF processing and data transformation librarysrc/rate_limiter.py: Token Bucket algorithm implementation for HTTP request rate limiting
Data Processing Flow
- PDF Retrieval: Automatic download of PDFs from 7 regional blocks. Retrieved from the Open University of Japan official site
- Rate Limiting: Limited to 1 request per minute using Token Bucket algorithm
- Table Data Extraction: Table structure analysis and data extraction using pdfplumber
- Data Normalization: Japanese text normalization and study center information supplementation
- Database Storage: Structured storage in SQLite database
- MCP API Provision: Dynamic search query generation and JSON format responses
Technical Specifications
- Target Data: Open University of Japan (Face-to-Face Course) Syllabi
- Note: Live Web courses are not included.
- Update Frequency: Manual execution
- Search Limits: Maximum 20 responses per query
- Database: SQLite (cross-platform support using platformdirs)