README.mdโข7.35 kB
# RS.ge Waybill MCP Server
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
**MCP (Model Context Protocol) server** that integrates the RS.ge Waybill SOAP API with Claude Desktop, enabling natural language queries for Georgian tax system waybills.
---
## ๐ Table of Contents
- [Quick Start](#quick-start)
- [Features](#features)
- [Documentation](#documentation)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage Examples](#usage-examples)
- [Troubleshooting](#troubleshooting)
- [Development](#development)
- [Project Structure](#project-structure)
---
## ๐ Quick Start
```bash
# 1. Install dependencies
npm install
# 2. Configure credentials
cp .env.example .env
# Edit .env with your RS.ge credentials
# 3. Build
npm run build
# 4. Configure Claude Desktop
# Windows: %APPDATA%\Claude\claude_desktop_config.json
# Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
# Add to config:
{
"mcpServers": {
"rs-waybill": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_PROJECT/dist/index.js"]
}
}
}
# 5. Restart Claude Desktop
# 6. Test in Claude
"Show me waybills from October 19-21, 2025"
```
---
## โจ Features
- โ
**Natural Language Interface** - Query waybills through Claude chat
- โ
**Date Range Queries** - Get waybills for specific periods
- โ
**TIN Lookup** - Get company names from Tax IDs
- โ
**Dictionaries** - Access error codes, akciz codes, waybill types
- โ
**Type-Safe** - Full TypeScript with strict typing
- โ
**Error Handling** - Automatic retries and detailed logging
- โ
**Production Ready** - Tested with real RS.ge API
---
## ๐ Documentation
Comprehensive guides in the `docs/` folder:
### For Users
- **[Setup & Deployment Guide](docs/SETUP_AND_DEPLOYMENT.md)** - Installation, configuration, troubleshooting
### For Developers
- **[Project Documentation](docs/PROJECT_DOCUMENTATION.md)** - Architecture, components, data flow
- **[RS.ge API Best Practices](docs/RS_GE_API_BEST_PRACTICES.md)** - Critical lessons learned and correct API patterns
- **[MCP Development Guide](docs/MCP_DEVELOPMENT_GUIDE.md)** - How to build MCP servers
---
## ๐ฆ Installation
### Prerequisites
- **Node.js** 18+ ([Download](https://nodejs.org/))
- **Claude Desktop** ([Download](https://claude.ai/download))
- **RS.ge Credentials** - Service user and password
### Setup Steps
1. **Get the Code**
```bash
git clone <repository-url> MCPWaybill
cd MCPWaybill
```
2. **Install Dependencies**
```bash
npm install
```
3. **Configure Environment**
```bash
cp .env.example .env
```
Edit `.env`:
```bash
RS_SERVICE_USER=4053098841:405309884
RS_SERVICE_PASSWORD=YourPasswordHere
```
4. **Build**
```bash
npm run build
```
5. **Configure Claude Desktop**
Edit `claude_desktop_config.json`:
```json
{
"mcpServers": {
"rs-waybill": {
"command": "node",
"args": [
"C:\absolute\path\to\MCPWaybill\dist\index.js"
]
}
}
}
```
**โ ๏ธ Important:** Use absolute paths!
6. **Restart Claude Desktop** (quit completely, then restart)
---
## โ๏ธ Configuration
### Environment Variables
Create `.env` file:
```bash
# Required
RS_SERVICE_USER=username:company_id
RS_SERVICE_PASSWORD=your_password
# Optional
LOG_LEVEL=info
```
### Config File
Edit `config/config.json` for advanced settings:
```json
{
"api": {
"timeout": 30000,
"retries": 3
},
"logging": {
"level": "info",
"console": true
}
}
```
---
## ๐ฌ Usage Examples
### Get Waybills
```
User: Show me waybills from October 19-21, 2025
Claude: I'll retrieve those waybills for you.
[Uses rs_get_waybills tool]
Found 61 waybills:
- October 19: 12 waybills
- October 20: 32 waybills
- October 21: 17 waybills
...
```
### Lookup Company
```
User: What company has TIN 405309884?
Claude: [Uses rs_lookup_tin tool]
Company: แจแแก แแแแกแแ
```
### Get Error Codes
```
User: Show me RS.ge error codes
Claude: [Uses rs_get_error_codes tool]
Error codes:
- -1072: Date range issue
- -101: Missing seller_un_id
...
```
---
## ๐ ๏ธ Troubleshooting
### Server Not Showing in Claude
1. Check absolute path in `claude_desktop_config.json`
2. Verify `dist/index.js` exists
3. Restart Claude Desktop completely
4. Check Developer Tools (View โ Toggle Developer Tools)
### Authentication Errors
1. Verify credentials in `.env`
2. Check format: `username:company_id`
3. Ensure no spaces: `RS_SERVICE_USER=value` (not `RS_SERVICE_USER = value`)
### Tools Not Working
1. Check logs: `tail -f logs/mcp-server.log`
2. Test with: "Show waybills from yesterday"
3. Verify date format: YYYY-MM-DD
See [Troubleshooting Guide](docs/SETUP_AND_DEPLOYMENT.md#troubleshooting) for detailed help.
---
## ๐จโ๐ป Development
### Scripts
```bash
npm run build # Compile TypeScript
npm run dev # Build and run
npm run watch # Auto-rebuild on changes
```
### Project Structure
```
src/
โโโ index.ts # MCP server entry point
โโโ config/ # Configuration management
โโโ services/ # RS.ge API client & XML parsing
โ โโโ soap-client.ts # SOAP API client
โ โโโ xml-parser.ts # XML handling
โโโ tools/ # MCP tools
โ โโโ get-waybills.ts
โ โโโ get-dictionaries.ts
โ โโโ lookup-tin.ts
โโโ types/ # TypeScript types
โโโ utils/ # Utilities
```
### Key Technologies
- **[@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk)** - MCP framework
- **Axios** - HTTP client
- **fast-xml-parser** - XML parsing
- **Winston** - Logging
- **Zod** - Validation
---
## ๐ฏ Critical Lessons Learned
This project solved complex RS.ge API integration challenges:
### Correct API Usage
| Aspect | โ Wrong | โ
Correct |
|--------|----------|-----------|
| Operation | `get_waybills_v1` | `get_waybills` |
| Date Param | `last_update_date_s/e` | `create_date_s/e` |
| Date Format | `YYYY-MM-DD` | `YYYY-MM-DDTHH:MM:SS` |
| End Date | As-is | Add +1 day |
| Seller ID | Not included | Extract from credentials |
| ID Field | `WAYBILL_ID` | `ID` |
### XML Parsing
- Filter out `@_` attributes before extracting data
- Handle both single and array responses
See [RS_GE_API_BEST_PRACTICES.md](docs/RS_GE_API_BEST_PRACTICES.md) for complete details.
---
## ๐ License
MIT License - See LICENSE file for details
---
## ๐ค Contributing
1. Fork the repository
2. Create feature branch
3. Make changes
4. Test thoroughly
5. Submit pull request
---
## ๐ Support
- **Documentation:** [docs/](docs/)
- **Issues:** GitHub Issues
- **Questions:** Check docs first
---
## ๐ Acknowledgments
- **Anthropic** - Claude Desktop and MCP SDK
- **RS.ge** - Waybill SOAP API
- **Community** - Testing and feedback
---
**Version:** 1.0.0
**Status:** Production Ready โ
**Last Updated:** January 2025
Built with โค๏ธ using TypeScript and MCP SDK