Academic Proposal MCP Server
🎓 Academic Proposal MCP Server
Academic Proposal MCP Server is a self-contained, independent server built on the Model Context Protocol (MCP). It is designed for students, researchers, and academic institutions to automate the creation, structuring, iterative versioning, and methodology validation of formal academic thesis and research proposals.
🌟 Key Features
Dual Document Support (Proposal
.docx& Pra-Proposal.odt):Thesis Proposal (3 Chapters DOCX): Full academic proposal adhering to official institutional formatting (
generate_proposal_from_topic,generate_academic_proposal).Pre-Proposal Form (SA2-01A ODT): Standard institutional pre-proposal document (
generate_praproposal_from_topic,generate_academic_praproposal).
Strict Research Design Canvas Alignment:
Strictly enforces 1 Single Measurable Problem Question (
CLB04-01&CLB04-02), eliminating open-ended or descriptive phrasing.Automatically defines explicit Independent ($X$) and Dependent ($Y$) variables, aligns linear objectives, and verifies actionable stakeholder benefits.
Mandatory Personal Data Re-Confirmation Workflow:
Ensures student and supervisor details (Nama Mahasiswa, NIM, Departemen/Jurusan, Program Studi, Keminatan, Bidang Skripsi, Dosen Pembimbing, NIP, Lokasi) are explicitly verified and confirmed before and after document generation.
CSV Literature Matrix Ingestion:
Ingests literature review matrices or benchmark datasets directly from CSV files (
parse_literature_csv_data).Automatically builds comparison matrices and Harvard/IEEE bibliographies.
Multi-MCP Research Coordination:
Seamlessly interoperates with external research MCPs such as
paper-search(search_arxiv,search_semantic,search_google_scholar) andgo-docs.Derives targeted academic queries via
plan_proposal_researchand includes registered prompt workflows (auto_praproposal_workflow,auto_proposal_workflow).
Iterative Version Tracking & Markdown Exporting:
Facilitates document versioning (
v1.0$\rightarrow$v1.1$\rightarrow$v2.0) with automated changelog recording inversion_history.json.Extracts DOCX proposals into clean Markdown for LLM analysis.
🛠️ Available MCP Tools
Tool | Description | Key Parameters |
| One-shot generator for academic pre-proposal form ( |
|
| Assembles and generates a complete academic pre-proposal document ( |
|
| Generates a comprehensive academic audit checklist report in Markdown format based on standard evaluation rubrics. |
|
| Validates research proposal rigor against standard academic research design principles. |
|
| Retrieves the complete rubric and checklist for academic research design criteria. | (none) |
| Assembles and generates a complete, publication-grade academic proposal DOCX file. |
|
| One-shot proposal generator combining research topic, CSV literature data, and paper-search results. |
|
| Analyzes a topic to derive variables (X & Y), single research question, and search queries for |
|
| Parses a literature review or benchmark CSV file from workspace into DOCX comparison table and references. |
|
| Analyzes the structural health of a proposal document (paragraph count, table count, sections, words, heading tree). |
|
| Duplicates active thesis proposal (.docx) to an updated version and records changelog entries in |
|
| Duplicates active pre-proposal (.odt) to an updated version and records changelog entries in |
|
| Converts any DOCX proposal in the workspace into clean, structured Markdown. |
|
🚀 Installation & Setup
Option A: Using Docker (Recommended)
1. Clone the Repository & Build the Image
git clone https://github.com/ranoes/academic-mcp-proposal.git
cd academic-mcp-proposal
docker build -t academic-proposal-mcp:latest .2. Configure Your MCP Client
Add the following entry to your MCP configuration file (e.g., mcp_config.json in Antigravity, or claude_desktop_config.json in Claude Desktop):
{
"mcpServers": {
"academic-proposal-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
".:/workspace",
"academic-proposal-mcp:latest"
]
}
}
}Note:
.:/workspaceotomatis memetakan direktori proyek yang sedang aktif dibuka di IDE ke dalam/workspacecontainer Docker tanpa perlu menuliskan path absolut secara manual.
Option B: Running with Python / UV (Without Docker)
If you prefer running directly in a local Python environment:
# Clone the repository
git clone https://github.com/ranoes/academic-mcp-proposal.git
cd academic-mcp-proposal
# Install dependencies and package
pip install -e .
python server.pyConfiguration in mcp_config.json for Python:
{
"mcpServers": {
"academic-proposal-mcp": {
"command": "python",
"args": ["${workspaceFolder}/server.py"],
"env": {
"WORKSPACE_DIR": "${workspaceFolder}"
}
}
}
}📋 Sample Tool Invocation (generate_academic_proposal)
Here is an example payload using fictional student and institutional data:
{
"metadata": {
"judul": "OPTIMIZING DISTRIBUTED SENSOR NETWORK LIFETIME USING REINFORCEMENT LEARNING ROUTING ALGORITHMS",
"nama_mahasiswa": "Alex Mercer",
"nim": "STD-2026-94821",
"program_studi": "Department of Computer Science & Informatics",
"departemen": "School of Computing",
"fakultas": "Faculty of Engineering and Technology",
"universitas": "Metropolis Institute of Technology",
"kota": "Metropolis",
"tahun": "2026"
},
"bab1_data": {
"latar_belakang": [
"The rapid proliferation of Internet of Things (IoT) devices in environmental monitoring has introduced critical challenges regarding power efficiency and network longevity in wireless sensor networks (WSNs).",
"Conventional routing protocols, such as static shortest-path routing, frequently exhaust intermediate relay nodes prematurely, resulting in network fragmentation and degraded data reliability.",
"To overcome these operational constraints, this research proposes an adaptive reinforcement learning routing mechanism that dynamically balances energy expenditure across network nodes while sustaining throughput."
],
"rumusan_masalah_pengantar": "Based on the operational challenges and efficiency gaps identified above, the primary research question is formulated as follows:",
"rumusan_masalah": "To what extent does the proposed reinforcement learning routing algorithm improve overall network lifetime and packet delivery ratio compared to conventional static routing protocols in large-scale wireless sensor networks?",
"rumusan_masalah_penjelasan": "This single research question evaluates the causal relationship between the independent variable (reinforcement learning routing mechanism) and key dependent performance indicators (network operational lifetime and packet delivery ratio).",
"tujuan_umum": "evaluate and quantify the network longevity and transmission efficiency improvements achieved by the reinforcement learning routing protocol compared to baseline routing approaches.",
"tujuan_khusus": [
"Analyze the energy consumption profiles and bottleneck factors in baseline sensor routing workflows.",
"Design and model the adaptive reinforcement learning routing algorithm.",
"Develop a proof-of-concept simulation environment for multi-hop sensor networks.",
"Evaluate network lifetime, packet delivery ratio, and convergence time through rigorous benchmark simulations."
],
"manfaat": [
"For Sensor Network Practitioners: Provides an operational blueprint for resilient and energy-balanced wireless sensor deployments.",
"For Academic Researchers: Contributes empirical evidence and benchmark datasets regarding reinforcement learning applications in low-power communication systems."
],
"batasan_masalah": [
"Evaluation is conducted within a simulated network environment consisting of 100 to 500 heterogeneous nodes.",
"Hardware-level physical layer modifications are outside the scope of this investigation.",
"Channel conditions are modeled based on standard log-distance path loss propagation."
],
"sistematika_pembahasan": [
"CHAPTER 1 INTRODUCTION: Details background context, research problem formulation, objectives, practical and theoretical benefits, scope limitations, and outline.",
"CHAPTER 2 LITERATURE REVIEW: Synthesizes foundational networking concepts, reinforcement learning formulations, prior benchmark studies, and identified research gaps.",
"CHAPTER 3 METHODOLOGY: Defines research design, experimental testbed parameters, evaluation metrics, and timeline."
]
},
"bab2_subbab": [
{
"title": "Wireless Sensor Network Routing Protocols",
"level": 2,
"paragraphs": [
"Routing protocols in sensor networks must strike a delicate balance between routing overhead and battery conservation. Standard multi-hop schemes often incur uneven drain rates on central clusters."
]
},
{
"title": "Reinforcement Learning in Dynamic Networks",
"level": 2,
"paragraphs": [
"Q-learning and policy-gradient algorithms enable decentralized agents to discover optimal forwarding policies through continuous environmental reward feedback."
]
}
],
"bab3_subbab": [
{
"title": "Simulation Design and Experimental Setup",
"level": 2,
"paragraphs": [
"The experimental framework is implemented using an event-driven network simulator modeling randomized node deployments and Poisson packet arrival processes."
]
}
],
"daftar_referensi": [
"Akyildiz, I.F., Su, W., Sankarasubramaniam, Y. & Cayirci, E., 2002. Wireless sensor networks: a survey. Computer Networks, 38(4), pp.393–422.",
"Sutton, R.S. & Barto, A.G., 2018. Reinforcement learning: An introduction. 2nd ed. Cambridge: MIT Press."
],
"output_filename": "Proposal Skripsi v1.0.docx"
}⚡ One-Shot Proposal Generation (generate_proposal_from_topic)
Instead of writing out every chapter by hand, you can generate a complete proposal by prompting with just a Topic, an optional literature CSV file, or retrieved research papers:
{
"topic": "Optimizing Distributed Sensor Network Lifetime using Reinforcement Learning Routing Algorithms",
"variabel_x": "Reinforcement Learning Adaptive Q-Routing",
"variabel_y": "Network Operational Longevity and Packet Delivery Ratio",
"csv_filename": "literature.csv",
"output_filename": "Proposal Skripsi v1.0.docx"
}The server will automatically:
Formulate a single, measurable research question: "Sejauh mana implementasi [X] mampu meningkatkan [Y] secara terukur..."
Parse the CSV file and generate the literature review comparison matrix (
tabel_tinjauan_pustaka) and Harvard citations (daftar_referensi).Generate Chapters 1, 2, and 3 formatted according to academic guidelines.
Run Research Design Canvas v2.0 validation checks.
Save the final
.docxdirectly into your mounted workspace.
📝 Sample Tool Invocation (generate_praproposal_from_topic)
Generate an official pre-proposal form document (.odt, format SA2-01A) directly from a topic prompt:
{
"topic": "Optimasi Deteksi Anomali Jaringan IoT Menggunakan Federated Learning",
"variabel_x": "Algoritma Federated Learning Terdistribusi",
"variabel_y": "Akurasi Deteksi dan Efisiensi Komunikasi Jaringan IoT",
"student_metadata": {
"nama_mahasiswa": "Alex Mercer",
"nim": "225150200111000",
"jurusan": "Teknik Informatika",
"program_studi": "Teknik Informatika",
"keminatan": "Komputasi Cerdas",
"bidang_skripsi": "Artificial Intelligence & Data Science",
"jenis_penelitian": "Implementatif",
"tipe_penelitian": "Pengembangan Sistem & Komparasi Algoritma",
"asal_judul": "Usulan Sendiri",
"lokasi": "Malang",
"nama_pembimbing": "Dr. Mahrus Ali, S.Kom., M.Kom.",
"nip_pembimbing": "-"
},
"output_filename": "Praproposal_Skripsi_SA2-01A.odt"
}📊 CSV Literature Format
You can place a literature.csv in your workspace containing prior literature or benchmark studies. The columns are automatically detected:
Author,Year,Title,Method,Dataset,Findings,Gap
Zhang et al.,2023,Q-Learning for WSN Clustering,Q-Learning,WSN-Sim-100,Increased lifetime by 18%,High computational overhead on edge nodes
Al-Kandari et al.,2022,Energy-aware Routing Protocols,Heuristic Path Selection,Real-world Sensor Grid,Reliable packet delivery,Static pathing causes early node deathColumns detected:
Author / Penulis: Citation author name(s).
Year / Tahun: Publication year.
Title / Judul: Paper title.
Method / Metode / Algoritma: Independent variable / technique ($X$).
Dataset / Benchmark: Test scenario or dataset used.
Results / Temuan / Hasil: Key quantitative findings ($Y$).
Gap / Limitation / Kelemahan: Identified research gap.
🤖 Multi-MCP Research Workflow (with paper-search)
If you have paper-search-mcp installed alongside academic-proposal-mcp:
Verify & Confirm Data: Ensure student and supervisor personal information (Nama, NIM, Departemen, Program Studi, Dosen Pembimbing, NIP, Lokasi) is collected.
Plan Queries: Call
plan_proposal_research(topic="...")to derive search queries optimized for ArXiv, Google Scholar, and Semantic Scholar.Retrieve Papers: Run
paper-searchtools (search_arxiv,search_semantic, etc.).Assemble Document: Pass search results into
generate_praproposal_from_topic(...)for Pre-Proposal (.odt) orgenerate_proposal_from_topic(...)for Thesis Proposal (.docx).Prompt Automation: Use the built-in MCP prompts (
auto_praproposal_workfloworauto_proposal_workflow) in Antigravity or your AI client to execute the entire research and assembly workflow automatically.
📄 License & Contributing
Distributed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for more details. Contributions, issue reports, and pull requests to expand academic formatting capabilities or validation rules are warmly welcomed.