Materio MCP Server
OfficialClick on "Deploy 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., "@Materio MCP Server what subjects are in semester 4?"
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.
Materio MCP Server
An MCP (Model Context Protocol) server that enables AI assistants like Claude, ChatGPT, and others to directly search and read Materio's educational PDF resources ā no manual file uploads needed.
When a user asks @materio about a topic, the AI can use this server to:
š Browse all available semesters, subjects, and resources
š Search for specific topics, chapters, question banks, and more
š Read full PDF content and answer questions using the material's own terminology
š Get URLs to share or reference specific PDFs
How It Works
User ā AI Assistant ā MCP Server ā Materio CDN ā PDFs
ā
Resource Library
(resource.lib.json)The server fetches Materio's resource library from
cdn-materioa.vercel.appIt indexes all semesters, subjects, categories, and topics
When the AI needs a PDF, it fetches it from the CDN and extracts the text
The AI uses the extracted text to answer questions with proper terminology
Related MCP server: PDF Reader MCP Server
Available Tools
Tool | Purpose |
| Browse all available resources (filterable by semester) |
| Search across all resources by keyword |
| Fetch and read the full text content of a PDF |
| Get the CDN download URL for a PDF |
| Get a complete overview of a subject's resources |
Deployment Options
Option 1: Deploy to Vercel (Remote ā for ChatGPT, remote Claude, etc.)
Quick Deploy
cd materio-mcp-server
npx vercelOr link to your Vercel account and deploy:
npx vercel --prodWhat Gets Deployed
Endpoint:
https://your-project.vercel.app/mcp(POST for MCP, GET for health check)Transport: Streamable HTTP (stateless JSON-RPC)
Function:
api/mcp.jsā 60s timeout, 1GB memory
Using the Deployed Server
Once deployed, configure your AI client with the remote URL:
Claude Desktop (remote MCP):
{
"mcpServers": {
"materio": {
"url": "https://your-project.vercel.app/mcp"
}
}
}ChatGPT (Custom GPT / Actions):
Use the endpoint URL https://your-project.vercel.app/mcp as the MCP server URL in your GPT configuration.
Health Check:
curl https://your-project.vercel.app/mcpOption 2: Run Locally (stdio ā for Claude Desktop)
Install
cd materio-mcp-server
npm installConfigure Claude Desktop
Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"materio": {
"command": "node",
"args": ["D:\\v4\\materio\\materio-mcp-server\\index.js"]
}
}
}ā ļø Update the path to match your system.
Then restart Claude Desktop.
Usage Examples
Once configured, you can ask your AI assistant things like:
"What subjects are available in semester 4?"
"Find me notes on Deadlocks in Operating System"
"Read the Laplace Transform chapter from Maths-2 and explain the key concepts for exams"
"Get me the question bank for DBMS"
"What topics are covered in Object Oriented Programming with Java?"
"Read the Inheritance chapter and create a study guide covering all exam-relevant points"
Project Structure
materio-mcp-server/
āāā server.js # Shared core ā all tools, utilities, server factory
āāā index.js # Local entry point (stdio transport)
āāā api/
ā āāā mcp.js # Vercel entry point (HTTP transport)
āāā vercel.json # Vercel deployment config
āāā package.json # Dependencies and metadata
āāā README.md # This fileTechnical Details
Runtime: Node.js ā„ 18
Transport: stdio (local) / Streamable HTTP (Vercel)
CDN:
https://cdn-materioa.vercel.appResource Library: Fetched from CDN and cached for 5 minutes
PDF Parsing: Uses
pdf-parseto extract text from PDFsCharacter Limit: PDF text output is capped at 80,000 characters
Vercel Function: 60s timeout, 1GB memory (for large PDF parsing)
License
MIT ā Ā© 2024-2026, Materio by JTC.
Available Tools
6 toolsfetch_pdfGet Materio PDF ContentARead-onlyIdempotent
Fetch and read the full text content of a Materio PDF.
Downloads the PDF from the Materio CDN and extracts its text content so you can read and reason over it. Use this after searching/browsing to retrieve the actual study material.
You can provide EITHER a direct PDF URL (from a search result) OR the semester + subject + topic combination.
IMPORTANT: This tool is designed to help users study. When answering questions based on PDF content:
Use the PDF's own terminology and definitions
Cover all relevant points as expected in university exams
Structure answers clearly with proper headings
Include examples from the material when available
Args:
url (string, optional): Direct CDN URL of the PDF. If provided, semester/subject/topic are ignored.
semester (string, optional): Semester number (e.g. "1", "2", "3", "4", "5", "6"). Required if url is not provided.
subject (string, optional): Subject name exactly as listed in the resource library. Required if url is not provided.
topic (string, optional): Topic name exactly as listed in the resource library. Required if url is not provided.
Returns: The full extracted text content of the PDF, which may be long. The AI can then use this to answer questions.
Examples:
Fetch by URL: { url: "https://cdn-materioa.vercel.app/pdfs/4/Operating%20System/Deadlocks.pdf" }
Fetch by path: { semester: "4", subject: "Operating System", topic: "Deadlocks" }
Fetch by path: { semester: "3", subject: "Object Oriented Programming with Java", topic: "Inheritance" }
Inputs: url, topic, subject, semester.
get_resourceSearch Materio ResourcesARead-onlyIdempotent
Search across all Materio educational PDFs by keyword.
Searches through semester numbers, subject names, category types (Chapters, Assignments, Question Banks, etc.), and topic names to find matching resources.
Args:
query (string): Search keywords to match, e.g. "operating system deadlocks", "maths laplace", "java inheritance", "question bank", "semester 4". Multiple words narrow the search.
limit (number, optional): Maximum number of results to return (default: 20, max: 50).
Returns: A list of matching resources with semester, subject, category, topic name, and the CDN URL for each PDF.
Examples:
"Find notes on deadlocks" ā params: { query: "deadlocks" }
"Question banks for semester 4" ā params: { query: "question bank semester 4" }
"Java chapters" ā params: { query: "java chapters" }
"DBMS SQL" ā params: { query: "dbms sql" }
"Maths Laplace Transform" ā params: { query: "laplace transform" }
Inputs: query (required), limit.
list_resourcesList Materio ResourcesARead-onlyIdempotent
List all available educational resources in the Materio library.
Returns a structured overview of all semesters, subjects, resource categories, and topics available. Use this to discover what PDFs are available before fetching a specific one.
Optionally filter by semester number to narrow results.
Args:
semester (string, optional): Filter by semester number (e.g. "1", "2", "3", "4", "5", "6"). Omit to list all semesters.
Returns: A formatted markdown listing of all available resources organized by semester > subject > category > topics.
Examples:
"What subjects are in semester 3?" ā params: { semester: "3" }
"Show me all resources" ā params: {}
"What's available for semester 5?" ā params: { semester: "5" }
Inputs: semester.
searchSemantic Vector SearchARead-only
PRIORITY 1 ā Semantic search across the pre-indexed Materio document library.
Uses Google Gemini (gemini-embedding-2-preview) to match your question against extracted textbook chunks stored in a vector database. Always call this first before attempting fetch_pdf. Returns the most relevant text passages with similarity scores and source page references.
Args:
query (string): The specific question, concept, or topic to search for. Be precise ā e.g. "deadlock detection algorithm" not just "deadlock".
semester (string, optional): Filter results to a specific semester (e.g. "4").
subject (string, optional): Filter results to a specific subject (e.g. "Operating System").
limit (number, optional): Number of results to return (default: 5, max: 15).
Returns: Ranked text chunks with similarity %, subject, topic, page range, and a direct PDF link for further reading.
Examples:
"Explain banker's algorithm" ā params: { query: "banker algorithm deadlock avoidance" }
"OS deadlocks semester 4" ā params: { query: "deadlock", semester: "4", subject: "Operating System" }
Inputs: query (required), limit, subject, semester.
subject_overviewGet Subject OverviewARead-onlyIdempotent
Get a complete overview of all available resources for a specific subject.
Shows all categories (Chapters, Assignments, Question Banks, Previous Year Papers, etc.) and their topics for the given subject. Useful for understanding the full scope of available material before diving into specific topics.
Args:
semester (string): Semester number (e.g. "1", "2", "3", "4", "5", "6").
subject (string): Subject name exactly as listed in the resource library.
Returns: A detailed listing of all resource categories and topics for the subject, with PDF URLs for each.
Examples:
{ semester: "4", subject: "Operating System" }
{ semester: "2", subject: "Maths-2" }
{ semester: "3", subject: "Database Management Systems" }
Inputs: subject (required), semester (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 6 tools
Tools are mostly distinct, but get_resource and search could be confused as both involve searching, though one is metadata keyword search and the other is semantic content search. list_resources and subject_overview also overlap slightly.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_resources, fetch_pdf). Only 'search' is a single verb, but it's a common exception and still fits the pattern.
6 tools cover the core functionality of browsing, searching, retrieving, and sharing PDF resources without being too few or too many. The scope is well-scoped for an educational document library.
The tool set provides a complete workflow: discover resources (list_resources, subject_overview), search (search, get_resource), retrieve full content (fetch_pdf), and share (share_link). No obvious gaps for a read-only library.
Maintenance
Related MCP Connectors
Bring your Knacco library into your AI tool: browse, search, read guides and download files.
Gives AI assistants read access to your Dedox help centre and knowledge base articles.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Access and search Branch's official API documentation directly within any AI agent or client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and query PDF documents through a local RAG system with vector embeddings. Provides semantic document search capabilities while keeping all data stored locally without external dependencies.-
- AlicenseAqualityDmaintenanceEnables AI agents to securely read and extract information from PDF files including text content, metadata, and page counts from both local files and URLs within the project context.15,035 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to read and process PDF files with intelligent file search, text extraction, image processing, and optional OCR support for scanned documents.MIT
- FlicenseNot gradedqualityCmaintenanceProvides AI assistants with comprehensive access to Material UI documentation, component details, and setup guides for building React applications. It enables searching through 50+ components and provides structured information on imports, customization, and best practices.2-