Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Empty file modified .env.dist
100644 → 100755
Empty file.
33 changes: 0 additions & 33 deletions .github/workflows/integration-tests.yaml

This file was deleted.

43 changes: 0 additions & 43 deletions .github/workflows/release-image.yaml

This file was deleted.

55 changes: 0 additions & 55 deletions .github/workflows/release.yaml

This file was deleted.

29 changes: 0 additions & 29 deletions .github/workflows/unit-tests.yaml

This file was deleted.

Empty file modified .gitignore
100644 → 100755
Empty file.
Empty file modified .vscode/launch.json
100644 → 100755
Empty file.
Empty file modified Dockerfile
100644 → 100755
Empty file.
Empty file modified LICENSE
100644 → 100755
Empty file.
Empty file modified Makefile
100644 → 100755
Empty file.
33 changes: 32 additions & 1 deletion README.md
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,25 @@ This feature-rich Slack MCP Server has:

## Tools

### Attachment Data Format

When working with attachment tools, the response includes the following fields:
- `id`: Unique file ID
- `name`: Original filename
- `title`: File title (if set)
- `mimeType`: MIME type (e.g., `image/png`, `application/pdf`)
- `fileType`: File extension (e.g., `png`, `pdf`)
- `size`: File size in bytes
- `url`: Public URL (if available)
- `urlPrivate`: Private URL requiring authentication
- `permalink`: Slack permalink to the file
- `messageID`: Timestamp of the message containing the attachment
- `channelID`: Channel where the attachment was posted
- `userID`: ID of the user who uploaded the file
- `userName`: Username of the uploader
- `timestamp`: When the file was uploaded
- `authToken`: Bearer token needed to access private URLs (format: `Bearer xoxc-...`)

### 1. conversations_history:
Get messages from the channel (or DM) by channel_id, the last row/column in the response is used as 'cursor' parameter for pagination if not empty
- **Parameters:**
Expand Down Expand Up @@ -76,7 +95,19 @@ Search messages in a public channel, private channel, or direct message (DM, or
- `cursor` (string, default: ""): Cursor for pagination. Use the value of the last row and column in the response as next_cursor field returned from the previous request.
- `limit` (number, default: 20): The maximum number of items to return. Must be an integer between 1 and 100.

### 5. channels_list:
### 5. messages_with_attachments:
Search for messages that contain file attachments in a specific channel
- **Parameters:**
- `channel_id` (string, required): ID of the channel in format Cxxxxxxxxxx or its name starting with `#...` or `@...` aka `#general` or `@username_dm`.
- `limit` (number, default: 100): The maximum number of messages to return. Must be an integer between 1 and 100.
- `cursor` (string, optional): Cursor for pagination. Use the value returned from the previous request.

### 6. get_attachment_details:
Get detailed information about a specific file attachment including MIME type, URL, and auth token
- **Parameters:**
- `file_id` (string, required): The ID of the file attachment to get details for.

### 7. channels_list:
Get list of channels
- **Parameters:**
- `channel_types` (string, required): Comma-separated channel types. Allowed values: `mpim`, `im`, `public_channel`, `private_channel`. Example: `public_channel,private_channel,im`
Expand Down
Empty file modified SECURITY.md
100644 → 100755
Empty file.
Empty file modified build/.gitignore
100644 → 100755
Empty file.
Empty file modified build/extension.dxt/server/.gitignore
100644 → 100755
Empty file.
Binary file added build/slack-mcp-server
Binary file not shown.
7 changes: 4 additions & 3 deletions cmd/slack-mcp-server/main.go
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@ import (
"strings"
"sync"

"github.com/korotovsky/slack-mcp-server/pkg/provider"
"github.com/korotovsky/slack-mcp-server/pkg/server"
"github.com/mattn/go-isatty"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"

"slack-mcp-server/pkg/provider"
"slack-mcp-server/pkg/server"
)

var defaultSseHost = "127.0.0.1"
var defaultSsePort = 13080
var defaultSsePort = 3001

func main() {
var transport string
Expand Down
Empty file modified docker-compose.dev.yml
100644 → 100755
Empty file.
Empty file modified docker-compose.toolkit.yml
100644 → 100755
Empty file.
Empty file modified docker-compose.yml
100644 → 100755
Empty file.
Empty file modified docs/01-authentication-setup.md
100644 → 100755
Empty file.
Empty file modified docs/02-installation.md
100644 → 100755
Empty file.
Empty file modified docs/03-configuration-and-usage.md
100644 → 100755
Empty file.
4 changes: 2 additions & 2 deletions go.mod
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/korotovsky/slack-mcp-server
module slack-mcp-server

go 1.24.4
go 1.25

require (
github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1
Expand Down
97 changes: 97 additions & 0 deletions go.mod.orig
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
module github.com/korotovsky/slack-mcp-server

go 1.25

require (
github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1
github.com/google/uuid v1.6.0
github.com/mark3labs/mcp-go v0.40.0
github.com/mattn/go-isatty v0.0.20
github.com/openai/openai-go v1.11.0
github.com/refraction-networking/utls v1.8.0
github.com/rusq/slack v0.9.6-0.20250408103104-dd80d1b6337f
github.com/rusq/slackauth v0.6.1
github.com/rusq/slackdump/v3 v3.1.6
github.com/rusq/tagops v0.1.1
github.com/slack-go/slack v0.17.1
github.com/stretchr/testify v1.10.0
github.com/takara2314/slack-go-util v0.2.0
go.uber.org/zap v1.27.0
golang.ngrok.com/ngrok/v2 v2.0.0
golang.org/x/net v0.40.0
golang.org/x/sync v0.14.0
golang.org/x/time v0.12.0
)

require (
github.com/MercuryEngineering/CookieMonster v0.0.0-20180304172713-1584578b3403 // indirect
github.com/andybalholm/brotli v1.0.6 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/catppuccin/go v0.3.0 // indirect
github.com/charmbracelet/bubbles v0.21.0 // indirect
github.com/charmbracelet/bubbletea v1.3.5 // indirect
github.com/charmbracelet/colorprofile v0.3.1 // indirect
github.com/charmbracelet/huh v0.7.0 // indirect
github.com/charmbracelet/huh/spinner v0.0.0-20250519092748-d6f1597485e0 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.9.2 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
github.com/charmbracelet/x/exp/strings v0.0.0-20250520193441-8304e91a28cb // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set/v2 v2.8.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/go-jose/go-jose/v3 v3.0.4 // indirect
github.com/go-rod/rod v0.116.2 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/inconshreveable/log15 v3.0.0-testing.5+incompatible // indirect
github.com/inconshreveable/log15/v3 v3.0.0-testing.5 // indirect
github.com/invopop/jsonschema v0.13.0 // indirect
github.com/joho/godotenv v1.5.1 // indirect
github.com/jpillora/backoff v1.0.0 // indirect
github.com/klauspost/compress v1.17.4 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/playwright-community/playwright-go v0.5200.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
github.com/rusq/chttp v1.1.0 // indirect
github.com/rusq/fsadapter v1.1.0 // indirect
github.com/spf13/cast v1.7.1 // indirect
github.com/tidwall/gjson v1.17.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/tidwall/sjson v1.2.5 // indirect
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
github.com/ysmood/fetchup v0.3.0 // indirect
github.com/ysmood/goob v0.4.0 // indirect
github.com/ysmood/got v0.40.0 // indirect
github.com/ysmood/gson v0.7.3 // indirect
github.com/ysmood/leakless v0.9.0 // indirect
github.com/yuin/goldmark v1.7.12 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.ngrok.com/muxado/v2 v2.0.1 // indirect
golang.org/x/crypto v0.38.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/term v0.32.0 // indirect
golang.org/x/text v0.25.0 // indirect
google.golang.org/protobuf v1.35.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Empty file modified go.sum
100644 → 100755
Empty file.
Empty file modified images/feature-1.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified images/feature-2.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified images/icon.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified manifest-dxt.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server-darwin-amd64/package.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server-darwin-arm64/package.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server-linux-amd64/package.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server-linux-arm64/package.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server-windows-amd64/package.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server-windows-arm64/package.json
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server/bin/index.js
100644 → 100755
Empty file.
Empty file modified npm/slack-mcp-server/package.json
100644 → 100755
Empty file.
Binary file added pkg/.DS_Store
Binary file not shown.
Loading