Skip to main content
Glama
Genesis-World-MCP

Genesis-World-MCP

by Gnidreve

cas-genesisworld-mcp

npm Docker CI License: MIT

Claude、Cursor、または MCP 互換の AI エージェントを、お使いの CAS genesisWorld CRM に接続できます。コンタクトの検索、タスクや予定の管理、レコードの読み書きを、API 呼び出しを一切書くことなく自然言語で行えます。

  • 69 個のツールを提供。複数ステップの CRM 操作(例:ミーティングを予約する前のスケジュール競合の確認、コンタクト作成前の重複確認)を 1 回の呼び出しにまとめる7 つのネイティブフローも含まれます。

  • フル読み書きアクセス:タスク、コンタクト、予定、ドキュメント、配布リスト、その他に加え、導入環境で定義された任意のカスタムオブジェクトタイプへの汎用アクセスも可能です。

  • 読み取り専用モードを用意、安全な調査用途で利用できます。 *すぐに使える Docker イメージ または npm パッケージ として提供します。

クイックスタート

MCP クライアントの設定(例:Claude Desktop の claude_desktop_config.json)に次を追加します:

{
  "mcpServers": {
    "cas-genesisworld": {
      "command": "npx",
      "args": ["-y", "cas-genesis-world-mcp"],
      "env": {
        "GENESISWORLD_BASE_URL": "http://your-genesisworld-server/genesisrest.svc",
        "GENESISWORLD_PRODUCT_KEY": "your-product-key",
        "GENESISWORLD_USERNAME": "your-username",
        "GENESISWORLD_PASSWORD": "your-password"
      }
    }
  }
}

クライアントを再起動すると、ツールが自動的に表示されます。コンタクトを探す、未処理タスクを一覧する、会議を予約する、といった依頼をエージェントにだけ投げれば、あとはエージェントが処理します。

クライアントごとの起動プロセスではなく、常駐型でセルフホスト運営のサーバーをお望みですか? そんな場合は、下記の Docker でのセルフホスティング をご覧ください。

Related MCP server: Twenty CRM MCP

何を頼めるか

接続が完了すると、エージェントはこんなリクエストを処理できます:

  • 「Jane Doe の連絡先情報を見つけて、未完了のタScherzも表示して。」

  • 「このリードに対するフォローアップタスクを作成して、そのコンタクトレコードにリンクして。」

  • 「来週の火曜日午前10時に営業チームとのミーティングを予約して — まず 全員のカレンダーの競合をチェックして。」

  • 「Acme Corp の新しいコンタクトを作成する前に、重複の可能性を確認して。」

  • 「この商談向けのレポートを作成して。」

このようなリクエストは、フロー によって処理されます。フローとは、手でスクリプトを組む必要がある複数ステップの API リクエスト列を、1 回のツール呼び出しにまとめたものです。

ツールとフロー

フロー — 複合アクションを 1 回の呼び出しで

Flow

Mode

What it does

my_open_tasks

read

現在のユーザーとそのタス一覧(期限ウィンドウ、保存済みビュー、全文検索)を1回の呼び出しで取得

task_overview

read

タスクトリ レコード+リンク+タグを non並列で取得

create_task

write

タスクを作成し、オプションでこの別のオブジェクツ(例:コンタクト)にリンク

find_contact

read

名前または電話番号によるコンタクトの並列検索

contact_360

read

コンタクト+コレクションドシエ+タグ+リンクを記並列で取得

create_address_safe

write

重複チェックを先に実施し — 候補が見つからない場合のみ作成します

create_appointment_safe

write

任意の競合チェック → 作成 → 参加者の追加を、1 回の呼び出しで実行

読み取り(39)

ツール

エンドポイント

smart_search

GET /v7.0/smartsearch

get_data_object

GET /v7.0/type/{dataObjectType}/{dataObjectGGUID}

get_dossier

GET /v7.0/type/{dataObjectType}/{dataObjectGGUID}/dossier/full

list_data_objects

GET /v7.0/type/{dataObjectType}/list

list_views

GET /v7.0/type/{dataObjectType}/view/list

list_data_objects_by_view

GET /v7.0/type/{dataObjectType}/view/{viewID}/list

list_available_data_object_types

GET /v7.0/user/self/dataobjecttypepermission/list

get_data_object_types_metadata

GET /v7.0/metadata

list_links

GET /v7.0/type/{dataObjectType}/{dataObjectGGUID}/link/list

list_recent_data_objects

GET /v7.0/type/{dataObjectType}/recent/list

get_available_products

GET /v7.0/type/gwopportunity/availableproducts

get_data_object_count

GET /v7.0/type/{dataObjectType}/count

get_primary_link_parents

GET /v7.0/type/{dataObjectType}/{dataObjectGGUID}/primarylinkparents

list_users

GET /v7.0/user/list

get_user_self

GET /v7.0/user/self

get_view

GET /v7.0/type/{dataObjectType}/view/{viewID}

list_tags

GET /v7.0/tags

get_object_tags

GET /v7.0/type/{dataObjectType}/{dataObjectGGUID}/tags

get_full_data_objects

GET /v7.0/type/{dataObjectType}/full

list_data_objects_by_view_full

GET /v7.0/type/{dataObjectType}/view/{viewID}/full

get_data_objects_bulk

POST /v7.0/type/{dataObjectType}/records(POST ですが読み取り操作)

get_ticket_service_agreements

GET /v7.0/type/task/ticket/serviceagreements

get_vcard

GET /v7.0/type/address/{dataObjectGGUID}/vcard

get_salutation

POST /v7.0/type/address/salutation(POST ですが読み取り操作)

format_phone_number

POST /v7.0/type/address/formatphonenumber(POST ですが読み取り操作)

check_appointment_conflicts

GET /v7.0/type/appointment/conflicts

get_participant_summary

GET /v7.0/type/appointment/{gguid}/participant/summary

list_appointment_participants

GET /v7.0/type/appointment/{gguid}/participant/full

get_document_file

GET /v7.0/type/document/{gguid}/file(ロックは行いません)

list_document_versions

GET /v7.0/type/document/{gguid}/file/version/list

list_email_attachments

GET /v7.0/type/emailstore/{gguid}/attachment/list

get_email_attachment

GET /v7.0/type/emailstore/{gguid}/attachment/{attachmentId}

get_email_file

GET /v7.0/type/emailstore/{gguid}/file

list_object_permissions

GET /v7.0/type/{t}/{gguid}/permission/full

list_distributions

GET /v7.0/type/gwdistribution/list

list_distribution_addresses

GET /v7.0/type/gwdistribution/{distributionGuid}/address/list

list_report_templates

GET /v7.0/type/report/template/{templateType}

generate_report

POST /v7.0/type/report/template/{templateGGUID}(POST ですが読み取り操作 — レンダリングのみで変更はしません)

readme(ツール形式)

サーバー内に置かれる、静的な導入向けドキュメント

書き込み(23 — 読み取り専用モードでは、上記の書き込みフローとともに非表示になります)

ツール

エンドポイント

create_data_object

POST /v7.0/type/{dataObjectType}

update_data_object

PUT /v7.0/type/{dataObjectType}/{dataObjectGGUID}

delete_data_object

DELETE /v7.0/type/{dataObjectType}/{dataObjectGGUID}

restore_data_object

POST /v7.0/type/{dataObjectType}/rbin/undelete

create_link

POST /v7.0/type/{dataObjectType}/{dataObjectGGUID}/link

delete_link

DELETE /v7.0/type/{t}/{gguid}/link/{objecttype2}/{guid2}/{attribute}

set_object_tags

POST /v7.0/type/{dataObjectType}/{dataObjectGGUID}/tags/user

append_notes

POST /v7.0/type/{t}/{gguid}/notes/{fieldName}

create_dossier_entry

POST /v7.0/type/{dataObjectType}/{dataObjectGGUID}/dossier

delete_dossier_entry

DELETE /v7.0/type/{t}/{gguid}/dossier/{dossierEntryGGUID}

set_contact_persons_active

POST /v7.0/type/address/{gguid}/contactperson/activate|deactivate

add_appointment_participant

POST /v7.0/type/appointment/{gguid}/participant

remove_appointment_participant

DELETE /v7.0/type/appointment/{gguid}/participant/{participantGGUID}

set_recurrence

POST /v7.0/type/{t}/recurrence / PUT …/recurrence/{periodGuid}

delete_recurrence

DELETE /v7.0/type/{t}/recurrence/{periodGuid}

set_alarm

PUT /v7.0/type/{t}/{gguid}/alarm/self

delete_alarm

DELETE /v7.0/type/{t}/{gguid}/alarm/self

set_object_permission

POST /v7.0/type/{t}/{gguid}/permission

delete_object_permission

DELETE /v7.0/type/{t}/{gguid}/permission/{permissionGGUID}

add_distribution_addresses

POST /v7.0/type/gwdistribution/{distributionGuid}/address

remove_distribution_address

DELETE /v7.0/type/gwdistribution/{distributionGuid}/address/{addressGGUID}

convert_lead

POST /v7.0/type/gwsllead/{dataObjectGGUID}/convert

recalculate_opportunity_positions

PUT /v7.0/type/gwopportunitypos/recalculatevalues

この基盤となる完全なアップストリームAPIは、swagger.json としてコミットされています。

リソース

ツールに加えて、サーバーはめったに変更されないデータ用のMCPリソースを公開しており、エージェントがセッションごとにツール呼び出しを消費して再発見する必要がありません:

  • genesisworld://readme — エージェント自身のための静的オリエンテーションドキュメント(ドメインモデル、ナビゲーションパターン、効率ルール)。

  • genesisworld://types — ユーザーがアクセス可能なデータオブジェクトタイプと権限。15分間キャッシュされます。

  • genesisworld://metadata/{objectType} — 1つのタイプのフィールド/リレーションシップスキーマ(例:genesisworld://metadata/ADDRESS)。15分間キャッシュされます。

  • genesisworld://views/{objectType} — 1つのタイプの保存済みビュー(例:genesisworld://views/TASK)。15分間キャッシュされます。

Dockerによるセルフホスティング

複数のクライアントが接続できる永続的なサーバーの場合(クライアントごとに1つの npx プロセスを使う代わりに):

docker run -d --name cas-genesisworld-mcp -p 8084:3000 \
  -e GENESISWORLD_BASE_URL="http://your-genesisworld-server/genesisrest.svc" \
  -e GENESISWORLD_PRODUCT_KEY="your-product-key" \
  -e GENESISWORLD_USERNAME="your-username" \
  -e GENESISWORLD_PASSWORD="your-password" \
  vaatu/cas-genesis-world-mcp

# Read-only mode: append --read-only after the image name
docker run -d --name cas-genesisworld-mcp -p 8084:3000 \
  -e GENESISWORLD_BASE_URL="http://your-genesisworld-server/genesisrest.svc" \
  -e GENESISWORLD_PRODUCT_KEY="your-product-key" \
  -e GENESISWORLD_USERNAME="your-username" \
  -e GENESISWORLD_PASSWORD="your-password" \
  vaatu/cas-genesis-world-mcp --read-only

マルチテナント:1つのサーバー、複数のgenesisWorld ID

デフォルトでは、コンテナは接続するすべてのクライアントに対して1つの固定されたgenesisWorld IDを持ちます。--client-credentials を使用すると、サーバーはIDを持ちません — 各クライアントが自分自身を認証するため、1つのサーバーで異なるgenesisWorldログインを持つ複数の人/チームに安全にサービスを提供できます:

docker run -d --name cas-genesisworld-mcp -p 8084:3000 \
  -e GENESISWORLD_BASE_URL="http://your-genesisworld-server/genesisrest.svc" \
  vaatu/cas-genesis-world-mcp --client-credentials

各クライアントは接続時に独自の認証情報をヘッダーとして送信します:

{
  "mcpServers": {
    "cas-genesisworld": {
      "url": "http://localhost:8084/mcp",
      "headers": {
        "X-GenesisWorld-Username": "your-username",
        "X-GenesisWorld-Password": "your-password"
      }
    }
  }
}

X-GenesisWorld-Product-Key はここではオプションです — サーバーで GENESISWORLD_PRODUCT_KEY を設定したままにしておくと、独自のプロダクトキーを省略したクライアントはそれにフォールバックします。HTTPトランスポートのみ(stdioにはリクエストごとのヘッダーチャネルはありません);ユーザー名とパスワードの両方のヘッダーが欠けているリクエストは即座に拒否され(HTTP 401)、共有IDにフォールバックすることはありません。

MCPエンドポイントは現在 http://localhost:8084/mcp にあります。クライアントをそこに向けてください:

{
  "mcpServers": {
    "cas-genesisworld": {
      "url": "http://localhost:8084/mcp"
    }
  }
}

設定

2種類の設定は厳密に分離されています — 両方に該当する設定はありません:環境変数はデプロイメントを設定し(APIの場所、接続するユーザー);起動オプションは起動時の動作を切り替えます。

環境変数

変数

必須

目的

GENESISWORLD_BASE_URL

はい

RESTサービスのベースURL(例:http://demo.cas.de/genesisrest.svc)

GENESISWORLD_PRODUCT_KEY

はい*

すべてのリクエストで X-CAS-PRODUCT-KEY として送信されます

GENESISWORLD_USERNAME

はい*

Basic Authユーザー

GENESISWORLD_PASSWORD

はい*

Basic Authパスワード

MCP_TRANSPORT

いいえ

http(Dockerのデフォルト)または stdio

MCP_HOST / MCP_PORT

いいえ

HTTPモードのバインドアドレス(デフォルト 0.0.0.0:3000)

GENESISWORLD_MAX_RESULT_CHARS

いいえ

過大なレスポンスを切り詰めます(デフォルト60000文字;0で無効)

GENESISWORLD_QUIET

いいえ

true でリクエストごとのstderrログを無効化

* 実際のリクエストを成功させるには実質必須です — ただし --client-credentials モード(下記参照)を除きます。このモードではサーバーは独自のIDを持たず、これら3つはどれも必須ではありません。

起動オプション

フラグ

必須

目的

--read-only

いいえ

そのセッションでは読み取りツールのみを登録します — 変更ツールは単にブロックされるだけでなく、存在しません

--client-credentials

いいえ

サーバーは固定のgenesisWorld IDを保持しません;各HTTPクライアントはリクエストヘッダーを介して自分自身を認証します(上記の「マルチテナント」を参照)。HTTPトランスポートのみ

起動オプションはコマンドラインで渡すか、docker run のイメージ名の後(上記のように)に渡します。設計上、どれにも環境変数に相当するものはありません。

ライセンス

MIT


ツールを追加したい、またはこの仕組みを理解したいですか?アーキテクチャとコントリビューター向けドキュメントは AGENTS.md を、プロジェクト計画は ROADMAP.md を参照してください。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides live Zoho CRM data access via MCP tools, enabling queries on modules, records, fields, and related lists without syncing data.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients to read, search, create, update, and manage records in Twenty CRM with a safe, composable 14-tool interface and guarded destructive operations.
    14
    3
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only MCP tools to find, list, and retrieve sales case studies with hybrid search, returning complete cases and prepared presentations.
    -