@atendium/nexus-mcp-server
v0.1.2
Published
Nexus MCP server for shared stdio integrations
Readme
@atendium/nexus-mcp-server
Shared MCP server for CRM integrations over stdio.
The package talks only to the tenant-scoped external CRM API using an API key.
Environment
CRM_API_URL=https://nexus-api.atendium.com
CRM_API_KEY=your_api_keyRun
npx @atendium/nexus-mcp-serverOr after installing in a workspace:
nexus-mcp-serverMCP config example
{
"mcpServers": {
"crm": {
"command": "npx",
"args": ["-y", "@atendium/nexus-mcp-server"],
"env": {
"CRM_API_URL": "https://nexus-api.atendium.com",
"CRM_API_KEY": "your_api_key"
}
}
}
}Transport
stdioonly
Tools
Required parameters are marked with *.
| Tool | Description | Parameters |
| --- | --- | --- |
| get_workspace_profile | Returns tenant settings, subscription and custom field metadata. | None |
| update_workspace_profile | Updates tenant settings. | currencyCode, timezone, dateFormat, currencyFormat, notifications, marketingEmail, customFields |
| list_contacts | Lists contacts with pagination and filters. | search, page, perPage, ownerId, companyId, tagId |
| get_contact | Fetches one contact workspace. | contactId* |
| create_contact | Creates a contact. At least email or phone is required by the API. | firstName, lastName, email, phone, ownerId, companyId, lifecycleState, tagIds, customFields |
| update_contact | Updates a contact. tagIds adds tags to the contact. | contactId*, firstName, lastName, email, phone, ownerId, companyId, lifecycleState, tagIds, customFields |
| delete_contact | Deletes a contact. | contactId* |
| list_companies | Lists companies with pagination and filters. | search, page, perPage, ownerId |
| get_company | Fetches one company. | companyId* |
| create_company | Creates a company. | name*, website, ownerId, customFields |
| update_company | Updates a company. | companyId*, name, website, ownerId, customFields |
| delete_company | Deletes a company. | companyId* |
| list_custom_fields | Returns tenant custom field catalog. | None |
| list_deals | Lists deals with filters. | search, status, stageId, pipelineId, ownerId, contactId, companyId |
| get_deal | Fetches one deal. | dealId* |
| create_deal | Creates a deal. | title*, value*, currency*, stageId*, description, contactId, companyId, tagIds |
| update_deal | Updates a deal. | dealId*, title, description, value, currency, status, stageId, tagIds |
| delete_deal | Deletes a deal. | dealId* |
| move_deal_stage | Moves a deal to another stage. | dealId*, stageId* |
| move_deal_to_pipeline_stage | Moves a deal to a stage inside a specific pipeline. | dealId*, pipelineId*, stageId* |
| advance_deal_to_next_stage | Moves a deal to the next stage in its current pipeline. | dealId* |
| move_deal_to_previous_stage | Moves a deal to the previous stage in its current pipeline. | dealId* |
| list_pipelines | Lists pipelines. | None |
| create_pipeline | Creates a pipeline. | name*, isDefault |
| update_pipeline | Updates a pipeline. | pipelineId*, name, isDefault |
| delete_pipeline | Deletes a pipeline, optionally moving open deals first. | pipelineId*, targetPipelineId |
| list_stages | Lists stages. | pipelineId |
| create_stage | Creates a stage. | pipelineId*, name*, position*, probability*, slaMinutes |
| update_stage | Updates a stage. | stageId*, name, position, probability, slaMinutes |
| reorder_stages | Reorders stages in a pipeline. | pipelineId*, stageIds* |
| delete_stage | Deletes a stage. | stageId* |
| list_activities | Lists activities with filters and pagination. | page, perPage, type, activityState, relation, dealStatus |
| create_activity | Creates an activity. | type*, contactId, dealId, title, description, dueAt |
| complete_activity | Marks an activity as completed. | activityId* |
| list_notes | Lists notes. | dealId, contactId |
| create_note | Creates a note. | body*, dealId, contactId |
| update_note | Updates a note body. | noteId*, body* |
| delete_note | Deletes a note. | noteId* |
| list_audit_logs | Lists audit logs for an entity. | entityType*, entityId* |
| list_saved_views | Lists saved views. | module* |
| create_saved_view | Creates a saved view. | module*, name*, filters, isDefault |
| update_saved_view | Updates a saved view. | viewId*, module, name, filters, isDefault |
| delete_saved_view | Deletes a saved view. | viewId* |
| list_tags | Lists tags. | search |
| create_tag | Creates a tag. | name*, color |
| list_contact_event_definitions | Lists tenant-defined contact events. | search, includeInactive |
| create_contact_event_definition | Creates a contact event definition. | name*, key*, description, isActive |
| update_contact_event_definition | Updates a contact event definition. | definitionId*, name, key, description, isActive |
| delete_contact_event_definition | Deletes a contact event definition. | definitionId* |
| ingest_contact_event | Records a contact event. Target contact can be resolved by contactId, email or phone. | contactId, email, phone, definitionId, eventKey, source, occurredAt, payload |
| list_users | Lists tenant users. | None |
| create_user | Creates a tenant user. | email*, fullName*, role*, teamId |
| update_user | Updates a tenant user. | userId*, email, fullName, role, teamId, isActive, password |
| deactivate_user | Deactivates a tenant user. | userId* |
| list_roles | Lists tenant roles and permissions. | None |
| list_teams | Lists tenant teams. | None |
| create_team | Creates a tenant team. | name* |
| update_team | Updates a tenant team. | teamId*, name* |
| delete_team | Deletes a tenant team. | teamId* |
| list_api_keys | Lists tenant API keys. | None |
| create_api_key | Creates a tenant API key. | name*, scopes, expiresAt |
| revoke_api_key | Revokes a tenant API key. | apiKeyId* |
Parameter Details
dateFormat: one ofyyyy-MM-dd,dd/MM/yyyy,MM/dd/yyyy.currencyFormat: one ofsymbol,code,accounting.notifications: object with optional booleansemail,inApp,desktop,dailyDigest,slaAlerts.marketingEmail: object with optionalfromName,fromEmail,replyTo,footerCompany,footerAddress,footerWebsite.customFields: object with optionalcontactsandcompaniesarrays.lifecycleState: one ofnew,qualified,customer,inactive,disqualified.- Contact
tagIds: array of tag UUIDs. Onupdate_contact, values are added; existing tags are preserved. - Deal
status: one ofopen,won,lost. - Activity
type: one ofcall,task,meeting,email. - Activity
activityState: one ofopen,completed,overdue. - Activity
relation: one ofdeal,contact,none. - Activity
dealStatus: one ofopen,won,lost,without_deal. - Audit
entityType: one oflead,deal,contact,company. - Saved view
module: one ofdeals,contacts,companies. dueAt,occurredAtandexpiresAtare ISO datetime strings.filters,customFieldsandpayloadare JSON objects.
