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 henry@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.tool
diserver.py
dan 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-commit
untuk formatting & linting. - Buat pull request dengan deskripsi jelas.
Please collab !