projectwise_server

deckiokmal/projectwise_server

3.2

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.

Tools
3
Resources
0
Prompts
0

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_knowledgeMenambahkan seluruh file PDF di data/product_standard/ ke vector store sebagai product knowledge.
add_kak_tor_knowledgeMengonversi PDF KAK/TOR menjadi markdown lalu mengindeksnya ke RAG.
add_kak_tor_md_knowledgeMengindeks langsung berkas markdown KAK/TOR (tanpa konversi PDF).
build_instruction_contextMenggabungkan prompt template dengan konteks KAK/TOR terpilih untuk LLM reasoning.
rag_retrievalPencarian similarity + filter metadata di vectorstore dan mengembalikan teks yang relevan dengan citation.
reset_vectordbMenghapus seluruh isi vectorstore dan membuat tabel kosong baru.
update_chunk_metadataMemperbarui metadata chunk (mis. project, tahun).
get_vectorstore_statsStatistik dokumen, token, dan embeddings saat ini.
rebuild_all_embeddingsMenghitung ulang embeddings untuk semua chunk (setelah ganti model).
list_metadata_valuesMenampilkan nilai unik suatu field metadata.
retrieve_product_contextMengambil konteks produk tertentu via RAG (untuk proposal).
extract_document_textMengekstrak teks dari .pdf, .docx, atau .md ke markdown.
generate_proposal_docxMerender proposal Word .docx berdasarkan context & template.
build_summary_tender_payloadMenggabungkan prompt instruction (template .txt) dengan satu file Markdown KAK/TOR, lalu mengembalikan dict {"instruction":…, "context":…}.

Seluruh tools dideklarasikan dengan dekorator @mcp.tool di server.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 menggunakan ollama_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):

NamaDefaultKeterangan
OPENAI_API_KEY-Kunci API OpenAI.
OLLAMA_HOSThttp://localhost:11434Host LLM self‑hosted (opsional).
COLLECTION_NAMEprojectwise_knowledgeNama tabel vectorstore.
CHUNK_SIZE200 tokenPanjang chunk RAG.
RETRIEVER_SEARCH_K5Jumlah 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

  1. Fork repositori & buat feature branch.
  2. Jalankan pre-commit untuk formatting & linting.
  3. Buat pull request dengan deskripsi jelas.

Please collab !