Creatio Case Toolkit MCP Server
Read-only MCP server for querying Creatio support cases and related entities via OData API, with entity allowlist and row limits for safe access.
README
Creatio Case Toolkit
A read-only toolkit for working with Creatio Support cases:
- an MCP server that exposes Creatio's OData API to AI clients (Claude Code, Claude Desktop, …), and
- a local web app that lets non-technical users look up cases by clicking menus — with descriptions, conversation timelines, inline attachments, and optional AI analysis powered by the Claude CLI.
Everything is read-only by construction: the HTTP layer only ever issues GET, there are no create/update/delete paths, and an entity allowlist + row cap keep the blast radius small. Safe to point at production.
Status: early/active. Read-only today; a gated write-back capability (draft & post case updates with human approval) is on the roadmap.
Features
- 🔒 Read-only by design — GET-only client, no write tools, entity allowlist,
$topclamp. - 🧰 MCP server —
creatio_query_records,creatio_get_record,creatio_list_allowed_entities. - 🖥️ Local web app — look up cases by owner, case number, account, or "all recent"; filter by status; choose detail depth.
- 🧵 Rich case detail — HTML-stripped descriptions, merged feed + email timeline, and inline screenshots/attachments proxied from Creatio's FileService.
- ✨ AI analysis (optional) — Summarize & prioritize, Common themes, Next actions, or free-text Q&A over the loaded cases; streamed live via the local Claude CLI (uses your existing Claude login — no API key).
- ⚙️ In-app settings — paste/refresh SSO cookies, base URL, allowlist, row cap; no VS Code required.
- 📡 Live progress — the search streams per-case progress with a percentage bar.
Repository layout
src/
creatioClient.ts Shared read-only OData client (auth, cookies, GET, file download)
caseLookup.ts Case-lookup query recipes (search, description, timeline, attachments)
analyze.ts Claude CLI runner for AI analysis (streaming, isolated, no tools/MCP)
server.ts Local web app: static hosting + JSON/SSE API
index.ts MCP server (thin surface over creatioClient)
test-auth.ts Standalone credential check
public/ Web app UI (vanilla HTML/CSS/JS, zero runtime deps)
start-app.bat One-click launcher for the web app (Windows)
.env.example Copy to .env and fill in
Quick start
Prerequisites: Node.js 18+ (developed on Node 24).
git clone <your-repo-url> creatio-case-toolkit
cd creatio-case-toolkit
npm install
npm run build
cp .env.example .env # then edit .env (see Configuration)
npm run test-auth # confirm credentials work (✔ Success)
Run the web app:
npm run app # builds, starts the server, opens http://127.0.0.1:3000
On Windows you can just double-click start-app.bat.
Register the MCP server in Claude Code (see MCP server for .mcp.json form):
claude mcp add creatio-readonly \
--env CREATIO_BASE_URL=https://<your-tenant>.creatio.com \
--env CREATIO_ALLOWED_ENTITIES=Case,Activity,Contact,Account,SocialMessage \
-- node ./dist/index.js
Configuration
All settings live in .env (and, for the MCP server, in its client registration). Never commit .env — it holds live credentials/cookies (it's git-ignored by default).
| Variable | Purpose |
|---|---|
CREATIO_BASE_URL |
Your Creatio URL, e.g. https://<your-tenant>.creatio.com |
CREATIO_LOGIN / CREATIO_PASSWORD |
Forms-auth service account (Mode 1) |
CREATIO_ASPXAUTH / CREATIO_BPMCSRF / CREATIO_BPMLOADER |
SSO session cookies (Mode 2) |
CREATIO_ALLOWED_ENTITIES |
Comma-separated entity allowlist (e.g. Case,Activity,Contact,Account,SocialMessage) |
CREATIO_MAX_TOP |
Max rows per query (default 50) |
CREATIO_APP_PORT |
Web app port (default 3000) |
CREATIO_APP_NO_OPEN |
Set 1 to stop the app auto-opening the browser |
CREATIO_APP_MODEL |
Model for AI analysis (e.g. sonnet, haiku); default = your CLI default |
Authentication
The client auto-selects a mode based on which vars are set.
- Mode 1 — Forms auth (recommended): a local, least-privilege, read-only Creatio service account (
CREATIO_LOGIN+CREATIO_PASSWORD). Re-authenticates automatically on expiry. - Mode 2 — Cookie auth (SSO tenants): paste a browser session's cookies (
.ASPXAUTH,BPMCSRF,BPMLOADER) from DevTools → Application → Cookies. Cookies expire in hours; refresh them in.envor the app's Settings tab and the next query picks them up — no restart needed.
Verify either mode with npm run test-auth.
Web app
- Lookup tab — choose who (assignee / case number / account / all recent), which statuses, and how much detail (summary, full description, timeline, latest update, extra fields), then Search. Results stream in with a progress bar.
- Attachments — screenshots embedded in descriptions and feed posts render inline (click to enlarge); email attachments appear as thumbnails. Images are streamed through a read-only
/api/fileproxy restricted to file entities + GUID ids. - Settings tab — base URL, cookies, allowlist, row cap, plus Test connection.
The server binds to 127.0.0.1 only and the only file it ever writes is your local .env.
AI analysis
With the Claude CLI installed and logged in, the results view shows an "Analyze with AI" bar — Summarize & prioritize, Common themes, Next actions, or a free-text question, streamed live and rendered as Markdown (copy / download as .md). Tick row checkboxes to analyze a subset; each row also has a "✨ analyze this one" button.
- Enable:
npm i -g @anthropic-ai/claude-code, then runclaudeonce to sign in. Uses your Claude subscription — no API key. - Runs
claude -plocally, isolated (no tools, no MCP, empty temp cwd); only the selected cases' text is sent — never your cookies. SetCREATIO_APP_MODEL=sonnet(orhaiku) for cheaper/faster runs.
MCP server
| Tool | Description |
|---|---|
creatio_list_allowed_entities |
Show base URL, allowlist, and row cap |
creatio_query_records |
OData query ($filter, $select, $orderby, $top, $expand) |
creatio_get_record |
Fetch one record by GUID |
.mcp.json form:
{
"mcpServers": {
"creatio-readonly": {
"command": "node",
"args": ["./dist/index.js"],
"env": {
"CREATIO_BASE_URL": "https://<your-tenant>.creatio.com",
"CREATIO_ALLOWED_ENTITIES": "Case,Activity,Contact,Account,SocialMessage",
"CREATIO_MAX_TOP": "50"
}
}
}
}
Foreign keys like
OwnerId/AccountId/StatusIdare not filterable — filter through navigation paths (Owner/Id,Account/Id,Status/Name). SeeCASE-QUERY-REFERENCE.mdfor the full query recipes and gotchas.
Security & data handling
- Read-only: the client issues HTTP
GETonly; there is no write path to Creatio anywhere in the codebase. - Local & single-user: the web app binds to
127.0.0.1, with no app-level auth by design. - Secrets stay local: cookies/credentials live in
.env(git-ignored) and are masked in the UI; AI analysis receives only case text, never cookies. - Bounded reach: entity allowlist +
$topclamp; the file proxy is limited to a fixed set of file entities and GUID ids.
Roadmap
- ✍️ Write-back (Stage 3): draft case replies / status updates with AI, then post them to Creatio on explicit human approval, and verify the write succeeded. This is the planned next step and will be gated, audited, and opt-in — the read-only default stays.
- OAuth 2.0 client-credentials auth for unattended SSO use.
- Pagination past the 50-row cap in the UI; attachment-count badges.
- Optional
ActivityFileinline email images.
Agentic maturity: today the toolkit is Stage 2 — Multi-Step (multi-step, multi-tool, read-only "generate but don't run"); the in-app Analyze feature is Stage 1 — Guided Task. Write-back is what moves it into Stage 3 — Autonomous Workflow.
Scripts
| Script | Does |
|---|---|
npm run build |
Compile TypeScript to dist/ |
npm run app |
Build + start the web app |
npm start |
Start the MCP server (stdio) |
npm run test-auth |
Verify credentials without starting anything |
License
Add a license (e.g. MIT) before publishing.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。