Change Log
This document provides a chronological record of all notable changes to Slack MCP Server.
[0.2.0] - 2025-02-04
Enhanced MCP server with structured outputs, resource management, and comprehensive improvements 🎯
🎉 New features
- Structured Output Models: Added comprehensive dataclass models for all MCP tools in
slack_mcp/mcp/model/output.pyfor better type safety and consistency. (PR#276) - Emoji Resource: Added
slack://emojisresource for workspace emoji list, replacing the deprecatedread_slack_emojistool. (PR#276) - Enhanced Metadata: Added comprehensive metadata (
titleandannotations) for all MCP tools to improve LLM discovery and user experience. (PR#276) - Comprehensive Docstrings: Added detailed documentation for all modules, objects, and functions throughout the codebase for better developer experience. (PR#263)
🔄 Changes
- MCP Export Normalization: Normalized MCP exports to clearly distinguish between tools and resources (no behavior changes). (PR#276)
- Consolidated Prompts: Merged instruction prompts into tool docstrings for better LLM discovery and reduced complexity. (PR#276)
- Tool Deprecation: Marked
read_slack_emojistool as deprecated in favor of the newslack://emojisresource. (PR#276) - Pydantic Settings Migration: Migrated from direct environment variable access to Pydantic-based settings models for better type safety and configuration management. (PR#281)
- Dependency Cleanup: Removed
python-dotenvdependency and replaced with Pydantic settings for secret management. (PR#281)
🗑️ Removed
- Prompt Endpoints: Removed explicit
@mcp.promptendpoints (functionality merged into tool descriptions). (PR#276) - python-dotenv: Removed dependency in favor of Pydantic settings for environment variable management. (PR#281)
🧑💻 Developer
- Code Owner Updates: Updated code owner settings for document scope management. (PR#290)
- Enhanced Type Safety: Improved type checking and data validation through Pydantic models. (PR#281)
- Better Configuration Management: Centralized configuration through Pydantic settings with proper secret handling. (PR#281)
🤖 Upgrade dependencies
- Major MCP Upgrade: Bumped MCP from 1.10.1 to 1.23.0 with significant protocol improvements. (PR#285)
- FastAPI Updates: Multiple FastAPI upgrades from 0.121.0 to 0.135.3 for performance and security improvements. ([PRs#270,271,274,258,257,246,241,238,313,339])
- Pydantic Settings Upgrade: Upgraded from 2.10.1 to 2.13.0 for enhanced settings management. ([PRs#286,303])
- Slack SDK Updates: Upgraded slack-sdk from 3.37.0 to 3.39.0 for latest API support. ([PRs#243,237])
- Testing Framework Updates: Upgraded pytest ecosystem (pytest, pytest-cov, pytest-asyncio, pytest-rerunfailures) for better testing capabilities. ([PRs#249,250,248,236])
- Development Tools: Upgraded mypy, pylint, coverage, and pre-commit for enhanced code quality. ([PRs#254,252,247,267,269,244,291])
- Documentation Dependencies: Updated TypeScript from 5.9.3 to 6.0.2 in documentation build. (PR#330)
- Core Python Dependencies: Multiple dependency updates including coverage, ruff, and development tools. ([PRs#291,305,313,339])
[0.1.0] - 2025-11-06
Rule and manage by abstract-backend for the message queue component 🗃️
🍀 Improvements
- Migrate the backend component abstraction as a single Python library abstract-backend (GitHub).
- Improve the secret info loading mechanism to be more flexible and human. (PR#214)
🧑💻 Developer
- Change the GitHub Action to reuse the reusable workflows from the python project reusable GitHub Action project to centralized manage the common usages of CI/CD part.
- Improve the CI/CD workflows which are relative with documentation to reuse common reusabele workflows. (PR#222)
📑 Docs
- Update all the content about the naming usages in documentation.
- Update all the content about the CI/CD usages.
🤖 Upgrade dependencies
- Upgrade the Python dependencies.
- Upgrade pre-commit dependencies.
- Upgrade the CI reusable workflows.
[0.0.2] - 2025-10-23
Newborn project about Slack MCP server 🍻
🎉 New feature
-
Newborn of Slack MCP server project.
- The entry point for the MCP server
>>> slack-mcp-server --help ─╯usage: slack-mcp-server [-h] [--host HOST] [--port PORT] [--transport {stdio,sse,streamable-http}] [--mount-path MOUNT_PATH] [--env-file ENV_FILE] [--no-env-file][--slack-token SLACK_TOKEN] [--integrated] [--retry RETRY] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--log-file LOG_FILE] [--log-dir LOG_DIR][--log-format LOG_FORMAT]Run the Slack MCP serveroptions:-h, --help show this help message and exit--host HOST Host to bind to when using HTTP transport (default: 127.0.0.1)--port PORT Port to bind to when using HTTP transport (default: 8000)--transport {stdio,sse,streamable-http}Transport protocol to use for MCP (studio, sse or streamable-http)--mount-path MOUNT_PATHMount path for HTTP transports (unused for streamable-http transport)--env-file ENV_FILE Path to .env file (default: .env in current directory)--no-env-file Disable loading from .env file--slack-token SLACK_TOKENSlack bot token (overrides SLACK_BOT_TOKEN environment variable)--integrated Run MCP server integrated with webhook server in a single FastAPI application--retry RETRY Number of retry attempts for network operations (default: 3)Logging Options:--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}Set the logging level (default: INFO)--log-file LOG_FILE Path to log file. If not set, logs to console only.--log-dir LOG_DIR Directory to store log files (default: logs)--log-format LOG_FORMATLog message format (default: '%(asctime)s [%(levelname)8s] %(name)s: %(message)s')- The entry point for the webhook server
>>> slack-webhook-server --help ─╯usage: slack-webhook-server [-h] [--host HOST] [--port PORT] [--slack-token SLACK_TOKEN] [--env-file ENV_FILE] [--no-env-file] [--integrated] [--mcp-transport {sse,streamable-http}][--mcp-mount-path MCP_MOUNT_PATH] [--retry RETRY] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--log-file LOG_FILE] [--log-dir LOG_DIR][--log-format LOG_FORMAT]Run the Slack events serveroptions:-h, --help show this help message and exit--host HOST Host to listen on (default: 0.0.0.0)--port PORT Port to listen on (default: 3000)--slack-token SLACK_TOKENSlack bot token to use (overrides SLACK_BOT_TOKEN environment variable)--env-file ENV_FILE Path to .env file (default: .env in current directory)--no-env-file Disable loading from .env file--integrated Run the integrated server with both MCP and webhook functionalities--mcp-transport {sse,streamable-http}Transport to use for MCP server when running in integrated mode (default: sse)--mcp-mount-path MCP_MOUNT_PATHMount path for MCP server when using sse transport (default: /mcp)--retry RETRY Number of retry attempts for network operations (default: 3)Logging Options:--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}Set the logging level (default: INFO)--log-file LOG_FILE Path to log file. If not set, logs to console only.--log-dir LOG_DIR Directory to store log files (default: logs)--log-format LOG_FORMATLog message format (default: '%(asctime)s [%(levelname)8s] %(name)s: %(message)s') -
Support MCP functions:
send_slack_messageread_slack_channel_messagesread_thread_messagessend_slack_thread_replyread_slack_emojisadd_slack_reactions
-
Support handle the Slack event via handler as object-oriented or decorator
📑 Docs
- Provide the details in documentation.
🤖 Upgrade dependencies
- Upgrade the Python dependencies.
- Upgrade pre-commit dependencies.
- Upgrade the CI reusable workflows.
[0.0.1] - 2025-09-25
👨💻 For development
- Just validate the entire release system and release the first edit version package to PyPI.