4 Commits

Author SHA1 Message Date
Paymahn Moghadasian 6a972a1f05 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.
2026-06-26 11:04:05 -05:00
Dmitrii Korotovskii c88ed62a61 fix: pass ctx to convertMessagesFromHistory calls in saved.go
PR #269 added a leading ctx parameter to convertMessagesFromHistory
but missed the three call sites in saved.go, breaking the build.
2026-05-14 23:09:33 +02:00
Jonathan Zarecki 06b7e6bba3 fix: saved_list drops items when message fetch fails
When include_messages=true, items whose message content could not be
fetched (e.g. channel access denied) were silently dropped from the
output due to a `continue` that skipped the fetched counter.

Changes:
- Move fetched++ before the includeMessages block so all items count
- Let message fetch failures fall through instead of skipping the item
- Add a note to output when some items lack message content
- Fall back to metadata CSV when all message fetches fail

Fixes: 4 of 11 saved items silently dropped on enterprise Slack
Made-with: Cursor
2026-03-09 14:14:10 +02:00
Jonathan Zarecki 3617d5ee65 feat: add saved_list, saved_update, and saved_clear_completed tools
Add three new tools for managing Slack's "Save for Later" panel,
replacing the deprecated stars.* API (March 2023). Uses internal
saved.list, saved.update, and saved.clearCompleted endpoints.

- saved_list: List saved items with filter (saved/completed/archived),
  auto-pagination, and optional message content fetching
- saved_update: Mark items as completed and/or set due dates
- saved_clear_completed: Bulk-clear all completed items

All tools require browser session tokens (xoxc/xoxd) and are guarded
at registration time for bot/OAuth tokens.

Includes unit tests for CSV format, field extraction, timestamp
formatting, parameter validation, and response parsing.

Made-with: Cursor
2026-03-08 22:07:54 +02:00