Genesis-World-MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Genesis-World-MCPsearch for contacts with name John"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cas-genesisworld-mcp
Connect Claude, Cursor, or any MCP-compatible AI agent to your CAS genesisWorld CRM. Search contacts, manage tasks and appointments, and read or write records — through natural language, without writing a single API call.
69 tools, including 7 native flows that bundle multi-step CRM operations (like checking for scheduling conflicts before booking a meeting, or checking for duplicates before creating a contact) into a single call.
Full read/write access to tasks, contacts, appointments, documents, distribution lists, and more — plus generic access to any custom object type your installation defines.
Read-only mode available for safe, exploratory use.
Ships as a ready-made Docker image or npm package.
Quick start
Add this to your MCP client's config (e.g. Claude Desktop's
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"
}
}
}
}Restart your client — the tools show up automatically. Ask your agent to find a contact, list your open tasks, or book a meeting, and it takes it from there.
Prefer a persistent, self-hosted server instead of a per-client process? See Self-hosting with Docker below.
Related MCP server: zoho-crm-mcp
What you can ask it
Once connected, your agent can handle requests like:
"Find the contact info for Jane Doe and show me her open tasks."
"Create a follow-up task for this lead and link it to their contact record."
"Book a meeting with the sales team next Tuesday at 10am — check everyone's calendar for conflicts first."
"Check for possible duplicates before creating a new contact for Acme Corp."
"Generate a report for this opportunity."
Requests like these are answered by flows — single tool calls that bundle the multi-step sequence of API requests a human would otherwise have to script by hand.
Tools & flows
Flows — compound actions, one call each
Flow | Mode | What it does |
| read | Current user + their task list (due window, saved view, or full-text filter) in one call |
| read | Task record + links + tags, fetched in parallel |
| write | Create a task and optionally link it to another object (e.g. a contact) |
| read | Contact search by name and/or phone number, in parallel |
| read | Contact + collection dossier + tags + links, fetched in parallel |
| write | Duplicate check first — creates only when no candidates are found |
| write | Optional conflict check → create → add participants, in one call |
Read (39)
Tool | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| server-local static orientation document |
Write (23 — hidden in read-only mode, along with the write flows above)
Tool | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The full upstream API this is built on is committed as
swagger.json.
Resources
Beyond tools, the server exposes MCP resources for data that rarely changes, so your agent doesn't burn tool calls rediscovering it every session:
genesisworld://readme— static orientation document for the agent itself (domain model, navigation patterns, efficiency rules).genesisworld://types— data-object types accessible to the user, with permissions. Cached 15 min.genesisworld://metadata/{objectType}— field/relationship schema of one type, e.g.genesisworld://metadata/ADDRESS. Cached 15 min.genesisworld://views/{objectType}— saved views of one type, e.g.genesisworld://views/TASK. Cached 15 min.
Self-hosting with Docker
For a persistent server multiple clients can point at (instead of one
npx process per client):
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-onlyOr with docker compose, using docker-compose.yml
(repo root) and .env.example:
cp .env.example .env # fill in your values — .env is gitignored
docker compose up -dFor --read-only, uncomment the matching command: line in
docker-compose.yml — launch options are CLI flags only, never .env
entries, so mode selection stays in the compose file rather than .env.
For --client-credentials, use
docker-compose.client-credentials.yml
instead (see "Multi-tenant" below) — it has that flag active by default,
rather than making you uncomment it in the primary file.
Multi-tenant: one server, many genesisWorld identities
By default the container has one fixed genesisWorld user for every
client that connects. With --client-credentials, it has none — each
client authenticates as itself, so one server can safely serve several
people/teams with different genesisWorld logins. The product key stays
server-side either way — it identifies your product license, not a user,
so it's not something a client ever supplies:
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" \
vaatu/cas-genesis-world-mcp --client-credentialsOr with docker compose, using
docker-compose.client-credentials.yml
(only GENESISWORLD_BASE_URL/GENESISWORLD_PRODUCT_KEY need values in
.env here — leave GENESISWORLD_USERNAME/PASSWORD unset, each client
brings its own instead):
cp .env.example .env # fill in your values — .env is gitignored
docker compose -f docker-compose.client-credentials.yml up -dEach client then sends its own credentials when connecting — two ways, whichever your MCP client supports:
Standard Authorization: Basic header (preferred — works with
Claude's built-in "Add custom connector" flow, which rejects arbitrary
custom header names unless Anthropic pre-approves them):
{
"mcpServers": {
"cas-genesisworld": {
"url": "http://localhost:8084/mcp",
"headers": {
"Authorization": "Basic base64(your-username:your-password)"
}
}
}
}Or custom headers, for clients that support arbitrary headers but have
no first-class "Basic Auth" option (if Authorization: Basic is present,
it wins — these are only used as a fallback):
{
"mcpServers": {
"cas-genesisworld": {
"url": "http://localhost:8084/mcp",
"headers": {
"X-GenesisWorld-Username": "your-username",
"X-GenesisWorld-Password": "your-password"
}
}
}
}There is no product-key header (and no product-key slot in the
Authorization value either) — GENESISWORLD_PRODUCT_KEY on the server
is used for every client, always; clients can't set or override it. HTTP
transport only (there's no per-request header channel on stdio); a
request missing valid credentials via either path is rejected outright
(HTTP 401), it never falls back to a shared identity.
The MCP endpoint is now at http://localhost:8084/mcp. Point your client
at it:
{
"mcpServers": {
"cas-genesisworld": {
"url": "http://localhost:8084/mcp"
}
}
}Configuration
Two kinds of settings, kept strictly separate — no setting is both: Environments configure the deployment (where the API lives, who connects); launch options toggle behavior at startup.
Environments
Variable | Required | Purpose |
| yes | Base URL of the REST service, e.g. |
| yes | Sent as |
| yes* | Basic Auth user |
| yes* | Basic Auth password |
| no |
|
| no | Bind address for HTTP mode (default |
| no | Truncate oversized responses (default 60000 chars; |
| no |
|
* Required in practice for any real request to succeed — except in
--client-credentials mode (see below), where the server has no fixed
user identity and these two are not required (each client brings its
own instead).
Launch options
Flag | Required | Purpose |
| no | Registers only read tools for that session — mutating tools are not merely blocked, they don't exist |
| no | Server holds no fixed genesisWorld user identity; each HTTP client authenticates itself via request headers (see "Multi-tenant" above). Product key stays server-side. HTTP transport only |
Pass launch options on the command line, or after the image name in
docker run (as shown above). None of them have an environment-variable
equivalent, by design.
License
Want to add a tool or understand how this is built? See AGENTS.md for architecture and contributor docs, and ROADMAP.md for the project plan.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Secure MCP server for exploring incwo CRM data, documents, and email workflows.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server to interact with Cleyrop work data: browse, search, read file content, and manage files/folders.
- FlicenseNot gradedqualityCmaintenanceProvides live Zoho CRM data access via MCP tools, enabling queries on modules, records, fields, and related lists without syncing data.
- AlicenseAqualityBmaintenanceEnables MCP clients to read, search, create, update, and manage records in Twenty CRM with a safe, composable 14-tool interface and guarded destructive operations.14MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server for DocuWare that lets you list file cabinets, search documents, view metadata, and download documents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gnidreve/Genesis-World-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server