{"_id":"@castaldosolutions/mcp-vtenext","name":"@castaldosolutions/mcp-vtenext","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@castaldosolutions/mcp-vtenext","version":"1.0.0","description":"MCP server for VTENext CRM — exposes the WebService API as tools for Claude and other MCP clients","main":"index.js","bin":{"mcp-vtenext":"index.js"},"scripts":{"start":"node index.js","test":"vitest run","test:watch":"vitest","test:integration":"vitest run --config vitest.integration.config.js"},"keywords":["mcp","vtenext","vtiger","crm","model-context-protocol","claude","ai"],"author":{"name":"Castaldo Solutions","email":"info@castaldosolutions.it","url":"https://castaldosolutions.it"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/Castaldo-Solutions/mcp-vtenext.git"},"homepage":"https://github.com/Castaldo-Solutions/mcp-vtenext#readme","bugs":{"url":"https://github.com/Castaldo-Solutions/mcp-vtenext/issues"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","axios":"^1.13.6","dotenv":"^17.3.1","zod":"^4.3.6"},"devDependencies":{"@vitest/coverage-v8":"^4.1.0","vitest":"^4.1.0"},"gitHead":"ef95814be2f8782cf5f8e66ff713b51f7b358d2c","_id":"@castaldosolutions/mcp-vtenext@1.0.0","_nodeVersion":"22.17.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-05b9QuLUlDjmPMxk9kJYpYHVWoL5l4ll2C3AwVhzAopfSAa1gbXPg/Gcr/yCa/1CZB8VaFsUDjokdNp2YGw/RQ==","shasum":"0fd6d72a7542815072d89e78de4d5fd9f2d3194a","tarball":"https://registry.npmjs.org/@castaldosolutions/mcp-vtenext/-/mcp-vtenext-1.0.0.tgz","fileCount":9,"unpackedSize":27754,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB62K9gVpsFO0EOk0UGH3hqW0mRJHCakrfEl82z2ITx0AiBTBCQ/6WTLFJpJpn4JGMuseN5qRYRNKpfubpbINgbKqA=="}]},"_npmUser":{"name":"gaetano.castaldo","email":"gaetano@castaldosolutions.it"},"directories":{},"maintainers":[{"name":"gaetano.castaldo","email":"gaetano@castaldosolutions.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-vtenext_1.0.0_1774200539879_0.7628143780192103"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T17:28:59.822Z","1.0.0":"2026-03-22T17:29:00.032Z","modified":"2026-03-22T17:29:00.220Z"},"maintainers":[{"name":"gaetano.castaldo","email":"gaetano@castaldosolutions.it"}],"description":"MCP server for VTENext CRM — exposes the WebService API as tools for Claude and other MCP clients","homepage":"https://github.com/Castaldo-Solutions/mcp-vtenext#readme","keywords":["mcp","vtenext","vtiger","crm","model-context-protocol","claude","ai"],"repository":{"type":"git","url":"git+https://github.com/Castaldo-Solutions/mcp-vtenext.git"},"author":{"name":"Castaldo Solutions","email":"info@castaldosolutions.it","url":"https://castaldosolutions.it"},"bugs":{"url":"https://github.com/Castaldo-Solutions/mcp-vtenext/issues"},"license":"MIT","readme":"# mcp-vtenext\n\nMCP server for VTENext CRM — exposes the WebService API as tools for Claude and other MCP-compatible clients.\n\n## Requirements\n\n- Node.js 18+\n- A running VTENext instance (self-hosted or Docker — see [../docker](../docker))\n\n## Setup\n\n```\ncd mcp/vtenext/server\nnpm install\ncp .env.example .env\n```\n\nEdit `.env`:\n\n```\nVTENEXT_URL=http://your-vtenext-instance\nVTENEXT_USERNAME=admin\nVTENEXT_ACCESS_KEY=your_access_key\n```\n\nThe access key is in VTENext under **Admin → Users → [user] → Access Key**.\n\n## Claude Code integration\n\nAdd to `.mcp.json` in your project root:\n\n```json\n{\n  \"mcpServers\": {\n    \"vtenext\": {\n      \"type\": \"stdio\",\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/mcp/vtenext/server/index.js\"]\n    }\n  }\n}\n```\n\n## Tools\n\n### Opportunità (Potentials)\n\n| Tool | Description |\n|------|-------------|\n| `list_opportunita` | List opportunities with optional filters (status, search, limit) |\n| `get_opportunita` | Get full details of an opportunity by ID |\n| `search_opportunita` | Search opportunities by name |\n| `create_opportunita` | Create a new opportunity |\n| `update_opportunita` | Update status, amount or notes on an existing opportunity |\n\n### Contatti (Contacts)\n\n| Tool | Description |\n|------|-------------|\n| `search_contatti` | Search contacts by name, email or company |\n\n### Attività e note\n\n| Tool | Description |\n|------|-------------|\n| `add_nota_opportunita` | Add a comment/note to an opportunity |\n| `list_attivita_opportunita` | List activities linked to an opportunity |\n\n### Utilità\n\n| Tool | Description |\n|------|-------------|\n| `describe_modulo` | Show available fields for any VTENext module |\n| `query_raw` | Run a raw VTQL SELECT query |\n\n## Authentication\n\nVTENext uses the vtiger WebService protocol:\n\n1. `GET /webservice.php?operation=getchallenge` → token\n2. MD5(token + accessKey) → hashed key\n3. `POST /webservice.php` with `operation=login` (form-encoded) → sessionName\n\nSessions are cached for 4 minutes (token lifetime is 5 minutes).\n\n## Tests\n\n```bash\n# Unit tests (no VTENext required)\nnpm test\n\n# Integration tests (requires live VTENext at VTENEXT_URL)\nnpm run test:integration\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-9286391832c295f1ce4f4e1fc701dcc3"}