papserMCP_server
Provides tools for querying the CodeChef VIT papers portal, including searching for question papers by subject, year, exam type, branch, or campus; retrieving full metadata for a specific paper; and accessing a feed of recently added papers.
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., "@papserMCP_serverFind recent CAT-1 papers for Data Structures from Vellore campus."
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.
CodeChef VIT Papers MCP Server
A standalone Model Context Protocol (MCP) server that exposes the CodeChef VIT papers portal's data to MCP-compatible AI clients (Claude Desktop, Cursor, VS Code Copilot, etc.). It connects directly to the portal's MongoDB database in read-only mode, allowing AI assistants to query university question papers, retrieve full metadata, and fetch feeds of recently added papers.
This server operates purely inread-only mode. It does not contain any write or upload capabilities, authentication flows, or external HTTP server interfaces. It communicates strictly via standard input/output (stdio) transport.
Features
Tool:
search_papers: Search for university question papers using filters like subject (matches both subject name or course code, e.g., "BCSE202P" or "Data Structures"), year, exam type, branch, and campus. Results are capped at 20 documents, displaying a total count notice if more matches exist.Tool:
get_paper_metadata: Fetch the complete metadata details for a specific question paper using its database ID.Resource:
recent-papers: Access a read-only JSON feed of the last 10 papers added to the database.
Related MCP server: arXiv MCP Server
Input Validation & Rate Limiting
Input Validation (Zod)
All tool inputs are validated strictly using Zod before any database queries are executed:
search_papers:subject: Optional string.year: Optional 4-digit integer between1000and9999(e.g.2023).exam: Optional enum matching known exam types:CAT-1,CAT-2,FAT,Model CAT-1,Model CAT-2,Model FAT.branch: Optional enum matching known branch types:CSE,ECE.campus: Optional enum matching known campuses:Vellore,Chennai,Andhra Pradesh,Bhopal,Bangalore,Mauritius.
get_paper_metadata:paperId: Required 24-character hexadecimal MongoDB ObjectId string.
If validation fails, the server responds with a clear MCP error before calling MongoDB.
Rate Limiting
To prevent abuse, the server implements an in-memory Token Bucket rate limiter scoped per session (the stdio connection process):
Limit: Max 30 tool calls per minute.
Behavior: Exceeding the rate limit returns a clean MCP error response (no crash) and logs the event to
console.error.
Setup Instructions
Prerequisites
Node.js (v18 or higher recommended)
npm (v9 or higher)
A read-only MongoDB URI for the portal's database (never use production write credentials)
Installation
Clone or navigate to the repository directory:
cd d:/VIT/Club/papserMCP_serverInstall the dependencies:
npm installCreate your environment configuration file: Copy
.env.exampleto.envand fill in your read-only database URI:cp .env.example .envEdit
.env:MONGODB_URI_READONLY="mongodb+srv://<username>:<password>@cluster.mongodb.net/Papers-staging?retryWrites=true&w=majority"
Build and Run
To compile the TypeScript source into production-ready JavaScript code:
# Build the project
npm run build
# Run the server locally (it will wait for stdio inputs)
npm run startFor development mode (automatically re-compile files as they change):
npm run devWiring into Claude Desktop
To expose this MCP server to Claude Desktop, add the server to your Claude Desktop configuration file.
Configuration Path
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
JSON Configuration Snippet
Add the following snippet under mcpServers. Make sure to replace the env.MONGODB_URI_READONLY with your actual read-only database credentials:
{
"mcpServers": {
"codechefvit-papers-mcp": {
"command": "node",
"args": [
"d:/VIT/Club/papserMCP_server/dist/index.js"
],
"env": {
"MONGODB_URI_READONLY": "mongodb+srv://<readonly-user>:<password>@cluster.mongodb.net/Papers-staging?retryWrites=true&w=majority"
}
}
}
}On Windows, you can use forward slashes/ in the file path as shown above, or escape backslashes like "D:\\VIT\\Club\\papserMCP_server\\dist\\index.js".
Try Asking Claude
Once successfully connected, you can ask Claude Desktop questions like:
"Can you check if there are any CAT-1 papers for Data Structures [BCSE202P] from the Vellore campus?"
"Find me Vellore campus papers from the year 2023."
"Can you show me the full metadata for the paper with ID 60d5ecb867c2e022f4b2f123?"
"List the last 10 question papers added to the portal."
License
This repository is maintained privately for the CodeChef VIT chapter.
Available Tools
2 toolsget_paper_metadataA
Retrieve complete metadata for a specific question paper by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| paperId | Yes | The 24-character hexadecimal ID of the paper (e.g. '60d5ecb867c2e022f4b2f123') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only says 'retrieve complete metadata' without detailing what fields are included, whether it returns null/404 for nonexistent IDs, or any access/rate limit considerations. The vague phrase 'complete metadata' leaves the agent uncertain about the exact response shape and failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and target. There is no fluff or redundant content, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), but the description does not clarify what 'complete metadata' entails or what the response structure looks like. Without an output schema, the agent must guess what fields will be returned. However, given the low complexity, some lack of detail is acceptable, but a short description of return content would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single parameter paperId, including a type and an example. The description adds no meaningful semantic detail beyond what the schema already provides (the description redundantly mentions 'by its ID'). Since schema coverage is 100%, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (retrieve) and the specific resource (complete metadata for a question paper by its ID). This distinguishes it from the sibling tool search_papers, which is for discovering papers rather than fetching a known paper's metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by its ID' communicates the primary use case: when you already have a specific paper ID and need its metadata. It implies that search_papers is for finding IDs, though it does not explicitly name the alternative or provide exclusion criteria. The context is clear enough for an agent to choose this tool over search_papers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersC
Search for question papers from CodeChef VIT Papers Portal using filters. Caps results at 20.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | The exam type (e.g. 'CAT-1', 'CAT-2', 'FAT', 'Model CAT-1', 'Model CAT-2', 'Model FAT') | |
| year | No | The academic year of the question paper (e.g. 2023) | |
| branch | No | The academic branch/stream (e.g. 'CSE', 'ECE') | |
| campus | No | The campus name (e.g. 'Vellore', 'Chennai', 'Andhra Pradesh', 'Bhopal', 'Bangalore', 'Mauritius') | |
| subject | No | The subject name or course code (e.g. 'BCSE202P', 'Data Structures') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only mentions 'Caps results at 20' but does not explain the return format, how filters combine, or that it is a read-only operation. The single behavioral trait is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the main purpose and followed by the result cap. There is no waste, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what the search returns (e.g., list of papers, metadata fields, how to use metadata tool). It fails to provide this, only mentioning a result cap. The tool is under-described for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are fully described in the input schema, so the baseline is 3. The description's phrase 'using filters' adds no new meaning beyond what the schema already provides; it does not compensate with additional semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for question papers from a specific portal using filters. It identifies the verb (search), resource (question papers), and scope (CodeChef VIT Papers Portal), but does not explicitly differentiate from sibling get_paper_metadata beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the sibling tool or any exclusions. It simply says 'search', leaving the usage context implicit with no alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
get_paper_metadata - First observed
search_papers
TDQS
The two tools have clearly distinct purposes: one searches for papers using filters, the other retrieves metadata for a specific paper by ID. There is no overlap or ambiguity between them.
Both tool names follow a consistent verb_noun pattern: 'search_papers' and 'get_paper_metadata'. The naming is clean and predictable.
With only 2 tools, the server is on the thinner side, but they cover the core search-and-retrieve flow. It feels slightly under-scoped for a question paper portal, but not unreasonable.
The server covers searching and fetching metadata, but it lacks an operation to download or access the actual paper content. Depending on the metadata, this may be workable, but it is a notable gap for a paper-focused server.
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 Connectors
Versioned documentation registry and semantic search for AI tools and coding assistants.
Search Codeforces problems and inspect public problem metadata through the official Codeforces API.
Knowledge Network for AI Agents and creators: Search, rate, and review programming guides via MCP
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP — built for coding agents.
Related MCP Servers
- AlicenseCqualityFmaintenanceEnables real-time search and retrieval of academic paper information from multiple sources, providing access to paper metadata, abstracts, and full-text content when available, with structured data responses for integration with AI models that support tool/function calling.3118AGPL 3.0
- AlicenseBqualityNot gradedmaintenanceEnables AI assistants to search and retrieve academic papers from arXiv through MCP tools, supporting search by various criteria, detailed paper information, category browsing, and PDF content extraction.41292-
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving academic papers from arXiv and DBLP databases with advanced filtering options. Supports downloading PDFs and provides detailed paper information including titles, authors, abstracts, and publication dates.783MIT
- FlicenseAqualityDmaintenanceEnables searching and retrieving CAIE past-paper questions with filters for subjects, years, and specific topics. It provides LLM-friendly responses including concise text previews and structured JSON data for single or multi-topic queries.71-
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/YOGESH-08/papserMCP_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server