Model Context Protocol (MCP)
Unizo offers an MCP server that integrates communication platforms with any LLM provider supporting the MCP protocol. This enables your AI agent to send messages, manage channels, and automate communication workflows across Slack, Microsoft Teams, Discord, and other messaging platforms via a single MCP server.
Supported Tools & Use Cases
The following tools are available in the Communication MCP Server:
| Tool Name | Description |
|---|---|
comms_list_connectors | Get list of available communication services |
comms_list_integrations | Get integrations for a specific communication service |
comms_list_organizations | Browse organizations with pagination |
comms_get_organization_details | Retrieve detailed organization information |
comms_list_channels | Browse channels within an organization |
comms_get_channel_details | Retrieve detailed channel information |
comms_create_message | Create a new message in a channel |
Tool Reference
Service Discovery Tools
comms_list_connectors
Get list of available communication services
Parameters:
None
Returns:
List of available communication services (e.g., Slack, Microsoft Teams, Discord)
Example Response:
[
{"name": "slack"},
{"name": "microsoft_teams"},
{"name": "discord"},
{"name": "mattermost"}
]
comms_list_integrations
Get integrations for a specific communication service
Parameters:
connector(string, required): Name of the service (e.g., "slack", "microsoft_teams")
Returns: List of integrations available for the specified service
Example Response:
[
{
"id": "integration-123",
"name": "Production Slack Workspace"
},
{
"id": "integration-456",
"name": "Development Teams"
}
]
Organization Management Tools
comms_list_organizations
Browse organizations with pagination and sorting
Parameters:
integration_id(string, required): Unique identifier for the integration
Returns: Paginated list of organizations
Example Response:
{
"status": "success",
"message": "Retrieved 3 organizations",
"data": {
"organizations": [
{
"id": "T01234ABCD",
"login": "acme-workspace",
"name": "Acme Inc Workspace",
"url": "https://acme-inc.slack.com",
"changeLog": {
"createdDateTime": "2020-01-15T10:00:00Z",
"lastUpdatedDateTime": "2024-11-01T14:30:00Z"
}
},
{
"id": "T56789EFGH",
"login": "acme-dev-workspace",
"name": "Acme Development",
"url": "https://acme-dev.slack.com",
"changeLog": {
"createdDateTime": "2021-06-20T11:00:00Z",
"lastUpdatedDateTime": "2024-10-28T16:45:00Z"
}
}
],
"pagination": {
"total": 3,
"offset": 0,
"limit": 20,
"next": null,
"previous": null
},
"total_count": 3
}
}
comms_get_organization_details
Retrieve detailed organization information
Parameters:
integration_id(string, required): Unique identifier for the integrationorganization_id(string, required): Unique identifier of the organization
Returns: Comprehensive organization information
Example Response:
{
"status": "success",
"message": "Retrieved organization details for T01234ABCD",
"data": {
"organization": {
"id": "T01234ABCD",
"login": "acme-workspace",
"name": "Acme Inc Workspace",
"url": "https://acme-inc.slack.com",
"changeLog": {
"createdDateTime": "2020-01-15T10:00:00Z",
"lastUpdatedDateTime": "2024-11-01T14:30:00Z"
}
}
}
}
Channel Management Tools
comms_list_channels
Browse channels within an organization
Parameters:
integration_id(string, required): Unique identifier for the integrationorganization_id(string, required): Unique identifier of the organization
Returns: Paginated list of channels
Example Response:
{
"status": "success",
"message": "Retrieved 15 channels for organization T01234ABCD",
"data": {
"channels": [
{
"id": "C01234ABC",
"name": "general",
"description": "General discussion channel for all team members",
"changeLog": {
"createdDateTime": "2020-01-15T10:30:00Z",
"lastUpdatedDateTime": "2024-11-05T09:30:00Z"
}
},
{
"id": "C56789DEF",
"name": "engineering",
"description": "Engineering team discussions and updates",
"changeLog": {
"createdDateTime": "2020-02-20T11:00:00Z",
"lastUpdatedDateTime": "2024-11-04T16:45:00Z"
}
},
{
"id": "C98765GHI",
"name": "product-announcements",
"description": "Product launch announcements and updates",
"changeLog": {
"createdDateTime": "2020-03-10T14:20:00Z",
"lastUpdatedDateTime": "2024-11-03T10:15:00Z"
}
},
{
"id": "C45678JKL",
"name": "random",
"description": "Off-topic conversations and team bonding",
"changeLog": {
"createdDateTime": "2020-01-15T10:30:00Z",
"lastUpdatedDateTime": "2024-11-05T15:20:00Z"
}
}
],
"pagination": {
"total": 15,
"offset": 0,
"limit": 20,
"next": null,
"previous": null
},
"organization_id": "T01234ABCD",
"parent_id": null,
"total_count": 15
}
}
comms_get_channel_details
Retrieve detailed channel information
Parameters:
integration_id(string, required): Unique identifier for the integrationorganization_id(string, required): Unique identifier of the organizationchannel_id(string, required): Unique identifier of the channel
Returns: Comprehensive channel information
Example Response:
{
"status": "success",
"message": "Retrieved channel details for C01234ABC",
"data": {
"channel": {
"id": "C01234ABC",
"name": "engineering",
"description": "Engineering team discussions, code reviews, and technical updates",
"changeLog": {
"createdDateTime": "2020-02-20T11:00:00Z",
"lastUpdatedDateTime": "2024-11-04T16:45:00Z"
}
},
"organization_id": "T01234ABCD"
}
}
Message Management Tools
comms_create_message
Create a new message in a channel
Parameters:
integration_id(string, required): Unique identifier for the integrationorganization_id(string, required): Unique identifier of the organizationchannel_id(string, required): Unique identifier of the channelmessage_body(string, required): Content of the message to be sent
Returns: Created message information
Example Response:
{
"status": "success",
"message": "Message created successfully in channel C01234ABC",
"data": {
"message": {
"id": "1234567890.123456",
"name": null,
"messageBody": "Hello team! Just wanted to share an update on the latest release.",
"attachments": [],
"changeLog": {
"createdDateTime": "2024-11-06T10:30:00Z",
"lastUpdatedDateTime": "2024-11-06T10:30:00Z"
}
},
"organization_id": "T01234ABCD",
"channel_id": "C01234ABC"
}
}
Example with Attachments:
{
"status": "success",
"message": "Message created successfully in channel C01234ABC",
"data": {
"message": {
"id": "1234567890.123457",
"name": "Q4 Performance Report",
"messageBody": "Please review the Q4 performance metrics attached below.",
"attachments": [
{
"id": "F01234567",
"contentType": "application/pdf",
"authorName": "John Doe",
"title": "Q4_Performance_Report.pdf",
"titleLink": "https://files.slack.com/files-pri/T01234ABCD-F01234567/q4_report.pdf",
"text": "Quarterly performance analysis and KPI tracking",
"fields": [
{
"title": "Size",
"value": "2.5 MB",
"short": true
},
{
"title": "Type",
"value": "PDF Document",
"short": true
}
]
}
],
"changeLog": {
"createdDateTime": "2024-11-06T10:35:00Z",
"lastUpdatedDateTime": "2024-11-06T10:35:00Z"
}
},
"organization_id": "T01234ABCD",
"channel_id": "C01234ABC"
}
}
Installation
Prerequisites
- A Unizo API key
- An active Communications integration (Slack, Google Chat, Microsoft Teams)
- Node.js v20 or higher
MCP Configuration
Here is an example configuration for setting up the Unizo Communications MCP server:
{
"mcpServers": {
"unizo": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.unizo.ai/mcp",
"--header",
"apikey:${UNIZO_API_KEY}",
"--header",
"x-mcp-scopes:comms"
],
"env": {
"UNIZO_API_KEY": "your_api_key"
}
}
}
}
Client Setup
For detailed setup instructions with specific AI clients:
Environment Variables
The following environment variables are required:
UNIZO_API_KEY: Your Unizo API key Your Unizo API key
Error Handling
All tools return errors in a consistent format:
{
"status": "error",
"message": "Channel 'C01234ABC' not found in organization 'T01234ABCD'",
"traceback": "..."
}