SuiteCRM MCP服务器
一 MCP(模型上下文协议) 服务器,使AI助手能够完全访问SuiteCRM实例——使用自然语言在27个模块中搜索、创建、更新、关联和转换记录。与Claude、bolt.new和任何启用MCP的客户端兼容。
21个工具·27个模块·每个模块100多个字段
MCP服务器URL
https://suitecrm-mcp-suite-crm.apps.operations.imola-solutions.com/mcp认证
身份验证完全通过 SuiteCRM OAuth当AI客户端首次连接时,它会被重定向到一个登录页面,用户在该页面上使用现有的SuiteCRM凭据登录。不需要单独的帐户——访问权限是根据用户的SuiteCRM身份授予的,所有操作都尊重该用户的权限。
你能做什么
AI代理可以使用此MCP完成的一些示例:
- *“查找与Ironclad Financial Services相关的所有联系人和机会”*
- *“为Acme Corp的John Smith创建新的潜在客户,来源:网站”*
- *“将潜在客户Jane Doe转换为客户和联系人,并创建25000美元的潜在客户机会”* --在一次工具调用中完成
- *“将测试用户联系到第二季度企业交易机会”*
- *“案例模块中有哪些可用字段?”* --返回所有45个字段及其类型
- *“复制此联系人,但使用不同的电子邮件地址”*
- *“显示CRM中可用的所有模块”* --返回所有27个活动模块
建筑
AI Client (Claude / bolt.new / other)
│
│ HTTP (MCP protocol over StreamableHTTP)
▼
┌─────────────────────────────┐
│ SuiteCRM MCP Server │ (Node.js / Express — deployed on OKD)
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ OAuth │ │ Tools │ │
│ │ (login) │ │ (21) │ │
│ └──────────┘ └──────────┘ │
└─────────────┬───────────────┘
│ SuiteCRM REST API v8 (JSON:API)
▼
┌─────────────────┐
│ SuiteCRM 8 │ (PHP / MariaDB — deployed on OKD)
└─────────────────┘可用工具
账户
| 工具 | 说明 |
|---|---|
search_accounts | 按名称搜索公司。返回ID、姓名、电话、电子邮件、网站和行业。 |
create_account | 创建一家新公司,包括名称、电话、电子邮件、网站、行业和描述。 |
联系人
| 工具 | 说明 |
|---|---|
search_contacts | 按姓名搜索联系人或按公司ID筛选 |
create_contact | 创建一个包含完整详细信息的联系人,可以选择链接到帐户。 |
duplicate_contact | 将现有联系人复制到新记录中。任何字段都可以在副本中被覆盖,这对于在部门或公司之间创建同一个人的变体非常有用。 |
潜在客户
| 工具 | 说明 |
|---|---|
search_leads | 按名称或状态搜索潜在客户(新、已分配、正在处理、已转换…)。 |
create_lead | 创建一个包含姓名、电子邮件、电话、公司、来源和状态的潜在客户。 |
convert_lead | 多步骤转换:从潜在客户数据创建一个帐户和联系人,可选地创建一个Opportunity,并将潜在客户标记为已转换——所有这些都在一次工具调用中完成。 |
机会
| 工具 | 说明 |
|---|---|
search_opportunities | 按名称、公司或销售阶段搜索机会。 |
create_opportunity | 创建一个包含阶段、金额、截止日期和概率的机会。 |
病例
| 工具 | 说明 |
|---|---|
search_cases | 按主题或状态搜索支持案例。 |
任务和注释
| 工具 | 说明 |
|---|---|
create_task | 创建一个具有优先级和截止日期的任务。可以链接到任何模块中的任何记录。 |
create_note | 创建一个注释,并可选择将其附加到任何记录上。 |
一般记录操作
| 工具 | 说明 |
|---|---|
get_record | 按模块名称和ID检索任何记录的每个字段。适用于所有27个模块。 |
update_record | 更新任何记录上的任何字段。跨所有模块工作——一个工具处理帐户、联系人、潜在客户、机会、案例等的更新。 |
delete_record | 按模块和ID永久删除记录 |
get_relationships | 检索与给定记录相关的记录。示例:客户的所有联系人、联系人的所有机会、客户的所有案例、与潜在客户相关的任务。 |
set_relationship | 将任意两条记录链接在一起。示例:将联系人与商机相关联,将任务附加到案例,将文档链接到帐户。 |
发现和用户
| 工具 | 说明 |
|---|---|
get_module_fields | 返回任何模块的每个字段定义——名称、类型、必需标志以及下拉字段的所有有效值。例如,Leads有 106个字段 包括以下枚举 status, lead_source,以及 salutation 以其确切的公认值。在构建或更新记录时消除了猜测。 |
get_available_modules | 列出所有 27个模块 在CRM实例中处于活动状态:帐户、联系人、潜在客户、机会、案例、任务、笔记、电话、会议、文档、活动、合同、发票、报价、项目等。 |
get_current_user | 返回当前已验证用户的姓名、ID和电子邮件。 |
list_users | 列出所有注册的CRM用户,这对于分配记录或按所有者筛选非常有用。 |
连接AI客户端
新螺栓
- 打开bolt.new项目设置。
- 首选 MCP服务器 并添加新服务器。
- 将URL设置为上面的MCP服务器端点。
- 将身份验证方法设置为OAuth。
- 单击连接按钮。
- bolt.new会将您重定向到SuiteCRM登录页面。使用您的SuiteCRM凭据登录。
- 一旦通过身份验证,所有21个工具都可以在您的AI助手中使用。
克劳德桌面(通过mcp远程)
mcp-remote 是一个让Claude Desktop连接到远程HTTP MCP服务器的网桥。
1.安装mcp远程:
npm install -g mcp-remote2.编辑您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"suitecrm": {
"command": "npx",
"args": [
"mcp-remote",
"https://suitecrm-mcp-suite-crm.apps.operations.imola-solutions.com/mcp"
]
}
}
}3.重新启动克劳德桌面。
浏览器窗口将打开,要求您使用SuiteCRM凭据登录。登录后,Claude Desktop将可以访问所有CRM工具。
克劳德代码(CLI)
将服务器添加到项目的 .mcp.json:
{
"mcpServers": {
"suitecrm": {
"type": "http",
"url": "https://suitecrm-mcp-suite-crm.apps.operations.imola-solutions.com/mcp"
}
}
}______________________________________________________________________
在OpenShift/OKD上部署
这 k8s/ 目录包含在OpenShift上部署SuiteCRM和MCP服务器所需的所有清单。
先决条件
ocCLI已通过OKD集群的身份验证- 正在运行且可访问的SuiteCRM实例
- 在中配置的OAuth2客户端 SuiteCRM管理员→ OAuth2客户端
所需的环境变量
在部署之前在Kubernetes Secret中配置这些:
| 变量 | 描述 |
|---|---|
SUITECRM_URL | SuiteCRM实例的内部或公共URL |
PUBLIC_URL | MCP服务器可访问的公共URL |
SUITECRM_OAUTH_PATH | OAuth令牌端点路径(通常 /Api/access_token) |
SUITECRM_OAUTH_CLIENT_ID | SuiteCRM中的OAuth2客户端ID |
SUITECRM_OAUTH_CLIENT_SECRET | SuiteCRM的OAuth2客户端机密 |
构建和部署
# Build and push image from local source
oc start-build suitecrm-mcp --from-dir=mcp-server --follow -n
# Restart the deployment to pick up the new image
oc rollout restart deployment/suitecrm-mcp -n
# Verify
oc rollout status deployment/suitecrm-mcp -n SuiteCRM RSA密钥
SuiteCRM的OAuth2服务器需要RSA密钥对来对令牌进行签名。这些必须出现在:
/var/www/html/public/legacy/Api/V8/OAuth2/private.key
/var/www/html/public/legacy/Api/V8/OAuth2/public.key要在pod重启时持久化它们,请将它们作为Kubernetes Secret挂载:
# Generate keys
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
# Create secret
oc create secret generic suitecrm-oauth-keys \
--from-file=private.key=private.key \
--from-file=public.key=public.key \
-n 然后将密钥装载到SuiteCRM部署的上述路径中。
______________________________________________________________________
项目结构
CRM/
├── README.md
├── k8s/ # OpenShift/Kubernetes manifests
│ ├── 00-imagestream.yaml
│ ├── 01-buildconfig.yaml
│ ├── 02-secret.yaml # MariaDB credentials
│ ├── 03-mariadb.yaml
│ ├── 04-suitecrm.yaml
│ ├── 05-route.yaml
│ └── 06-mcp-server.yaml # MCP server deployment
└── mcp-server/ # MCP server source code
├── Dockerfile
├── package.json
├── tsconfig.json
└── src/
├── index.ts # Express app entry point
├── config.ts # Environment variable config
├── auth/
│ └── middleware.ts # Bearer token validation
├── oauth/
│ └── server.ts # OAuth2 authorization server
├── suitecrm/
│ └── client.ts # SuiteCRM API client
└── tools/
├── index.ts # Tool registration
├── read.ts # Read tools
└── write.ts # Write tools技术说明
- 27个模块,21个工具:涵盖从潜在客户捕获到合同关闭的整个CRM生命周期。
- PHP通知处理PHP 8上的SuiteCRM 8发出混合在HTTP响应中的弃用通知。MCP服务器会自动剥离这些数据并提取干净的JSON。
- 无状态:每个MCP请求都会创建一个新的服务器实例——不存储会话状态。
- 令牌验证:通过对SuiteCRM用户API进行实际调用来验证OAuth令牌。如果SuiteCRM拒绝令牌,则MCP请求将被拒绝。
- 权限:MCP服务器不强制执行其自己的权限模型-SuiteRM对每个API调用强制执行真正的权限。
