A Slack AI assistant powered by Claude 3.5 Sonnet that combines Microsoft's enthusiasm with modern AI capabilities. The bot integrates the Model Context Protocol (MCP) to enable dynamic tool usage and extensibility.
- π€ Microsoft-themed AI assistant with Claude 3.5 Sonnet integration
- π§ Dynamic tool management through MCP (Model Context Protocol)
- π Channel summarization capabilities
- π¬ Threaded conversations with context awareness
- π οΈ Extensible tool system with runtime server management
- Slack workspace with admin permissions
- Anthropic API key
- Node.js installed
- (Optional) Python with uv installed for Python-based tools
Create a .env
file with the following:
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_APP_TOKEN=xapp-your-app-token
ANTHROPIC_API_KEY=your-anthropic-key
- Clone the repository
- Install dependencies:
npm install
- Create and configure your Slack app:
- Create a new Slack app at https://api.slack.com/apps
- Add necessary bot scopes (messages, channels, etc.)
- Install the app to your workspace
- Copy the bot and app tokens to your
.env
file
The bot supports dynamic integration with MCP servers. Two example servers are included:
- Amazon Fresh Server
- Python Local Server
You can add new MCP servers at runtime using the bot's commands:
add_mcp_server [name] [command] [args...]
remove_mcp_server [name]
list_mcp_servers
npm start
Users can request a summary of recent channel activity using the command:
Assistant, please summarize the activity in this channel!
The bot maintains conversation context within threads and can:
- Process message history
- Handle tool calls dynamically
- Maintain consistent Microsoft-themed personality
- Format messages appropriately for Slack
- Dynamic tool discovery from MCP servers
- Runtime server management
- Tool call processing with result handling
- Automatic server reconnection
src/app.ts
: Main application logicsrc/mcp-manager.ts
: MCP server management- Tool servers: Separate processes that provide additional functionality
- Create a new MCP-compatible server
- Add the server using the bot's
add_mcp_server
command - Tools will be automatically discovered and made available
[Add your license information here]