Skip to content

Commit 1124dd7

Browse files
committed
docs: streamline slack id setups
1 parent 6add659 commit 1124dd7

3 files changed

Lines changed: 13 additions & 49 deletions

File tree

ai/mcp-client/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ Read the [docs](https://docs.slack.dev/ai/slack-mcp-client) to explore more conc
1111
- **[Dynamic client registration](./dynamic-client-registration/)**: Connect a remote MCP server with standard OAuth discovery. [Implementation](./dynamic-client-registration/).
1212
- **[External auth](./external-auth/)**: Connect a remote MCP server with manual OAuth provider configuration. [Implementation](./external-auth/).
1313
- **[No auth](./no-auth/)**: Run an MCP server that responds with an interactive UI without authentication. [Implementation](./no-auth/).
14-
- **[Slack identity](./slack-identity/)**: Perform tool calls using Slack identity auth and an OAuth install flow. [Implementation](./slack-identity/).
14+
- **[Slack identity](./slack-identity/)**: Run an MCP server that responds with Block Kit and authenticates with existing installations. [Implementation](./slack-identity/).

ai/mcp-client/slack-identity/.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ SLACK_CLIENT_ID=
22
SLACK_CLIENT_SECRET=
33
SLACK_SIGNING_SECRET=
44
SLACK_STATE_SECRET=
5-
BASE_URL=https://your-ngrok-url.ngrok-free.app
5+
BASE_URL=https://1234-56-78-90-0.ngrok-free.app
66
PORT=3000
Lines changed: 11 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,17 @@
1-
# MCP Server: Slack Identity Auth
1+
# Slack Identity
22

3-
Demonstrates Slack identity-based authentication for MCP servers. Exposes a `search_notes` tool that returns personal and team notes scoped to the requesting user.
4-
5-
Slack sends signed requests with `user_id` and `team_id` in `_meta.slack`. Your server verifies the signature and uses the identity to scope results — no separate OAuth flow needed.
6-
7-
## How it works
8-
9-
1. Your app declares an MCP server with `"auth_type": "slack_identity_auth"`
10-
2. Slackbot sends requests signed with your app's signing secret
11-
3. The server verifies the signature, reads `user_id`/`team_id` from the request
12-
4. Notes are looked up from `notes/TEAMID-USERID.md` (personal) and `notes/TEAMID.md` (shared)
3+
Run an MCP server that responds with Block Kit and authenticates with existing installations.
134

145
## Setup
156

16-
```bash
17-
npm install
18-
ngrok http 3000
19-
```
20-
21-
Update `manifest.json` with your ngrok URL, create the app at [api.slack.com/apps](https://api.slack.com/apps), then:
22-
23-
```bash
24-
cp .env.sample .env
25-
# Fill in SLACK_SIGNING_SECRET, SLACK_CLIENT_ID, SLACK_CLIENT_SECRET
26-
npm start
27-
```
28-
29-
### Add your notes
30-
31-
Create notes files using your real team and user IDs:
32-
33-
```bash
34-
cp notes/T0000000000-U0123456789.md notes/YOUR_TEAM_ID-YOUR_USER_ID.md
35-
cp notes/T0000000000.md notes/YOUR_TEAM_ID.md
36-
```
37-
38-
## Try it
39-
40-
Ask Slackbot: _"What are my current projects?"_
41-
42-
## Manifest
43-
44-
```json
45-
"mcp_servers": {
46-
"notes": {
47-
"url": "https://YOUR_URL/mcp",
48-
"auth_type": "slack_identity_auth"
49-
}
50-
}
7+
```sh
8+
$ ngrok http 3000
9+
$ slack install --app local # Create a new app
10+
$ slack app settings
11+
$ slack env init # Update defaults
12+
$ slack manifest # Validate fields
13+
$ slack run
14+
$ open https://1234-56-78-90-0.ngrok-free.app/slack/install # Install the app
5115
```
5216

53-
The `auth_type: "slack_identity_auth"` tells Slack to send signed requests with user context.
17+
Ask Slackbot: "Make me a profile card using the latest MCP tools"

0 commit comments

Comments
 (0)