Sixty seconds means this works for a question the person can answer from memory while looking at Slack, and not for one that needs them to go and check. Write the question with that in mind, and note that the answer has to land in the thread — a reply in the main channel is not seen.
An MCP server that turns a human into a tool the model can call. When the assistant hits something it cannot know — an internal endpoint, a decision only you can make — it posts the question into a Slack channel, mentions the person you configured, and blocks until they answer in the thread or the timeout passes.
- `ask_on_slack` — one tool, taking a single `question` string, returning what the human wrote back
- The question posted with an `@username` mention so it actually gets noticed
- Thread-based replies, which keeps the conversation attached to the question that started it
- A 60-second window for the answer, after which the call times out
- A live Socket Mode WebSocket connection, so a reply is picked up as soon as it is posted
A Slack app in your workspace with Socket Mode enabled and the Events API on, subscribed to `message.channels` and `message.groups`. You need two tokens and two IDs, all passed as command-line arguments: `--slack-bot-token` starting `xoxb-`, `--slack-app-token` starting `xapp-` with the `connections:write` scope, `--slack-channel-id` and `--slack-user-id`. The bot token needs `chat:write`, `channels:read` and `users:read`, and the bot has to be invited to the channel. Run it with `npx github:trtd56/AskOnSlackMCP` and the four arguments. Package `human-in-the-loop-slack-mcp` at 0.1.0, MIT.
One command plus a key — npx github:trtd56/AskOnSlackMCP, then supply credentials
