🚀 EspoCRM MCP Server
EspoCRM MCP Serverは、EspoCRMとのシームレスな統合を実現する包括的なModel Context Protocol (MCP)サーバーです。このサーバーを使用することで、AIアシスタントは標準化されたインターフェースを通じてEspoCRMインスタンスと対話でき、Contacts、Accounts、Opportunities、Meetings、Users、Tasks、Leadsの完全なCRUD操作と高度なシステム管理機能を提供します。
🤖 新機能: AIチャットボット統合 - 現在、EspoCRMに直接埋め込まれる完全なチャットボットインターフェースが追加され、47のMCPツールすべてに自然言語でアクセスできるようになりました!
🚀 クイックスタート
前提条件
- Node.js 18+
- npmまたはyarn
- APIアクセスが有効なEspoCRMインスタンス
- 有効なAPI資格情報
インストール
- リポジトリをクローンする
git clone https://github.com/zaphod-black/EspoMCP.git
cd EspoMCP
- 依存関係をインストールする
npm install
- 環境を設定する
cp .env.example .env
- プロジェクトをビルドする
npm run build
- 接続をテストする
npm run test:config
✨ 主な機能
コア機能
- 完全なCRUD操作 - エンティティの作成、読み取り、更新、削除
- 複数エンティティのサポート - Contacts、Accounts、Opportunities、Meetings、Users、Tasks、Leads
- 高度な検索とフィルタリング - 日付範囲、ページネーション、複雑なフィルタを使用した柔軟な検索
- タスク管理 - 親子関係とユーザー割り当てを含む完全なタスクライフサイクル
- リード管理 - 作成からコンバージョンまでの完全なリードパイプライン
- 会議管理 - 参加者管理を含む完全なカレンダー統合
- ユーザー管理 - 包括的なユーザー検索とルックアップ機能
- リアルタイム検証 - すべての操作に対するZodベースのスキーマ検証
- 包括的なロギング - 複数のレベルを持つWinstonベースのロギング
認証とセキュリティ
- 複数の認証方法 - APIキーとHMAC認証のサポート
- 安全な設定 - 環境ベースの設定管理
- レート制限 - API保護のための組み込みレート制限
- エラーハンドリング - 詳細なロギングを伴う堅牢なエラーハンドリング
カレンダー統合
- 会議操作 - 会議の作成、検索、更新、管理
- 参加者管理 - 会議にコンタクトとユーザーをリンクする
- 日付/時間フィルタリング - 高度な日付範囲検索機能
- Googleカレンダー同期互換性 - カレンダー同期ワークフロー用に設計されています
AIチャットボット統合 🤖
- フローティングチャットウィジェット - 美しく、邪魔にならないチャットバブルインターフェース
- 自然言語処理 - 平易な英語でチャットしてCRM操作を実行する
- リアルタイム通信 - WebSocketベースの即時応答
- 47のMCPツールへのアクセス - チャットを通じて完全なCRM機能を利用する
- EspoCRMへの埋め込み - EspoCRMインターフェースに直接統合されます
- モバイル対応 - すべてのデバイスでシームレスに動作します
開発者体験
- TypeScript - 厳格な型付けを持つ完全なTypeScriptサポート
- Dockerサポート - コンテナ化されたデプロイメントが可能
- 包括的なテスト - 複数のテストスクリプトと検証ツール
- MCP 2024/2025準拠 - 最新のMCP仕様をサポート
💻 使用例
基本的な使用法
await client.callTool('create_task', {
name: 'Follow up on lead discussion',
assignedUserId: 'user123',
parentType: 'Lead',
parentId: 'lead456',
priority: 'High',
status: 'Not Started',
dateEnd: '2025-08-15',
description: 'Contact lead about pricing questions'
});
await client.callTool('search_tasks', {
assignedUserId: 'user123',
status: 'Started',
priority: 'High',
dueDateFrom: '2025-08-01',
dueDateTo: '2025-08-31'
});
await client.callTool('assign_task', {
taskId: 'task789',
assignedUserId: 'user456'
});
高度な使用法
await client.callTool('create_lead', {
firstName: 'John',
lastName: 'Smith',
emailAddress: 'john.smith@example.com',
accountName: 'Smith Industries',
source: 'Web Site',
status: 'New',
assignedUserId: 'user123',
description: 'Interested in enterprise solution'
});
await client.callTool('search_leads', {
status: 'In Process',
source: 'Web Site',
assignedUserName: 'Sales Rep',
createdFrom: '2025-08-01',
limit: 20
});
await client.callTool('convert_lead', {
leadId: 'lead123',
createContact: true,
createAccount: true,
createOpportunity: true,
opportunityName: 'Smith Industries - Enterprise Deal',
opportunityAmount: 50000
});
📚 ドキュメント
利用可能なツール
MCPサーバーは、EspoCRM統合のための47の包括的なツールを提供します。
コンタクト管理
create_contact - すべてのフィールドをサポートする新しいコンタクトを作成する
search_contacts - 日付範囲フィルタリングを使用してコンタクトを検索およびフィルタリングする
get_contact - IDで特定のコンタクトを取得する
アカウント管理
create_account - 新しい会社/組織アカウントを作成する
search_accounts - 日付範囲フィルタリングを使用してアカウントを検索およびフィルタリングする
商談管理
create_opportunity - 新しい商談を作成する
search_opportunities - 金額範囲を含む高度なフィルタを使用して商談を検索する
会議管理
create_meeting - 参加者管理とカレンダー統合を含む会議を作成する
search_meetings - 日付範囲、ステータス、場所フィルタを使用して会議を検索する
get_meeting - 参加者を含む詳細な会議情報を取得する
update_meeting - すべての会議フィールドをサポートする既存の会議を更新する
ユーザー管理
search_users - ユーザー名、メールアドレス、名前、タイプ、ステータスでユーザーを検索する
get_user_by_email - カレンダー同期操作のための直接的なメールベースのユーザールックアップ
タスク管理
create_task - 親エンティティ(リード、アカウント、コンタクト、商談)をサポートするタスクを作成する
search_tasks - 担当者、ステータス、優先度、親エンティティ、期限でタスクを検索する
get_task - 関係を含む詳細なタスク情報を取得する
update_task - ステータス、優先度、期限を含むタスクのプロパティを更新する
assign_task - 特定のユーザーにタスクを割り当てるまたは再割り当てる
リード管理
create_lead - すべてのフィールドをサポートし、検証を行う新しいリードを作成する
search_leads - ステータス、ソース、担当者、日付範囲でリードを検索する
update_lead - リードのプロパティとステータスを更新する
convert_lead - リードをコンタクト、アカウント、および/または商談に変換する
assign_lead - 特定のユーザーにリードを割り当てるまたは再割り当てる
チームとロール管理
add_user_to_team - オプションの役職割り当てを含むユーザーをチームに追加する
remove_user_from_team - ユーザーをチームから削除する
assign_role_to_user - ユーザーにロールを割り当てて権限を管理する
get_user_teams - ユーザーが所属するすべてのチームを取得する
get_team_members - 特定のチームのすべてのメンバーを取得する
search_teams - 名前と説明でチームを検索する
get_user_permissions - ロールに基づくユーザーの有効な権限を取得する
汎用エンティティ操作
create_entity - 任意のエンティティタイプ(カスタムエンティティを含む)のレコードを作成する
search_entity - 柔軟なフィルタとフィールド選択を使用して任意のエンティティタイプを検索する
update_entity - IDで任意のエンティティレコードを柔軟なデータで更新する
delete_entity - IDで任意のエンティティレコードを削除する
get_entity - オプションのフィールド選択を含む特定のエンティティレコードを取得する
関係管理
link_entities - 任意の2つのエンティティレコード間に関係を作成する
unlink_entities - エンティティレコード間の関係を削除する
get_entity_relationships - 関係の詳細を含むエンティティのすべての関連レコードを取得する
通信ツール
create_call - ステータス、方向、持続時間の追跡を含む通話レコードを作成する
search_calls - ステータス、方向、コンタクト、日付範囲で通話を検索する
create_case - 優先度、タイプ、アカウントリンクを含むサポートケースを作成する
search_cases - ステータス、優先度、タイプ、割り当てでケースを検索する
add_note - ドキュメント化とフォローアップのために任意のエンティティレコードにメモを追加する
search_notes - 親エンティティ、作成者、日付範囲でメモを検索する
create_document - ファイル添付とメタデータを含むドキュメントレコードを作成する
システムツール
health_check - すべてのエンティティに対するサーバーとEspoCRMの接続性を検証する
拡張検索機能
すべての検索ツールは、現在、高度なフィルタリングオプションをサポートしています。
日付範囲フィルタリング
createdFrom / createdTo - 作成日範囲でフィルタリングする
modifiedFrom / modifiedTo - 変更日範囲でフィルタリングする
dateFrom / dateTo - 日付範囲で会議をフィルタリングする
会議固有のフィルタ
status - 会議ステータス(計画中、開催済み、未開催)でフィルタリングする
location - 会議場所でフィルタリングする
assignedUserName - 担当ユーザーでフィルタリングする
ユーザー固有のフィルタ
userName - ユーザー名で検索する
emailAddress - メールアドレスで検索する
firstName / lastName - 名前の構成要素で検索する
isActive - アクティブステータスでフィルタリングする
type - ユーザータイプ(管理者、通常、ポータル、API)でフィルタリングする
AIチャットボットの使用
埋め込まれたチャットボットは自然言語を理解し、任意のCRM操作を実行できます。
"Create a contact named Sarah Johnson with email sarah@techcorp.com"
"Find all accounts in the software industry"
"Show me opportunities over $50,000"
"Create a task to follow up with lead John Smith"
"Schedule a meeting for tomorrow at 2 PM"
"What's the system health status?"
"Link contact ID 123 to account TechCorp"
"Add a note to case #456 saying 'Customer satisfied with resolution'"
🔧 技術詳細
テスト
自動テスト
プロジェクトには包括的なテストツールが含まれています。
npm run test:config
npm run test:client
npm test
手動テストスクリプト
接続テスト
node test-connection.js
基本的な接続性、APIエンドポイント、および認証をテストします。
拡張ツールテスト
node test-enhanced-tools.js
会議やユーザーを含むすべての拡張機能の包括的なテストです。
ランダムコンタクト生成
node create-random-contact.js
CRUD操作を検証するためにランダムなテストコンタクトを作成します。
開発
プロジェクト構造
EspoMCP/
├── src/ # ソースコード
│ ├── config/ # 設定管理
│ ├── espocrm/ # EspoCRM APIクライアントと型定義
│ │ ├── client.ts # 認証付きのHTTPクライアント
│ │ └── types.ts # すべてのエンティティのTypeScriptインターフェース
│ ├── tools/ # MCPツールの実装
│ ├── utils/ # ユーティリティ関数とフォーマット
│ │ ├── errors.ts # エラーハンドリングユーティリティ
│ │ ├── formatting.ts # エンティティのフォーマット関数
│ │ ├── logger.ts # Winstonロガーの設定
│ │ └── validation.ts # Zodスキーマ検証
│ └── index.ts # メインサーバーのエントリポイント
├── tests/ # テストファイル
├── build/ # コンパイルされたJavaScript
├── logs/ # アプリケーションログ
└── docs/ # ドキュメント
主要コンポーネント
MCPサーバー (src/index.ts)
環境の読み込み、グレースフルシャットダウンの処理、およびMCPプロトコルの準拠を含むメインサーバーの実装です。
EspoCRMクライアント (src/espocrm/client.ts)
認証、エラーハンドリング、ロギング、および包括的なCRUD操作を備えたHTTPクライアントです。
エンティティタイプ (src/espocrm/types.ts)
Contact、Account、Opportunity、Meeting、User、および関連エンティティの完全なTypeScriptインターフェースです。
ツールレジストリ (src/tools/index.ts)
適切な型安全性、検証、およびエラーハンドリングを備えたすべてのMCPツールの中央レジストリです。
フォーマットユーティリティ (src/utils/formatting.ts)
すべてのエンティティタイプに対する一貫した出力フォーマットを持つプロフェッショナルなフォーマット関数です。
開発ワークフロー
src/内のソースファイルに変更を加える
npm run buildでプロジェクトをビルドする
npm run test:configで変更をテストする
npm run test:clientで拡張機能をテストする
npm run lintでコードをリントする
Dockerデプロイメント
Dockerでビルドして実行する
npm run docker:build
npm run docker:run
Docker Compose
version: '3.8'
services:
espocrm-mcp:
build: .
environment:
- ESPOCRM_URL=${ESPOCRM_URL}
- ESPOCRM_API_KEY=${ESPOCRM_API_KEY}
- ESPOCRM_AUTH_METHOD=apikey
- MCP_TRANSPORT=stdio
- RATE_LIMIT=100
- LOG_LEVEL=info
volumes:
- ./logs:/app/logs
restart: unless-stopped
カレンダー同期統合
このMCPサーバーは、カレンダー同期システムとシームレスに連携するように特別に設計されています。
Googleカレンダー同期互換性
- 会議エンティティには、同期追跡用の
googleEventIdフィールドが含まれています。
- 参加者管理のためのメールベースのユーザールックアップ
- 効率的な同期操作のための日付範囲フィルタリング
contactsIdsとusersIdsを通じた参加者のリンク
同期防止機能
- 重複作成を防止するための包括的なエンティティ追跡
- 外部システム識別子のサポート
- 同期操作のための堅牢なエラーハンドリング
ワークフロー統合
const existingMeetings = await client.callTool('search_meetings', {
dateFrom: syncStartDate,
dateTo: syncEndDate
});
const user = await client.callTool('get_user_by_email', {
emailAddress: assignedUserEmail
});
for (const externalEvent of externalEvents) {
await client.callTool('create_meeting', {
name: externalEvent.title,
dateStart: externalEvent.start,
dateEnd: externalEvent.end,
googleEventId: externalEvent.id,
description: externalEvent.description
});
}
トラブルシューティング
一般的な問題
接続エラー
node test-connection.js
npm run test:config
curl -H "X-Api-Key: YOUR_API_KEY" http://your-espocrm.com/api/v1/App/user
認証エラー
- APIキーが正しく有効であることを確認する
- EspoCRMでユーザーの権限を確認する
- ユーザーにAPIアクセスが有効になっていることを確認する
- 正しいAPIエンドポイント形式を確認する
会議作成エラー
- 必須フィールド(名前、開始日、終了日)が提供されていることを確認する
- 日付形式がISO 8601(YYYY-MM-DDTHH:mm:ss)であることを確認する
- 会議作成のためのユーザー権限を確認する
- リンクする前にコンタクトとユーザーIDが存在することを検証する
ユーザー検索エラー
- ユーザーがUserエンティティにアクセスする権限を持っていることを確認する
- システム内にユーザーが存在することを確認する
- メールアドレスが正しくフォーマットされていることを確認する
デバッグモード
デバッグロギングを有効にする:
LOG_LEVEL=debug
詳細なログを表示する:
tail -f logs/espocrm-mcp.log
接続診断
特定のAPIエンドポイントをテストする:
curl -H "X-Api-Key: YOUR_KEY" http://your-espocrm.com/api/v1/App/user
curl -H "X-Api-Key: YOUR_KEY" "http://your-espocrm.com/api/v1/Meeting?maxSize=1"
curl -H "X-Api-Key: YOUR_KEY" "http://your-espocrm.com/api/v1/User?maxSize=1"
APIリファレンス
ツールスキーマ
すべてのツールは、検証にZodスキーマを使用しています。主要なスキーマには以下が含まれます。
コンタクトスキーマ
{
firstName: string,
lastName: string,
emailAddress?: string,
phoneNumber?: string,
title?: string,
department?: string,
accountId?: string,
description?: string
}
会議スキーマ
{
name: string,
dateStart: string,
dateEnd: string,
location?: string,
description?: string,
status?: 'Planned' | 'Held' | 'Not Held',
parentType?: string,
parentId?: string,
contactsIds?: string[],
usersIds?: string[],
googleEventId?: string
}
ユーザースキーマ
{
userName: string,
firstName?: string,
lastName?: string,
emailAddress?: string,
phoneNumber?: string,
isActive?: boolean,
type?: 'admin' | 'regular' | 'portal' | 'api'
}
タスクスキーマ
{
name: string,
assignedUserId?: string,
parentType?: 'Lead' | 'Account' | 'Contact' | 'Opportunity',
parentId?: string,
status?: 'Not Started' | 'Started' | 'Completed' | 'Canceled' | 'Deferred',
priority?: 'Low' | 'Normal' | 'High' | 'Urgent',
dateEnd?: string,
description?: string
}
リードスキーマ
{
firstName: string,
lastName: string,
emailAddress?: string,
phoneNumber?: string,
accountName?: string,
website?: string,
status?: 'New' | 'Assigned' | 'In Process' | 'Converted' | 'Recycled' | 'Dead',
source: 'Call' | 'Email' | 'Existing Customer' | 'Partner' | 'Public Relations' | 'Web Site' | 'Campaign' | 'Other',
industry?: string,
assignedUserId?: string,
description?: string
}
チームスキーマ
{
name: string,
description?: string,
positionList?: string[],
}
汎用エンティティスキーマ
{
entityType: string,
data: {
[key: string]: any
},
filters?: {
[field: string]: any
},
select?: string[],
orderBy?: string,
order?: 'asc' | 'desc'
}
通話スキーマ
{
name: string,
status?: 'Planned' | 'Held' | 'Not Held',
direction?: 'Inbound' | 'Outbound',
duration?: number,
parentType?: string,
parentId?: string,
assignedUserId?: string,
description?: string
}
ケーススキーマ
{
name: string,
status?: 'New' | 'Assigned' | 'Pending' | 'Closed' | 'Rejected' | 'Duplicate',
priority?: 'Low' | 'Normal' | 'High' | 'Urgent',
type?: string,
accountId?: string,
contactId?: string,
assignedUserId?: string,
description?: string
}
メモスキーマ
{
parentType: string,
parentId: string,
post: string,
data?: {
isInternal?: boolean,
[key: string]: any
}
}
関係スキーマ
{
entityType: string,
entityId: string,
relatedEntityType: string,
relatedEntityId: string,
relationshipName: string
}
チーム管理操作
{
userId: string,
teamId: string,
position?: string
}
{
userId: string,
roleId: string
}
検索パラメータ
{
searchTerm?: string,
limit?: number,
offset?: number,
createdFrom?: string,
createdTo?: string,
modifiedFrom?: string,
modifiedTo?: string,
}
レスポンスフォーマット
標準リストレスポンス
{
"total": 150,
"list": [
{
"id": "entity123",
"name": "Entity Name",
"createdAt": "2025-07-20T10:30:00Z",
"modifiedAt": "2025-07-20T15:45:00Z"
}
]
}
会議レスポンス
{
"id": "meeting123",
"name": "Project Meeting",
"status": "Planned",
"dateStart": "2025-08-01T10:00:00Z",
"dateEnd": "2025-08-01T11:00:00Z",
"location": "Conference Room A",
"assignedUserName": "John Doe",
"contacts": ["contact1", "contact2"],
"googleEventId": "google_event_123"
}
パフォーマンスに関する考慮事項
ページネーション
- デフォルトの制限: 20件の結果
- 最大制限: 200件の結果
- 大規模なデータセットをページングするにはオフセットを使用します
レート制限
- デフォルト: 1分あたり100リクエスト
RATE_LIMIT環境変数で設定可能
- レート制限の処理に指数バックオフを実装しています
キャッシュ
- 組み込みのキャッシュはありません(アプリケーションレベルでの実装を推奨)
- EspoCRM APIのレスポンスはキャッシュされず、データの鮮度を保証します
バルク操作
- 個々のエンティティ操作のみ
- バルク操作の場合は、アプリケーションレベルで配列を反復処理します
- 大規模なデータセットを処理する際はレート制限を考慮してください
セキュリティのベストプラクティス
APIキー管理
- APIキーは環境変数にのみ保存する
- APIキーを定期的にローテーションする
- 必要最小限の権限を持つ専用のAPIユーザーを使用する
- API使用ログを監視する
ネットワークセキュリティ
- すべてのEspoCRM接続にHTTPSを使用する
- 機密データの場合はVPNまたはプライベートネットワークを検討する
- EspoCRMインスタンスがサポートする場合はIPホワイトリストを実装する
データ検証
- すべての入力はZodスキーマを使用して検証されます
- 注入攻撃を防止するためにサニタイズが適用されます
- エラーメッセージは機密システム情報を公開しません
コントリビュート方法
- リポジトリをフォークする
- 機能ブランチを作成する (
git checkout -b feature/enhanced-search)
- 変更をコミットする (
git commit -m 'Add enhanced search capabilities')
- ブランチにプッシュする (
git push origin feature/enhanced-search)
- プルリクエストを開く
開発ガイドライン
- 厳格な型付けを持つTypeScriptのベストプラクティスに従う
- 新機能に対して包括的なテストを追加する
- 新機能に関するドキュメントを更新する
- 提出する前にすべてのテストが合格することを確認する
- 既存のコードフォーマットと構造に従う
- 適切なエラーハンドリングとロギングを追加する
テスト要件
- 新機能の単体テスト
- モックEspoCRMレスポンスを使用した統合テスト
- 実際のEspoCRMインスタンスを使用した手動テスト
- 新機能に関するドキュメントの更新
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています - 詳細についてはLICENSEファイルを参照してください。
サポート
変更履歴
バージョン2.0.0 - AIチャットボット統合 🤖
- 完全なチャットボットインターフェース: EspoCRMに埋め込まれるフローティングチャットバブル
- 自然言語処理: 平易な英語でチャットしてCRM操作を実行する
- WebSocket通信: リアルタイムの双方向通信
- 47のMCPツールへのアクセス: 会話型インターフェースを通じて完全なCRM機能を利用する
- セキュリティとレート制限: 入力検証を備えた本番環境対応のセキュリティ
- Dockerデプロイメント: MCPサーバーと一緒にコンテナ化されたチャットボットサーバー
- モバイル対応: すべてのデバイスで美しいインターフェースが動作する
- EspoCRM統合: 既存のEspoCRMインスタンスとのシンプルな3行の統合
- AI駆動: 高度な自然言語理解のためのオプションのOpenAI統合
- 本番テスト: 包括的なテストスイートとデモインターフェース
バージョン1.5.0 - フェーズ3 完全な通信と関係管理
- 関係管理: エンティティのリンク/非リンクと関係管理のための3つの新しいツール
- 通信ツール: 通話、ケース、メモ、およびドキュメント管理のための7つの新しいツール
- エンティティ関係操作: 任意のエンティティをリンク/非リンクし、関係の詳細を取得する
- 通話管理: 持続時間と方向の追跡を含む通話レコードの作成と検索
- ケース管理: 優先度とタイプの分類を含むサポートケースの作成と検索
- メモシステム: 内部/外部の可視性制御を持つ任意のエンティティにメモを追加する
- ドキュメント管理: ファイル添付をサポートするドキュメントレコードの作成
- 高度なフォーマット: 通話、ケース、およびメモのための特殊なフォーマットを追加
- ツール数: 39から47の包括的なツールに拡張(+8つの新しいツール)
バージョン1.4.0 - フェーズ2 完全なエンタープライズソリューション
- チームとロール管理: 完全なユーザー/チーム/ロール管理のための7つの新しいツール
- 汎用エンティティ操作: 任意のEspoCRMエンティティ(カスタムエンティティを含む)を操作するための5つの新しいツール
- チーム管理: チームへのユーザーの追加/削除、役職の割り当て、チームメンバーの取得
- ロール割り当て: ユーザーにロールを割り当て、有効な権限を取得する
- 汎用エンティティサポート: 任意のエンティティタイプの作成、読み取り、更新、削除、および検索
- カスタムエンティティサポート: カスタムEspoCRMエンティティとフィールドの完全なサポート
- 拡張型安全性: Team、Role、およびGenericEntityのTypeScriptインターフェースを追加
- ツール数: 27から39の包括的なツールに拡張(+12の新しいツール)
バージョン1.3.0 - フェーズ1拡張
- タスク管理: 5つの新しいツール(作成、検索、取得、更新、割り当て)を持つ完全なタスクライフサイクル
- リード管理: 5つの新しいツール(作成、検索、更新、変換、割り当て)を持つ完全なリードパイプライン
- 親子関係: タスクをリード、アカウント、コンタクト、または商談にリンクできる
- リード変換: 1つの操作でリードをコンタクト、アカウント、および商談に変換する
- 高度なタスク機能: 優先度レベル、期限、ステータス追跡、およびユーザー割り当て
- 拡張検索: 包括的なフィルタオプションを持つタスクとリードの検索
- 型安全性: すべての新しいエンティティに対する拡張TypeScriptインターフェース
- ツール数: 17から27の包括的なツールに拡張
バージョン1.2.0
- 拡張会議管理: 会議の完全なCRUD操作
- ユーザー管理: ユーザーの検索とルックアップ機能
- 高度な日付フィルタリング: すべての検索操作に対する日付範囲サポート
- カレンダー同期互換性: Googleカレンダー統合サポート
- 改善されたエラーハンドリング: より良いエラーメッセージとデバッグ
- 接続修正: APIエンドポイントの互換性問題を解決
バージョン1.1.0
- 拡張エンティティサポート: 包括的な型定義を追加
- 拡張検索: 高度なフィルタリング機能
- パフォーマンス改善: APIクライアントとエラーハンドリングを最適化
バージョン1.0.0
- MCP 2024/2025の完全サポートを備えた初期リリース
- Contacts、Accounts、Opportunitiesの完全なCRUD操作
- Dockerサポートと包括的なテスト
- 複数の認証方法
- 本番環境対応のロギングとエラーハンドリング
最新のAIアプリケーション向けのエンタープライズグレードのEspoCRM統合