Model Context Protocol server for intelligent Slack workspace interaction using OODA Loop pattern (Observe-Orient-Decide-Act) for comprehensive workspace awareness and semantic response workflows
A Model Context Protocol (MCP) server written in Go that provides semantic tools for intelligent Slack workspace interaction. Implements an OODA loop (Observe-Orient-Decide-Act) pattern for comprehensive workspace awareness and response workflows without requiring admin permissions.
This server enables AI-driven Slack workspace interaction through a structured semantic workflow. It supports both stdio and SSE transports and uses a two-phase channel caching architecture for fast, secure access to workspace data.
The server organizes tools into four phases for intelligent interaction:
**Observe (Situational Awareness)**:
**Orient (Context Analysis)**:
**Decide (Action Planning)**:
**Act (Response Execution)**:
Tools implement **self-deprecating recommendations** where basic tools actively suggest better specialized alternatives. This creates upgrade paths from simple to sophisticated workflows while maintaining a tool hierarchy: specialized > fallback > manual construction.
The `check-unreads` tool uses intelligent windowing:
This ensures reading correlates with actual content consumption.
```bash
git clone <repository-url>
cd slack-mcp-server
make tidy
export SLACK_MCP_XOXC_TOKEN="xoxc-..."
export SLACK_MCP_XOXD_TOKEN="xoxd-..."
```
```bash
make build
make build-all-platforms
make test
make format
make clean
```
```bash
go run cmd/slack-mcp-server/main.go --transport stdio
go run cmd/slack-mcp-server/main.go --transport sse
```
```bash
docker-compose -f docker-compose.dev.yml up
docker-compose up
docker-compose -f docker-compose.toolkit.yml up
```
Docker images available at `ghcr.io/korotovsky/slack-mcp-server`.
**Required**:
**Optional**:
The API provider (`pkg/provider/api.go`) implements fast channel loading:
All tools use channel names instead of IDs to prevent exposing internal identifiers to AI systems. The provider handles resolution through cached mappings.
Combines reactive (Slack RetryAfter headers) and proactive (2-second delays) rate limiting. User data persists to `.users_cache.json` with channel mappings.
```
cmd/slack-mcp-server/ # Entry point with transport selection
pkg/
├── server/ # MCP server with semantic tool registration
├── provider/ # Slack API client with two-phase caching
├── features/ # Semantic tools organized by OODA phase
├── transport/ # HTTP transport wrapper for auth
└── text/ # Text processing utilities
```
```bash
make npm-publish NPM_TOKEN=your-token NPM_VERSION=x.y.z
make npm-copy-binaries
make release TAG=v1.2.3
```
**Complete "Anything new from [Person]?" workflow**:
1. **Observe**: Run `check-unreads` to detect unread DMs and mentions
2. **Orient**: Enhanced tool shows actual message content with count-based windowing
3. **Decide**: Use `decide-next-action` to analyze context and suggest response approach
4. **Act**: Execute `write-message` to compose and send appropriate response
The count-based policy ensures you only auto-mark messages as read when they've been fully consumed (1-15 messages), while keeping larger volumes unread for follow-up.
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/slack-mcp-ooda-loop-server/raw