celikhakan41/quotation-mcp-server
If you are the rightful owner of quotation-mcp-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.
The Quotation MCP Server is a backend application designed to simulate quotation generation, pricing, and discount suggestions for B2B sales, utilizing the Model Context Protocol (MCP).
Quotation MCP Server
A modular, clean-coded backend application that implements the Model Context Protocol (MCP) to simulate quotation generation, pricing, and discount suggestion for a B2B sales use case.
This project is ideal for developers exploring MCP tooling, handler-based architecture, or looking to integrate AI/LLM-driven tool invocation in an enterprise context.
⨠Features
- āļø Create new quotations with dynamic pricing rules
- š Retrieve quotation details by ID (UUID)
- šø Calculate discounted price based on product quantity
- š Suggest promotional discounts per product
- āļø Tool Discovery endpoint for MCP clients like Claude
- š PostgreSQL-backed persistent storage
- ⨠Clean architecture with handler abstraction (Open/Closed Principle)
- š Extensive unit & edge-case testing using JUnit + Mockito
ā” Tech Stack
- Java 17
- Spring Boot 3.x
- PostgreSQL 15+
- MCP (Model Context Protocol)
- JPA (Hibernate)
- JUnit 5, Mockito
- IntelliJ IDEA, Postman, DBeaver
š Tooling (MCP)
Tool Discovery Endpoint
GET /mcp/tools
Returns JSON describing all supported MCP tools:
[
{
"name": "createQuotation",
"description": "Creates a new proposal.",
"params": {
"customerName": "Customer name",
"currency": "Currency",
"items": "Product and quantity list"
}
}
]
š Getting Started
1. Clone & Build
git clone https://github.com/your-username/quotation-mcp-server.git
cd quotation-mcp-server
./mvnw clean install
2. Configure Database
Create PostgreSQL database:
createdb -U postgres quotationdb
Update src/main/resources/application.properties
:
spring.datasource.url=jdbc:postgresql://localhost:5432/quotationdb
spring.datasource.username=postgres
spring.datasource.password=yourpassword
3. Run Locally
./mvnw spring-boot:run
4. Test via Postman
POST http://localhost:8080/mcp
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "createQuotation",
"params": {
"customerName": "ABC Ltd.",
"currency": "TRY",
"items": [
{"product": "Premium Package", "quantity": 2},
{"product": "Extra Module", "quantity": 3}
]
},
"id": "1"
}
š Code Structure
.
āāā controller/ # MCPController, ToolDiscovery
āāā handler/ # Clean handlers for each MCP tool
āāā dto/ # All Request/Response models
āāā model/ # JPA Entities
āāā repository/ # Spring Data Repositories
āāā service/ # Business logic layer
āāā test/ # Unit tests per handler/service
š License
MIT License
š Contributors
- M. Hakan Celik ā LinkedIn Profile
š Coming Soon
- OAuth2 / JWT authentication
- Deployment via Docker
- Tool Registry publishing (Claude, etc.)
- Sample frontend client for testing (React)
- OpenAPI 3.0 YAML documentation
š« Disclaimer
This project is a learning implementation of MCP and does not simulate real-time financial pricing logic or actual airline quotation systems.