Skip to content

Add MCP server feature for querying Slack message history#118

Merged
hideack merged 1 commit into
masterfrom
feature/mcp-server
Apr 5, 2026
Merged

Add MCP server feature for querying Slack message history#118
hideack merged 1 commit into
masterfrom
feature/mcp-server

Conversation

@hideack
Copy link
Copy Markdown
Owner

@hideack hideack commented Apr 5, 2026

Summary

  • lib/mcp-server.js を新規作成し、プログラム起動中にMCPサーバーとして動作する機能を追加
  • --mcp-port <port> CLIオプション(またはYAMLの mcp.port)指定時にHTTP MCPサーバーを起動
  • Claude等のMCPクライアントから接続し、可観測なSlackメッセージの参照・振り返りが可能

公開MCPツール(6種)

ツール SQLite必須 説明
list_channels 不要 既知チャンネル一覧
get_recent_messages 不要 直近メッセージ(メモリバッファ)
search_messages 必要 FTS5キーワード全文検索
get_messages_by_channel 必要 チャンネル別メッセージ履歴
get_messages_by_date_range 必要 日時範囲でメッセージ検索
get_thread_messages 必要 スレッド内メッセージ取得

使い方

# 起動
./bin/slack-cli-stream -t <token> --log-sqlite ./logs/slack.db --mcp-port 3737

# Claude Code から接続
claude mcp add --transport http slack-cli-stream --scope local http://localhost:3737/mcp

Test plan

  • npm test — 全53テストパス(MCPサーバーテスト8件を含む)
  • npm run lint — ESLintエラーなし
  • HTTPエンドポイント POST /mcp への initialize リクエストが200を返すことを確認
  • SQLite未使用時にSQLite必須ツールがエラーレスポンスを返すことを確認

🤖 Generated with Claude Code

Implements an MCP (Model Context Protocol) HTTP server that runs alongside
the Slack RTM client, allowing Claude and other MCP clients to reference
and retrospect on observable Slack messages.

- Add lib/mcp-server.js: StreamableHTTP transport with 6 tools
  (search_messages, get_recent_messages, list_channels,
   get_messages_by_channel, get_messages_by_date_range, get_thread_messages)
- Add --mcp-port <port> CLI option and mcp.port YAML config support
- Add test/mcp_server_test.js: integration tests for all MCP tools

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hideack hideack merged commit 637b19c into master Apr 5, 2026
2 checks passed
@hideack hideack deleted the feature/mcp-server branch April 5, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant