deckiokmal/projectwise_server
If you are the rightful owner of projectwise_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.
ProjectWise MCP Server is a Model-Context Protocol (MCP) implementation using Server-Sent Events (SSE) to automate pre-sales and project delivery processes in enterprise environments.
ProjectWise – MCP Server
ProjectWise MCP Server adalah implementasi Model‑Context Protocol (MCP) berbasis Server‑Sent Events (SSE) yang berfokus pada otomasi proses pre‑sales & project delivery di lingkungan enterprise. Berkas ini menjelaskan hanya komponen mcp_server/.
Bahasa dokumen: Indonesia
Fitur Utama
| Tool (nama MCP) | Deskripsi Singkat |
|---|---|
add_product_knowledge | Menambahkan seluruh file PDF di data/product_standard/ ke vector store sebagai product knowledge. |
add_kak_tor_knowledge | Mengonversi PDF KAK/TOR menjadi markdown lalu mengindeksnya ke RAG. |
add_kak_tor_md_knowledge | Mengindeks langsung berkas markdown KAK/TOR (tanpa konversi PDF). |
build_instruction_context | Menggabungkan prompt template dengan konteks KAK/TOR terpilih untuk LLM reasoning. |
rag_retrieval | Pencarian similarity + filter metadata di vectorstore dan mengembalikan teks yang relevan dengan citation. |
reset_vectordb | Menghapus seluruh isi vectorstore dan membuat tabel kosong baru. |
update_chunk_metadata | Memperbarui metadata chunk (mis. project, tahun). |
get_vectorstore_stats | Statistik dokumen, token, dan embeddings saat ini. |
rebuild_all_embeddings | Menghitung ulang embeddings untuk semua chunk (setelah ganti model). |
list_metadata_values | Menampilkan nilai unik suatu field metadata. |
retrieve_product_context | Mengambil konteks produk tertentu via RAG (untuk proposal). |
extract_document_text | Mengekstrak teks dari .pdf, .docx, atau .md ke markdown. |
generate_proposal_docx | Merender proposal Word .docx berdasarkan context & template. |
build_summary_tender_payload | Menggabungkan prompt instruction (template .txt) dengan satu file Markdown KAK/TOR, lalu mengembalikan dict {"instruction":…, "context":…}. |
Seluruh tools dideklarasikan dengan dekorator
@mcp.tooldiserver.pydan secara otomatis diekspor melalui SSE endpoint.
Arsitektur Singkat
flowchart TD
client[Client - CLI/UI ]
server[FastMCP Server]
tools[Tools Layer<br/> - Fungsi MCP: RAG, DocX, dsb.]
vector[RAG Vector Store LanceDB]
templates[Template Storage - Docx, Markdown ]
client -- "HTTP Post" --> server
server -- "SSE Streaming JSON" --> client
server --> tools
tools --> vector
tools --> templates
Persyaratan
-
Python 3.11+
-
Paket Python (lihat
pyproject.toml):docling,langchain,lancedb,openai, dll.- Lihat dependency lengkap di bagian Dependencies.
-
LanceDB (embedded, otomatis dibuat).
-
Kunci API OpenAI
OPENAI_API_KEY(atau endpoint lain bila menggunakanollama_host).
Instalasi Cepat
git clone https://github.com/deckiokmal/MCP_SERVER-Agentic-RAG.git
cd projectwise_server
# buat virtualenv & aktifkan
uv venv
source .venv/bin/activate # Windows: .venv\\Scripts\\activate
# instal dependensi
uv run
# salin contoh .env & edit
cp .env.example .env
nano .env # isi OPENAI_API_KEY, OLLAMA_HOST, dsb.
Konfigurasi (settings.py)
Variabel utama (dibaca via Pydantic Settings):
| Nama | Default | Keterangan |
|---|---|---|
OPENAI_API_KEY | - | Kunci API OpenAI. |
OLLAMA_HOST | http://localhost:11434 | Host LLM self‑hosted (opsional). |
COLLECTION_NAME | projectwise_knowledge | Nama tabel vectorstore. |
CHUNK_SIZE | 200 token | Panjang chunk RAG. |
RETRIEVER_SEARCH_K | 5 | Jumlah top-k hasil retrieval. |
Lihat file mcp_server/settings.py untuk daftar lengkap.
Menjalankan Server
python main.py
# atau
python -m mcp_server.server
Secara bawaan server berjalan di http://localhost:5000 dengan SSE transport.
Setiap tool dapat dipanggil via protokol MCP; contoh payload:
{
"tool": "rag_retrieval",
"args": {
"query": "ringkasan solusi DWDM",
"metadata_filter": { "project": "DWDM-2025" }
}
}
Struktur Direktori (Server)
mcp_server/
├── logs/
├── data/
│ ├── kak_tor/ # PDF sumber KAK/TOR
│ ├── kak_tor_md/ # Markdown hasil konversi
│ ├── product_standard/ # PDF atau MD knowledge produk
│ ├── templates/ # .docx template proposal
│ └── proposal_generated/ # Output proposal
├── prompts/ # Prompt template untuk LLM
├── tools/
│ ├── rag_tools.py
│ └── docx_tools.py
├── utils/
│ ├── rag_pipeline.py
│ └── docx_generator.py
├── settings.py
└── server.py
Dependencies
docling>=2.40.0
docxtpl>=0.20.0
lancedb>=0.24.0
langchain>=0.3.26
langchain-community>=0.3.27
langchain-openai>=0.3.27
mcp[cli]>=1.10.1
openai>=1.93.0
pyarrow>=14.0.0
Lisensi
Proyek ini menggunakan lisensi MIT. Lihat berkas LICENSE untuk detail.
Kontribusi
- Fork repositori & buat feature branch.
- Jalankan
pre-commituntuk formatting & linting. - Buat pull request dengan deskripsi jelas.
Please collab !