22 Commits

Author SHA1 Message Date
Paymahn Moghadasian d781728c6c feat: slack-cli — a no-daemon CLI over the slack-mcp-server engine (#1)
* feat: add slack-cli, a no-daemon CLI over the slack-mcp-server engine

Turn the forked slack-mcp-server into a CLI so running many agents no
longer means one resident MCP process each. Every command is a
short-lived process that reads the shared on-disk cache.

- rename module to github.com/paymog/slack-cli (go install/homebrew/ldflags)
- internal/toolcall: invoke the upstream tool handlers in-process; the only
  mcp-go coupling lives here, so pkg/handler and pkg/provider are reused
  byte-for-byte (clean upstream merges, fork-and-extend)
- internal/{cli,cmds,config,credstore,runtime,output}: cobra command tree,
  keyring-backed credential profiles, provider bootstrap, result printing
- 21 tools as subcommands (channels, conversations, users, usergroups,
  saved, reactions, attachments, cache); write tools keep their env gating
- goreleaser + homebrew release workflow; ships a skills/slack-cli skill
- unit tests for config/credstore/toolcall; MCP server still builds

The MCP server (cmd/slack-mcp-server) is kept intact.

* chore(napkin): record real-workspace verification

* docs: explain how the CLI works (in-process handler invocation, shared cache)
2026-06-26 12:45:38 -05:00
Dmitrii Korotovskii 01f0ad4525 Revert "Merge pull request #292 from korotovsky/dependabot/go_modules/go-dependencies-f46f41233a"
This reverts commit 400c900774, reversing
changes made to 19e8a0c7b1.
2026-05-14 23:07:52 +02:00
dependabot[bot] 781cc51f20 deps(go): bump the go-dependencies group across 1 directory with 9 updates
Bumps the go-dependencies group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) | `0.44.0` | `0.54.0` |
| [github.com/mattn/go-isatty](https://github.com/mattn/go-isatty) | `0.0.20` | `0.0.22` |
| [github.com/slack-go/slack](https://github.com/slack-go/slack) | `0.19.0` | `0.23.1` |
| [github.com/takara2314/slack-go-util](https://github.com/takara2314/slack-go-util) | `0.4.0` | `0.4.1` |
| [go.uber.org/zap](https://github.com/uber-go/zap) | `1.27.1` | `1.28.0` |
| [golang.ngrok.com/ngrok/v2](https://github.com/ngrok/ngrok-go) | `2.1.1` | `2.1.4` |
| [golang.org/x/net](https://github.com/golang/net) | `0.50.0` | `0.54.0` |
| [golang.org/x/time](https://github.com/golang/time) | `0.14.0` | `0.15.0` |



Updates `github.com/mark3labs/mcp-go` from 0.44.0 to 0.54.0
- [Release notes](https://github.com/mark3labs/mcp-go/releases)
- [Commits](https://github.com/mark3labs/mcp-go/compare/v0.44.0...v0.54.0)

Updates `github.com/mattn/go-isatty` from 0.0.20 to 0.0.22
- [Commits](https://github.com/mattn/go-isatty/compare/v0.0.20...v0.0.22)

Updates `github.com/slack-go/slack` from 0.19.0 to 0.23.1
- [Release notes](https://github.com/slack-go/slack/releases)
- [Changelog](https://github.com/slack-go/slack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/slack-go/slack/compare/v0.19.0...v0.23.1)

Updates `github.com/takara2314/slack-go-util` from 0.4.0 to 0.4.1
- [Release notes](https://github.com/takara2314/slack-go-util/releases)
- [Commits](https://github.com/takara2314/slack-go-util/compare/v0.4.0...v0.4.1)

Updates `go.uber.org/zap` from 1.27.1 to 1.28.0
- [Release notes](https://github.com/uber-go/zap/releases)
- [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uber-go/zap/compare/v1.27.1...v1.28.0)

Updates `golang.ngrok.com/ngrok/v2` from 2.1.1 to 2.1.4
- [Release notes](https://github.com/ngrok/ngrok-go/releases)
- [Changelog](https://github.com/ngrok/ngrok-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ngrok/ngrok-go/compare/v2.1.1...v2.1.4)

Updates `golang.org/x/net` from 0.50.0 to 0.54.0
- [Commits](https://github.com/golang/net/compare/v0.50.0...v0.54.0)

Updates `golang.org/x/sync` from 0.19.0 to 0.20.0
- [Commits](https://github.com/golang/sync/compare/v0.19.0...v0.20.0)

Updates `golang.org/x/time` from 0.14.0 to 0.15.0
- [Commits](https://github.com/golang/time/compare/v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: github.com/mark3labs/mcp-go
  dependency-version: 0.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: github.com/mattn/go-isatty
  dependency-version: 0.0.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-dependencies
- dependency-name: github.com/slack-go/slack
  dependency-version: 0.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: github.com/takara2314/slack-go-util
  dependency-version: 0.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: go.uber.org/zap
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.ngrok.com/ngrok/v2
  dependency-version: 2.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-dependencies
- dependency-name: golang.org/x/net
  dependency-version: 0.53.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/sync
  dependency-version: 0.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/time
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-14 20:25:25 +00:00
Dmitrii Korotovskii bee5d73883 deps: bump jsonparser v1.1.1→v1.1.2 and go-jose/v3 v3.0.4→v3.0.5
Resolves the two HIGH-severity findings from the Trivy filesystem scan:
- CVE-2026-32285 (github.com/buger/jsonparser, fixed in v1.1.2)
- CVE-2026-34986 (github.com/go-jose/go-jose/v3, fixed in v3.0.5)

Both are indirect deps, bumped via `go get` + `go mod tidy`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 22:23:24 +02:00
Arnold Mendez 97b24505c9 feat: add blocks parameter and bump slack-go-util to v0.4.0
Add optional `blocks` parameter to conversations_add_message for raw
Slack Block Kit JSON support (rich_text lists, code blocks, etc.).

When blocks is provided it takes precedence over text/content_type for
message rendering. The text parameter serves as notification fallback.

The blocks argument accepts both a JSON string and a raw JSON array to
accommodate different MCP client serialization behaviors.

Also bumps takara2314/slack-go-util from v0.3.0 to v0.4.0 which adds
nested list support to the existing text/markdown conversion path.
2026-05-07 10:10:53 -04:00
dependabot[bot] 53e7f03443 deps(go): bump the go-dependencies group across 1 directory with 2 updates
Bumps the go-dependencies group with 2 updates in the / directory: [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) and [golang.org/x/net](https://github.com/golang/net).


Updates `github.com/mark3labs/mcp-go` from 0.43.2 to 0.44.0
- [Release notes](https://github.com/mark3labs/mcp-go/releases)
- [Commits](https://github.com/mark3labs/mcp-go/compare/v0.43.2...v0.44.0)

Updates `golang.org/x/net` from 0.49.0 to 0.50.0
- [Commits](https://github.com/golang/net/compare/v0.49.0...v0.50.0)

---
updated-dependencies:
- dependency-name: github.com/mark3labs/mcp-go
  dependency-version: 0.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/net
  dependency-version: 0.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-19 17:17:37 +00:00
dependabot[bot] 3e8cbab107 deps(go): bump github.com/rusq/slackdump/v3 in the go-dependencies group
Bumps the go-dependencies group with 1 update: [github.com/rusq/slackdump/v3](https://github.com/rusq/slackdump).


Updates `github.com/rusq/slackdump/v3` from 3.1.11 to 3.1.13
- [Release notes](https://github.com/rusq/slackdump/releases)
- [Commits](https://github.com/rusq/slackdump/compare/v3.1.11...v3.1.13)

---
updated-dependencies:
- dependency-name: github.com/rusq/slackdump/v3
  dependency-version: 3.1.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-05 17:17:34 +00:00
dependabot[bot] 940e87365b deps(go): bump the go-dependencies group with 2 updates
Bumps the go-dependencies group with 2 updates: [golang.org/x/net](https://github.com/golang/net) and [golang.org/x/sync](https://github.com/golang/sync).


Updates `golang.org/x/net` from 0.47.0 to 0.49.0
- [Commits](https://github.com/golang/net/compare/v0.47.0...v0.49.0)

Updates `golang.org/x/sync` from 0.18.0 to 0.19.0
- [Commits](https://github.com/golang/sync/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/sync
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 17:17:59 +00:00
dependabot[bot] 9fbdefa98b deps(go): bump the go-dependencies group with 11 updates
Bumps the go-dependencies group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) | `0.40.0` | `0.43.2` |
| [github.com/openai/openai-go](https://github.com/openai/openai-go) | `1.11.0` | `1.12.0` |
| [github.com/refraction-networking/utls](https://github.com/refraction-networking/utls) | `1.8.0` | `1.8.2` |
| [github.com/rusq/slackauth](https://github.com/rusq/slackauth) | `0.6.1` | `0.7.1` |
| [github.com/rusq/slackdump/v3](https://github.com/rusq/slackdump) | `3.1.6` | `3.1.11` |
| [github.com/stretchr/testify](https://github.com/stretchr/testify) | `1.10.0` | `1.11.1` |
| [go.uber.org/zap](https://github.com/uber-go/zap) | `1.27.0` | `1.27.1` |
| [golang.ngrok.com/ngrok/v2](https://github.com/ngrok/ngrok-go) | `2.0.0` | `2.1.1` |
| [golang.org/x/net](https://github.com/golang/net) | `0.40.0` | `0.47.0` |
| [golang.org/x/sync](https://github.com/golang/sync) | `0.14.0` | `0.18.0` |
| [golang.org/x/time](https://github.com/golang/time) | `0.12.0` | `0.14.0` |


Updates `github.com/mark3labs/mcp-go` from 0.40.0 to 0.43.2
- [Release notes](https://github.com/mark3labs/mcp-go/releases)
- [Commits](https://github.com/mark3labs/mcp-go/compare/v0.40.0...v0.43.2)

Updates `github.com/openai/openai-go` from 1.11.0 to 1.12.0
- [Release notes](https://github.com/openai/openai-go/releases)
- [Changelog](https://github.com/openai/openai-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-go/compare/v1.11.0...v1.12.0)

Updates `github.com/refraction-networking/utls` from 1.8.0 to 1.8.2
- [Release notes](https://github.com/refraction-networking/utls/releases)
- [Commits](https://github.com/refraction-networking/utls/compare/v1.8.0...v1.8.2)

Updates `github.com/rusq/slackauth` from 0.6.1 to 0.7.1
- [Commits](https://github.com/rusq/slackauth/compare/v0.6.1...v0.7.1)

Updates `github.com/rusq/slackdump/v3` from 3.1.6 to 3.1.11
- [Release notes](https://github.com/rusq/slackdump/releases)
- [Commits](https://github.com/rusq/slackdump/compare/v3.1.6...v3.1.11)

Updates `github.com/stretchr/testify` from 1.10.0 to 1.11.1
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.10.0...v1.11.1)

Updates `go.uber.org/zap` from 1.27.0 to 1.27.1
- [Release notes](https://github.com/uber-go/zap/releases)
- [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uber-go/zap/compare/v1.27.0...v1.27.1)

Updates `golang.ngrok.com/ngrok/v2` from 2.0.0 to 2.1.1
- [Release notes](https://github.com/ngrok/ngrok-go/releases)
- [Changelog](https://github.com/ngrok/ngrok-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ngrok/ngrok-go/compare/v2.0.0...v2.1.1)

Updates `golang.org/x/net` from 0.40.0 to 0.47.0
- [Commits](https://github.com/golang/net/compare/v0.40.0...v0.47.0)

Updates `golang.org/x/sync` from 0.14.0 to 0.18.0
- [Commits](https://github.com/golang/sync/compare/v0.14.0...v0.18.0)

Updates `golang.org/x/time` from 0.12.0 to 0.14.0
- [Commits](https://github.com/golang/time/compare/v0.12.0...v0.14.0)

---
updated-dependencies:
- dependency-name: github.com/mark3labs/mcp-go
  dependency-version: 0.43.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: github.com/openai/openai-go
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: github.com/refraction-networking/utls
  dependency-version: 1.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-dependencies
- dependency-name: github.com/rusq/slackauth
  dependency-version: 0.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: github.com/rusq/slackdump/v3
  dependency-version: 3.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-dependencies
- dependency-name: github.com/stretchr/testify
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: go.uber.org/zap
  dependency-version: 1.27.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-dependencies
- dependency-name: golang.ngrok.com/ngrok/v2
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/net
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/sync
  dependency-version: 0.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
- dependency-name: golang.org/x/time
  dependency-version: 0.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 07:32:55 +00:00
Dmitrii Korotovskii 38137ebf61 dependency bump 2025-12-25 15:47:23 +01:00
Lukasz Jagiello 17e55a9b47 fix: update slack-go/slack to v0.17.3 to fix JSON unmarshal error
Fixes error when Slack API returns errors as strings instead of objects:
"json: cannot unmarshal string into Go struct field chatResponseFull.SlackResponse.errors of type map[string]interface{}"

The bug was in SlackResponseErrors.UnmarshalJSON which didn't handle
string error values. This was fixed in slack-go/slack v0.17.2+.

Added test case to verify the fix works.
2025-11-25 20:07:50 -08:00
graf2242 67be61e70d Bump mcp-go dependency 2025-09-24 11:47:20 +03:00
Dmitrii Korotovskii 32a951b484 tls handshake fingerprinting 2025-07-24 12:13:37 +02:00
Dmitrii Korotovskii 77456f3462 Added basic layout for integration tests 2025-07-21 01:38:43 +02:00
Dmitrii Korotovskii a9fbd54fa9 Improve logging 2025-07-20 09:46:30 +02:00
Dmitrii Korotovskii b72f06bc17 zap build version 2025-07-20 01:03:57 +02:00
Dmitrii Korotovskii 4ed6f91f0a Added zap logger 2025-07-20 00:52:03 +02:00
Dmitrii Korotovskii 2a70774df8 Improved add_message tool, content_type support text/plain or text/markdown 2025-07-06 18:33:12 +02:00
Dmitrii Korotovskii 4983e1098b add logic to improve fetching channels list on slack workspaces with enterprise setting 2025-06-29 22:45:50 +02:00
Dmitrii Korotovskii 0958f563f0 channels_list tool accepts channel_types now as a plain comma-separated string to simplify interface and tool discovery instead of complex array struct, added extra validations 2025-06-06 10:24:33 +02:00
Dmitrii Korotovskii 9626a7c7ae changed the response content type, added users fetch with caching into json and automatic bootstrapping on start 2025-04-16 23:23:56 +02:00
Dmitrii Korotovskii 1e68339bb9 init commit 2025-04-12 13:40:30 +02:00