Token导航 LogoToken导航TokenDH.com
Ewaycrm MCP Server logo
办公协作未说明官方级别未说明来源级核验

Ewaycrm MCP Server

MCP Server

eWay-CRM MCP Server是一个提供REST API的集成服务器,用于管理公司、联系人和交易,支持完整的CRUD操作和OAuth2认证。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
CRM集成JavaScriptAPI集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hnizdiljan

提供方

hnizdiljan

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

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

Nově implementováno:

  • OAuth2 autentizace - kompletní Authorization Code flow s token management 🆕
  • Autentizační middleware - všechny API endpointy jsou chráněny autentizací 🆕
  • Token storage v paměti - singleton OAuth2Service s automatickým refreshem 🆕

🚧 Není implementováno (mimo scope):

  • 🚧 Rate limiting - pro produkci by bylo vhodné
  • 🚧 Další entity - Projekty, Úkoly, atd. (lze implementovat stejným způsobem)
  • 🚧 Perzistentní token storage - tokeny jsou jen v RAM (doporučeno Redis/DB pro produkci)

🚀 Rychlé spuštění

1. Instalace

npm install

2. Konfigurace

OAuth2 autentizace (doporučeno) 🆕

# eWay-CRM API
EWAY_API_URL=https://trial.eway-crm.com/31994/API.svc
EWAY_USERNAME=api  # Nutné i pro OAuth2

# OAuth2 konfigurace
EWAY_CLIENT_ID=váš-client-id
EWAY_CLIENT_SECRET=váš-client-secret
EWAY_REDIRECT_URI=https://oauth.pstmn.io/v1/browser-callback

# 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

Legacy autentizace (fallback)

# eWay-CRM API konfigurace
EWAY_API_URL=https://trial.eway-crm.com/31994
EWAY_USERNAME=api
EWAY_PASSWORD=your-password-here  # Automaticky se hashuje na MD5
# nebo
# EWAY_PASSWORD_HASH=470AE7216203E23E1983EF1851E72947  # Již hashované heslo

# Zbytek stejný jako výše...

Automatická detekce:

  • Pokud jsou nastaveny EWAY_CLIENT_ID a EWAY_CLIENT_SECRET → použije OAuth2
  • Jinak pokud je nastaven EWAY_PASSWORD → použije legacy autentizaci
  • Aplikace automaticky detekuje správnou metodu

3. Build & Spuštění

npm run build
npm start

4. OAuth2 autorizace (pokud používáte OAuth2) 🆕

# Krok 1: Navštivte authorization endpoint v prohlížeči
http://localhost:3000/api/v1/oauth2/authorize

# Krok 2: Přihlaste se přes Azure AD
# Budete přesměrováni na eWay-CRM login

# Krok 3: Po úspěšné autorizaci budete přesměrováni zpět
# Tokeny se automaticky uloží do paměti serveru

# Krok 4: Nyní můžete volat API endpointy
curl http://localhost:3000/api/v1/companies

Poznámka: Tokeny jsou uloženy v paměti (RAM), po restartu serveru je potřeba znovu projít OAuth2 flow.

5. 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

OAuth2 autentizace 🆕

  • GET /api/v1/oauth2/authorize - Zahájit OAuth2 autorizaci
  • GET /api/v1/oauth2/callback - OAuth2 callback (automaticky voláno)
  • GET /api/v1/oauth2/status - Stav OAuth2 tokenu
  • POST /api/v1/oauth2/refresh - Manuální refresh tokenu
  • POST /api/v1/oauth2/logout - Odhlášení (vymazání tokenu)

Companies 🔒

  • GET /api/v1/companies - Seznam společností s pagination 🔒
  • GET /api/v1/companies/:id - Detail společnosti 🔒
  • POST /api/v1/companies - Vytvoření společnosti 🔒
  • PUT /api/v1/companies/:id - Aktualizace společnosti 🔒
  • DELETE /api/v1/companies/:id - Smazání společnosti 🔒

🔒 = Vyžaduje autentizaci (OAuth2 nebo Legacy)

Contacts 🔒

  • GET /api/v1/contacts - Seznam kontaktů 🔒
  • GET /api/v1/contacts/:id - Detail kontaktu 🔒
  • POST /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 pagination 🔒
  • GET /api/v1/deals/:id - Detail obchodu 🔒
  • POST /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 🔒

🔒 = Vyžaduje autentizaci | ⚠️ = Může být nestabilní na trial instanci

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
├── constants/
│   └── api.constants.ts        # API konstanty a konfigurace 🆕
├── 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 (refactored)
│   ├── contact.controller.ts   # Contact REST endpoints
│   └── deal.controller.ts      # Deal REST endpoints 🆕  
├── services/
│   ├── base.service.ts         # Základní service třída 🆕
│   ├── 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/
│   ├── auth.middleware.ts      # OAuth2/Legacy autentizač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í 🆕
└── utils/                       # Pomocné utility 🆕
    ├── error.utils.ts          # Error handling utility
    ├── validation.utils.ts     # Validační utility  
    └── cache.utils.ts          # Cache management

🔧 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

🆕 Nově přidané funkce po refactoringu:

  • Base Service - Abstraktní třída pro sdílení společné logiky
  • Konstanty - Centralizované API konstanty a konfigurace
  • Error Utils - Jednotné zpracování chyb
  • Validation Utils - Pomocné funkce pro validaci
  • Cache Utils - Jednoduchá in-memory cache

🐛 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í:

  1. MCP Server - REST API server běžící na portu 3000
  2. eWay-CRM integrace - funkční připojení k trial.eway-crm.com
  3. Companies CRUD - kompletní správa společností 🔒
  4. Contacts CREATE/READ - vytváření a čtení kontaktů 🔒
  5. Deals CRUD - kompletní správa obchodů/příležitostí 🔒
  6. OAuth2 autentizace - Authorization Code flow s token management 🆕
  7. Autentizační middleware - ochrana všech API endpointů 🆕
  8. TypeScript - type-safe kód s DTO modely
  9. Error handling - structured error responses
  10. Logging - comprehensive logging with Winston
  11. Validation - Zod schemas pro všechny endpointy

🔒 = Všechny CRUD endpointy jsou nyní chráněny autentizací!

🏆 Bonus funkce:

  • OAuth2 Authorization Code Flow - kompletní implementace 🆕
  • In-memory token storage - OAuth2Service singleton s auto-refresh 🆕
  • Autentizační middleware - requireAuth pro ochranu endpointů 🆕
  • Dual auth support - OAuth2 + Legacy fallback 🆕
  • 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
  • Refactoring - zlepšená struktura kódu, DRY principy
  • Error handling - jednotné zpracování chyb
  • Utility funkce - pomocné funkce pro validaci a cache

📈 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:

  1. Použít produkční eWay-CRM instanci s kompletnějšími daty
  2. Implementovat perzistentní token storage (Redis/Database místo RAM)
  3. Přidat rate limiting a monitoring
  4. Optimalizovat Contact UPDATE/DELETE functionality
  5. Zvážit implementaci session-based autentizace pro multi-user prostředí

🔐 Autentizace - Jak to funguje

OAuth2 Flow (doporučeno)

  1. Iniciace autorizace:
   GET /api/v1/oauth2/authorize
   → Server vygeneruje authorization URL
   → Přesměrování na Azure AD login
  1. Callback po přihlášení:
   GET /api/v1/oauth2/callback?code=...
   → Server vymění code za access_token a refresh_token
   → Tokeny se uloží do paměti (OAuth2Service)
   → Automatické přihlášení k eWay-CRM API
  1. Použití API:
   GET /api/v1/companies
   → requireAuth middleware zkontroluje token
   → Automatický refresh pokud expiruje
   → Request pokračuje k API

Token Management v paměti

OAuth2Service (singleton):

  • Tokeny uloženy v RAM (storedToken: StoredToken | null)
  • Automatický refresh před expirací (60s buffer)
  • Metody: getValidAccessToken(), hasValidToken(), clearToken()

⚠️ Poznámka: Po restartu serveru je potřeba znovu projít OAuth2 flow

Autentizační middleware

Všechny API endpointy (Companies, Contacts, Deals) jsou chráněny requireAuth middleware:

// Automaticky kontroluje:
1. Platnost OAuth2 tokenu (pro OAuth2)
2. Připojení k eWay-CRM
3. Automatické přihlášení pokud je potřeba
4. Friendly error messages (401) s instrukcemi

目录标签

目录标签

CRM集成JavaScriptAPI集成TypeScript本地部署RESTAPIOAuth2认证企业数据管理Node.js

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP