loading…
Search for a command to run...
loading…
MCP server for VTENext CRM (open-source vtiger-based). Query, create and update opportunities and contacts via the WebService API. Available on npm as @castaldo
MCP server for VTENext CRM (open-source vtiger-based). Query, create and update opportunities and contacts via the WebService API. Available on npm as @castaldosolutions/mcp-vtenext.
MCP server for VTENext CRM — exposes the WebService API as tools for Claude and other MCP-compatible clients.
cd mcp/vtenext/server
npm install
cp .env.example .env
Edit .env:
VTENEXT_URL=http://your-vtenext-instance
VTENEXT_USERNAME=admin
VTENEXT_ACCESS_KEY=your_access_key
READ_ONLY=false
The access key is in VTENext under Admin → Users → [user] → Access Key.
Set READ_ONLY=true to prevent any write operation on VTENext. When enabled, the tools create_opportunita, update_opportunita and add_nota_opportunita return an error instead of writing data.
This is useful when the server is used by AI bots or automated agents that should only read CRM data. To run a read-only instance alongside a full-access one, pass the variable via the MCP config:
{
"mcpServers": {
"vtenext-bot": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp/vtenext/server/index.js"],
"env": {
"VTENEXT_URL": "http://your-vtenext-instance",
"VTENEXT_USERNAME": "admin",
"VTENEXT_ACCESS_KEY": "your_access_key",
"READ_ONLY": "true"
}
}
}
}
Add to .mcp.json in your project root:
{
"mcpServers": {
"vtenext": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp/vtenext/server/index.js"]
}
}
}
| Tool | Description |
|---|---|
list_opportunita |
List opportunities with optional filters (status, search, limit) |
get_opportunita |
Get full details of an opportunity by ID |
search_opportunita |
Search opportunities by name |
create_opportunita |
Create a new opportunity (write — blocked in read-only mode) |
update_opportunita |
Update status, amount or notes on an existing opportunity (write — blocked in read-only mode) |
| Tool | Description |
|---|---|
search_contatti |
Search contacts by name, email or company |
| Tool | Description |
|---|---|
add_nota_opportunita |
Add a comment/note to an opportunity (write — blocked in read-only mode) |
list_attivita_opportunita |
List activities linked to an opportunity |
| Tool | Description |
|---|---|
describe_modulo |
Show available fields for any VTENext module |
query_raw |
Run a raw VTQL SELECT query |
VTENext uses the vtiger WebService protocol:
GET /webservice.php?operation=getchallenge → tokenPOST /webservice.php with operation=login (form-encoded) → sessionNameSessions are cached for 4 minutes (token lifetime is 5 minutes).
# Unit tests (no VTENext required)
npm test
# Integration tests (requires live VTENext at VTENEXT_URL)
npm run test:integration
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"castaldo-solutions-mcp-vtenext": {
"command": "npx",
"args": []
}
}
}