Markdown Converter
Agent skill for markdown-converter
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Slack MCP (Model Context Protocol) Server written in Go that provides semantic tools for intelligent Slack workspace interaction. It implements an OODA loop (Observe-Orient-Decide-Act) pattern for comprehensive workspace awareness and response workflows. The server supports both stdio and SSE transports and doesn't require special workspace permissions.
# Build for current platform make build # Build for all platforms (darwin, linux, windows × amd64, arm64) make build-all-platforms # Run tests make test # Format code make format # Tidy dependencies make tidy # Clean build artifacts make clean
# Run with stdio transport (default) go run cmd/slack-mcp-server/main.go --transport stdio # Run with SSE transport go run cmd/slack-mcp-server/main.go --transport sse
# Copy binaries to npm packages and publish make npm-publish NPM_TOKEN=your-token NPM_VERSION=x.y.z # Or just copy binaries without publishing make npm-copy-binaries
# Create a new release tag make release TAG=v1.2.3
The server implements an Observe-Orient-Decide-Act pattern for intelligent Slack interaction:
Observe (Situational Awareness):
check-unreads: Overview of unread activity across workspacecatch-up-on-channel: Detailed channel activity summariescheck-my-mentions: Personal mentions and direct attention itemslist-channels: Available channels and membership statusOrient (Context Analysis):
Decide (Action Planning):
decide-next-action: Basic reflection tool for next stepsAct (Response Execution):
find-discussion: Deep exploration of specific threads/topicsmark-as-read: Bulk management of read statesTools implement self-deprecating recommendations - basic tools actively suggest better specialized alternatives:
cmd/slack-mcp/: Entry point with transport selection (stdio/sse)pkg/server/: MCP server implementation with semantic tool registrationpkg/provider/: Slack API client provider with two-phase caching architecturepkg/features/: Semantic tool implementations organized by OODA phasepkg/transport/: HTTP transport wrapper for authenticationpkg/text/: Text processing utilities (stopword filtering, analysis)API Provider (
pkg/provider/api.go):
GetConversationsForUser - loads user's member channels immediatelyGetConversations - background loading of all workspace channels.users_cache.json with persistent channel mappingsSemantic Server (
pkg/server/semantic_server.go):
Feature Tools (
pkg/features/):
provider.ResolveChannelID() instead of direct API callsObserve Phase Tools:
check-unreads: Enhanced with count-based windowing and auto-mark-as-read
catch-up-on-channel: Analyzes recent channel activity with importance scoringcheck-my-mentions: Focuses on personal mentions with urgency assessmentlist-channels: Shows available channels with membership and activity statusOrient Phase Tools:
check-unreadsDecide Phase Tools:
decide-next-action: Basic reflection tool with extensibility recommendationsAct Phase Tools:
find-discussion: Deep thread exploration and search functionalitymark-as-read: Bulk read state management with scope controlswrite-message: Send messages to channels, DMs, or threads with smart user/channel resolutionComplete workflow: "Anything new from [Person]?"
check-unreads → detects unread DMs and mentionsdecide-next-action → analyzes context and suggests response approachwrite-message → compose and send appropriate responseCount-based Reading Policy:
This policy ensures reading correlates with actual content consumption and prevents accidentally "clearing" conversations that haven't been fully processed.
Write-Message Features:
#general), usernames (clayton.chancey), or IDsthreadTs parameterRequired:
SLACK_MCP_XOXC_TOKEN: Slack workspace token (xoxc-...)SLACK_MCP_XOXD_TOKEN: Slack cookie value (xoxd-...)Optional:
SLACK_MCP_SERVER_HOST: Server host (default: 127.0.0.1)SLACK_MCP_SERVER_PORT: Server port (default: 3001)SLACK_MCP_SSE_API_KEY: Bearer token for SSE authenticationSLACK_MCP_PROXY: HTTP proxy URLSLACK_MCP_SERVER_CA: Path to CA certificateSLACK_MCP_SERVER_CA_INSECURE: Skip TLS verification (not recommended)SLACK_MCP_USERS_CACHE: User cache file path (default: .users_cache.json)The project includes Docker configurations:
Dockerfile: Multi-stage build for minimal imagedocker-compose.yml: Production deploymentdocker-compose.dev.yml: Development setupdocker-compose.toolkit.yml: Additional toolsDocker images are published to
ghcr.io/korotovsky/slack-mcp-server.