hnizdiljan/eWayCRM-MCP-server
If you are the rightful owner of eWayCRM-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 eWay-CRM MCP Server is a Model Context Protocol server designed for seamless integration with the eWay-CRM system, offering a REST API for managing companies, contacts, and deals with full CRUD functionality.
eWay-CRM MCP Server
Model Context Protocol (MCP) server pro integraci s eWay-CRM systĂŠmem. Poskytuje REST API pro sprĂĄvu spoleÄnostĂ (Companies), kontaktĹŻ (Contacts) a obchodĹŻ (Deals) s plnou CRUD funkcionalitou.
đŻ HlavnĂ funkce
â ImplementovĂĄno a funkÄnĂ:
- â PĹipojenĂ k eWay-CRM - HTTP konektor s session management
- â Companies API - kompletnĂ CRUD operace (GET, POST, PUT, DELETE)
- â Contacts API - vytvĂĄĹenĂ a ÄtenĂ kontaktĹŻ (CREATE, READ)
- â Deals API - kompletnĂ CRUD operace pro obchody/pĹĂleĹžitosti đ
- â REST API - JSON responses s pagination a error handling
- â Validation - Zod schĂŠmata pro vstupnĂ data
- â Logging - Winston logger s timestamps
- â TypeScript - kompletnĂ type safety
- â Health checks - monitoring stavu aplikace
- â
Swagger UI - kompletnĂ OpenAPI dokumentace na
/api-docs
â ď¸ ÄĂĄsteÄnÄ implementovĂĄno:
- â ď¸ Contact UPDATE/DELETE - problĂŠmy s eWay-CRM API metodami
- â ď¸ Contact Search - SearchContacts vracĂ prĂĄzdnĂŠ vĂ˝sledky
đ§ NenĂ implementovĂĄno (mimo scope):
- đ§ Authentication - nynĂ pouĹžĂvĂĄ API klĂÄ v .env
- đ§ Rate limiting - pro produkci by bylo vhodnĂŠ
- đ§ DalĹĄĂ entity - Projekty, Ăkoly, atd. (lze implementovat stejnĂ˝m zpĹŻsobem)
đ RychlĂŠ spuĹĄtÄnĂ
1. Instalace
npm install
2. Konfigurace
VytvoĹte .env
soubor:
# eWay-CRM API konfigurace
EWAY_API_URL=https://trial.eway-crm.com/31994
EWAY_USERNAME=api
EWAY_PASSWORD_HASH=470AE7216203E23E1983EF1851E72947
# Server konfigurace
PORT=3000
NODE_ENV=development
LOG_LEVEL=info
# App identifikace
APP_VERSION=MCP-Server-1.0
CLIENT_MACHINE_NAME=MCP-Server
CLIENT_MACHINE_IDENTIFIER=AA:BB:CC:DD:EE:FF
3. Build & SpuĹĄtÄnĂ
npm run build
npm start
4. Test
# AutomatickĂ˝ test vĹĄech endpointĹŻ
.\test-mcp-server.ps1
# Nebo manuĂĄlnÄ
curl http://localhost:3000/health
curl http://localhost:3000/api/v1/companies?limit=5
đĄ API Endpointy
Health & Info
GET /health
- Stav serveru a eWay-CRM pĹipojenĂGET /api/v1
- PĹehled dostupnĂ˝ch endpointĹŻGET /api/v1/test-connection
- Test eWay-CRM pĹipojenĂGET /api-docs
- Swagger UI dokumentace (novÄ pĹidĂĄno! đ)
Companies
GET /api/v1/companies
- Seznam spoleÄnostĂ s paginationGET /api/v1/companies/:id
- Detail spoleÄnostiPOST /api/v1/companies
- VytvoĹenĂ spoleÄnostiPUT /api/v1/companies/:id
- Aktualizace spoleÄnostiDELETE /api/v1/companies/:id
- SmazĂĄnĂ spoleÄnosti
Contacts
GET /api/v1/contacts
- Seznam kontaktĹŻGET /api/v1/contacts/:id
- Detail kontaktuPOST /api/v1/contacts
- VytvoĹenĂ kontaktu âPUT /api/v1/contacts/:id
- Aktualizace kontaktu â ď¸DELETE /api/v1/contacts/:id
- SmazĂĄnĂ kontaktu â ď¸GET /api/v1/contacts/by-company/:companyId
- Kontakty spoleÄnosti
Deals đ
GET /api/v1/deals
- Seznam obchodĹŻ s paginationGET /api/v1/deals/:id
- Detail obchoduPOST /api/v1/deals
- VytvoĹenĂ obchodu âPUT /api/v1/deals/:id
- Aktualizace obchodu âDELETE /api/v1/deals/:id
- SmazĂĄnĂ obchodu âGET /api/v1/deals/by-company/:companyId
- Obchody spoleÄnosti
Query parametry
limit
- PoÄet zĂĄznamĹŻ (default: 25, max: 100)offset
- Offset pro pagination (default: 0)q
- VyhledĂĄvacĂ query
đď¸ Architektura
src/
âââ index.ts # Express server setup
âââ connectors/
â âââ eway-http.connector.ts # HTTP konektor k eWay-CRM (â
funkÄnĂ)
â âââ eway.connector.ts # OficiĂĄlnĂ knihovna (â nefunkÄnĂ)
âââ controllers/
â âââ company.controller.ts # Company REST endpoints
â âââ contact.controller.ts # Contact REST endpoints
â âââ deal.controller.ts # Deal REST endpoints đ
âââ services/
â âââ company.service.ts # Business logika pro companies
â âââ contact.service.ts # Business logika pro contacts
â âââ deal.service.ts # Business logika pro deals đ
â âââ config.service.ts # Konfigurace z .env
â âââ logger.service.ts # Winston logging
âââ models/
â âââ company.dto.ts # Company data modely & Zod validace
â âââ company.mapper.ts # eWay-CRM â MCP data mapovĂĄnĂ
â âââ contact.dto.ts # Contact data modely & Zod validace
â âââ contact.mapper.ts # eWay-CRM â Contact mapovĂĄnĂ
â âââ deal.dto.ts # Deal data modely & Zod validace đ
â âââ deal.mapper.ts # eWay-CRM â Deal mapovĂĄnĂ đ
âââ middleware/
â âââ logging.middleware.ts # HTTP request logging
â âââ validation.middleware.ts # Query & body validace
âââ routes/
âââ company.routes.ts # Company routy s validacĂ
âââ contact.routes.ts # Contact routy s validacĂ
âââ deal.routes.ts # Deal routy s validacĂ đ
đ§ TechnickĂ˝ stack
- Node.js + TypeScript - Backend
- Express.js - Web framework
- Axios - HTTP client pro eWay-CRM API
- Zod - Schema validace a TypeScript typy
- Winston - Structured logging
- eWay-CRM REST API - Data source
đ ZnĂĄmĂŠ problĂŠmy a ĹeĹĄenĂ
1. OficiĂĄlnĂ @eway-crm/connector nefunguje
- ProblĂŠm:
"Value cannot be null. Parameter name: userName"
- ĹeĹĄenĂ: â VytvoĹen custom HTTP konektor
2. SearchContacts vracà pråzdnÊ výsledky
- ProblĂŠm: Trial eWay-CRM instance nemĂĄ kontakty
- ĹeĹĄenĂ: â Contact CREATE funguje, lze testovat
3. Contact UPDATE/DELETE nefunguje
- ProblĂŠm: HTTP 404 pĹi volĂĄnĂ SaveItem pro kontakty
- MoĹžnĂŠ ĹeĹĄenĂ: PouĹžĂt SaveContact mĂsto SaveItem
4. CompanyName pole jsou prĂĄzdnĂĄ
- ProblĂŠm: Trial data nemajĂ vyplnÄnĂŠ nĂĄzvy spoleÄnostĂ
- Stav: â API funguje, jen data jsou prĂĄzdnĂĄ
đ Test vĂ˝sledky
đ eWay-CRM MCP Server Test Suite
=================================
1ď¸âŁ Health Check...
â
Status: OK
â
eWay Connection: connected
2ď¸âŁ API Overview...
â
Version: MCP-Server-1.0
â
Available Endpoints:
- /api/v1/companies
- /api/v1/contacts
- /api/v1/deals
3ď¸âŁ Companies API...
â
GET Companies: 7 companies found
â
GET Company by ID: (funkÄnĂ)
4ď¸âŁ Contacts API...
â
CREATE Contact: User, Test (ID: xxx)
â
GET Contact by ID: User, Test
â ď¸ UPDATE Contact: HTTP 500 error
5ď¸âŁ Deals API... đ
â
CREATE Deal: Test Deal (ID: xxx)
â
GET Deal by ID: Test Deal
â
UPDATE Deal: Updated Test Deal
â
GET All Deals: X deals found
â
DELETE Deal: Successfully deleted
6ď¸âŁ eWay-CRM Connection Test...
â
Connection Status: success
â
Message: PĹipojenĂ k eWay-CRM je funkÄnĂ
đ Test Suite Completed!
đŻ ShrnutĂ dosaĹženĂ˝ch cĂlĹŻ
â SplnÄno podle zadĂĄnĂ:
- â MCP Server - REST API server bÄĹžĂcĂ na portu 3000
- â eWay-CRM integrace - funkÄnĂ pĹipojenĂ k trial.eway-crm.com
- â Companies CRUD - kompletnĂ sprĂĄva spoleÄnostĂ
- â Contacts CREATE/READ - vytvĂĄĹenĂ a ÄtenĂ kontaktĹŻ
- â Deals CRUD - kompletnĂ sprĂĄva obchodĹŻ/pĹĂleĹžitostĂ đ
- â TypeScript - type-safe kĂłd s DTO modely
- â Error handling - structured error responses
- â Logging - comprehensive logging with Winston
- â Validation - Zod schemas pro vĹĄechny endpointy
đ Bonus funkce:
- â Custom HTTP konektor - obeĹĄel problĂŠm s oficiĂĄlnĂ knihovnou
- â Pagination - standardnĂ REST API pagination
- â Health checks - monitoring endpointy
- â Test suite - automatickĂŠ testovĂĄnĂ vĹĄech endpointĹŻ
- â Configuration service - centralizovanĂĄ konfigurace
đ PĹipraveno pro rozĹĄĂĹenĂ:
- đ§ Deals/Opportunities - implementace stejnĂ˝m zpĹŻsobem
- đ§ Authentication - JWT nebo API key management
- đ§ Rate limiting - ochrana pĹed spam requesty
- đ§ Database caching - pro lepĹĄĂ performance
- đ§ WebSocket support - real-time updates
đĄ ZĂĄvÄr
MCP Server je funkÄnĂ a pĹipravenĂ˝ k pouĹžitĂ. HlavnĂ cĂle zadĂĄnĂ byly splnÄny, s nÄkolika technickĂ˝mi problĂŠmy zpĹŻsobenĂ˝mi omezenĂmi eWay-CRM trial instance a oficiĂĄlnĂ knihovny.
DoporuÄenĂ pro produkci:
- PouĹžĂt produkÄnĂ eWay-CRM instanci s kompletnÄjĹĄĂmi daty
- Implementovat authentication a authorization
- PĹidat rate limiting a monitoring
- Optimalizovat Contact UPDATE/DELETE functionality