Cursor EOD MCP (Slack)
A simple MCP server that sends your end-of-day (EOD) updates to Slack.
IDE Compatibility
This MCP server uses the Model Context Protocol (MCP), an open protocol that works with IDEs that support MCP. Currently supported:
- Cursor — Native MCP support
- VS Code — MCP support via GitHub Copilot
The server is built on the standard MCP SDK and will work with any MCP-compatible client.
What you need
- Node.js 18 or newer
- Cursor (with MCP enabled) or VS Code (with GitHub Copilot)
- A Slack workspace where you can create an app
- Slack tokens:
- Bot token (starts with
xoxb-) — required to post - User token (starts with
xoxp-orxoxs-) — optional, use if you want your own name/photo on messages
- Bot token (starts with
How to get your Slack tokens (step by step)
- Go to https://api.slack.com/apps → Create New App → From scratch. You can call it EOD Bot. Ensure you are signed in to the desired Slack Workspace you want to post messages to.
- In the left menu, click OAuth & Permissions.
- Under Bot Token Scopes, add:
chat:write,channels:read,groups:read. - (Optional, for posting as you) under User Token Scopes, add:
chat:write,channels:read,groups:read. - Scroll up and click Install to {Workspace} (or Reinstall) and approve. You may need to repeat clicking the Install to {Workspace} button until you see the changes saved.
- Copy your tokens:
- Bot token: looks like
xoxb-...(required). - User token: looks like
xoxp-...orxoxs-...(optional, for your identity).
- Bot token: looks like
Keep tokens private. Do not commit them to Git.
Quick setup (no cloning, use npx)
Option 1: One-click install (Cursor only)
Click this link to automatically install the MCP server in Cursor:
If the button doesn't work, try copying and pasting this raw link in your browser address bar: cursor://anysphere.cursor-deeplink/mcp/install?name=@techhalo/cursor-eod-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB0ZWNoaGFsby9jdXJzb3ItZW9kLW1jcCJdLCJlbnYiOnsiU0xBQ0tfQk9UX1RPS0VOIjoiIiwiU0xBQ0tfVVNFUl9UT0tFTiI6IiIsIlNMQUNLX0RFRkFVTFRfQ0hBTk5FTCI6IiJ9fQ==
After installation, edit ~/.cursor/mcp.json and fill in your Slack tokens in the env section (they're pre-configured as empty strings).
Option 2: Manual setup (Cursor)
- Edit
~/.cursor/mcp.jsonand add:
{
"mcpServers": {
"@techhalo/cursor-eod-mcp": {
"command": "npx",
"args": ["-y", "@techhalo/cursor-eod-mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token-or-empty",
"SLACK_DEFAULT_CHANNEL": "halo"
}
}
}
}
- Restart Cursor so it picks up the server. Or toggle off and on the cursor-eod-mcp MCP Server from the Cursor "Tools & MCP" Settings page.
- In Cursor chat, try:
list_channels
set_default_channel channel="frontend-team"
eod_status summary="• Did X\n• Reviewed Y\n• Shipped Z"
You should see the message appear in Slack.
Option 3: VS Code setup
- Open VS Code and ensure you have GitHub Copilot enabled
- Edit
~/.vscode/mcp.json(or create it if it doesn't exist) and add:
{
"servers": {
"cursor-eod-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@techhalo/cursor-eod-mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token-or-empty",
"SLACK_DEFAULT_CHANNEL": "halo"
}
}
}
}
Note: VS Code uses servers instead of mcpServers and requires "type": "stdio" for stdio-based servers. See the VS Code MCP documentation for more details.
- Restart VS Code or reload the window
- Use the MCP tools in GitHub Copilot Chat
Alternative setup (clone locally)
git clone https://github.com/SackeyDavid/cursor-eod-mcp.git
cd cursor-eod-mcp
npm install
npm run build
For Cursor:
Point MCP to the built file in ~/.cursor/mcp.json:
{
"mcpServers": {
"cursor-eod-mcp": {
"command": "node",
"args": ["/absolute/path/to/cursor-eod-mcp/dist/index.js"], // eg. /Users/Kofi/mcps/cursor-eod-mcp/dist/index.js
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token-or-empty",
"SLACK_DEFAULT_CHANNEL": "frontend-team"
}
}
}
}
For VS Code:
Point MCP to the built file in ~/.vscode/mcp.json:
{
"servers": {
"cursor-eod-mcp": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/cursor-eod-mcp/dist/index.js"], // eg. /Users/Kofi/mcps/cursor-eod-mcp/dist/index.js
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_USER_TOKEN": "xoxp-your-user-token-or-empty",
"SLACK_DEFAULT_CHANNEL": "frontend-team"
}
}
}
}
Restart your IDE and test the same commands.
Handy commands (run in Cursor chat or VS Code Copilot Chat)
configure slack_token="xoxb-..." default_channel="channel"— save tokens/channel locally.list_channels— see channels your token can read.set_default_channel channel="channel"— set the default target.preview_format— see the message layout.update_format_template template="*EOD ({date})*\n\n{summary}"— change formatting.eod_status— send an EOD now. The MCP server automatically picks the default channel, auto-generates a summary from your Cursor workspace conversations, and sends the message.
Optional parameters:summary="• Did X\n• Fixed Y",pending="...",planTomorrow="...",channel="other-channel".
Notes
- Bot token is enough to post; user token is only if you want your personal name/photo.
- Make sure the bot/user is a member of the target Slack channel.
- Tokens stay on your machine; never commit them.
Troubleshooting
- Nothing posts: invite the bot/user to the channel (ie. for bot type /invite @EOD Bot); double-check tokens; restart your IDE.
invalid_auth: token typo or wrong type (must start withxoxb-orxoxp-/xoxs-).- “No channel specified”: set
SLACK_DEFAULT_CHANNELor runset_default_channel. - VS Code: Make sure GitHub Copilot is enabled and the MCP server appears in the Copilot Chat tools list. Check the MCP output log if the server isn't starting.

