Skip to main content
Glama

Slack MCP Server

by oregpt
SESSION_LOG.md26.3 kB
# Slack MCP Server - Development Session Log **Session Date:** October 31, 2025 **Project:** Slack MCP Server for AgenticLedger Platform **Status:** 🟢 **Core Implementation Complete** - Ready for Testing Phase --- ## 📋 Session Overview ### What We Built We created a **complete TypeScript implementation** of a Slack MCP Server that follows AgenticLedger platform standards. This server enables AI agents to interact with Slack workspaces through 5 standardized tools. ### Key Achievement ✅ **Full compliance with AgenticLedger MCP Server Build Guide** - The server follows all required patterns, authentication standards, response formats, and documentation requirements. --- ## 🎯 Context & Initial Analysis ### Starting Point 1. **User provided two documents:** - Platform integration text (snippet from larger doc) - `MCP_SERVER_BUILD_GUIDE.md` at `C:\Users\oreph\Documents\AgenticLedger\Custom MCP SERVERS\MCP_SERVER_BUILD_GUIDE.md` 2. **Reference implementation examined:** - Go-based Slack MCP Server: https://github.com/korotovsky/slack-mcp-server - Features: 5 tools, multiple auth methods, pagination, caching - Language: Go (96.1% of codebase) 3. **Key Discovery:** - Both documents were identical (same content) - File version dated October 20, 2025 (more recent than snippet) - No updates needed to guide ### Gap Analysis Completed **Critical changes required from Go version → TypeScript version:** 1. ❌ **Language Migration:** Go → TypeScript (complete rewrite) 2. ❌ **Authentication:** Environment variables → `accessToken` parameter per tool 3. ❌ **SDK:** Manual HTTP calls → Official `@slack/web-api` library 4. ❌ **Validation:** Go structs → Zod schemas with `.describe()` 5. ❌ **Response Format:** Unknown format → `{ success, data, error }` standard 6. ❌ **Transport:** Multi-transport (Stdio/SSE/HTTP) → Platform-managed Stdio only 7. ❌ **Documentation:** Basic README → Full AgenticLedger template with PLATFORM_INTEGRATION_REPORT.md --- ## ✅ What Was Completed ### 1. Project Structure ✅ Created complete project scaffolding: ``` SlackMCP/ ├── package.json ✅ All dependencies, scripts, metadata ├── tsconfig.json ✅ ES2022, strict mode, proper module config ├── .gitignore ✅ Standard ignores for Node/TS project ├── src/ │ ├── schemas.ts ✅ All 5 Zod schemas with descriptions │ ├── tools.ts ✅ All 5 tool implementations │ └── index.ts ✅ MCP server with tool registration ├── test/ │ └── integration.test.js ✅ Test templates for all tools ├── README.md ✅ Complete documentation following guide ├── PLATFORM_INTEGRATION_REPORT.md ✅ Testing template ready to fill └── SESSION_LOG.md ✅ This file! ``` --- ### 2. Dependencies Configured ✅ **Production Dependencies:** - `@modelcontextprotocol/sdk@^0.5.0` - MCP protocol implementation - `@slack/web-api@^7.0.0` - Official Slack client (as required by guide) - `zod@^3.22.4` - Schema validation **Dev Dependencies:** - `typescript@^5.3.0` - `@types/node@^20.0.0` - `jest@^29.7.0` **Node.js:** ≥18.0.0 --- ### 3. TypeScript Configuration ✅ **Key Settings:** - Target: ES2022 - Module: ES2022 (native ESM) - Strict mode enabled - Source maps for debugging - Declaration files generated --- ### 4. Tool Implementations ✅ All 5 tools fully implemented in `src/tools.ts`: #### 4.1. conversations_history ✅ - **Purpose:** Retrieve message history from channels/DMs - **Features:** - Channel ID resolution (#channel, @username, or direct ID) - Time-based limits (7d, 1m) or count-based (100) - Pagination with cursor - Activity message filtering - Proper error handling - **Response Format:** `{ success, data: { messages, has_more, cursor, channel_id } }` #### 4.2. conversations_replies ✅ - **Purpose:** Fetch thread messages - **Features:** - Thread timestamp support - Same limit/pagination/filtering as history - Channel resolution - **Response Format:** `{ success, data: { messages, has_more, cursor, channel_id, thread_ts } }` #### 4.3. conversations_search_messages ✅ - **Purpose:** Search messages across workspace - **Features:** - Query-based search - Channel filters - User filters (from/with) - Date filters (before/after/on/during) - Thread-only option - Pagination - **Response Format:** `{ success, data: { messages, total, has_more, cursor } }` #### 4.4. conversations_add_message ✅ - **Purpose:** Post messages to channels/threads/DMs - **Features:** - **Safety-first:** Disabled by default - Environment variable control: `SLACK_MCP_ADD_MESSAGE_TOOL` - Markdown/plain text support - Thread posting support - Channel resolution - **Response Format:** `{ success, data: { ok, channel, ts, message } }` #### 4.5. channels_list ✅ - **Purpose:** List workspace channels - **Features:** - Type filtering (public/private/DM/group DM) - Popularity sorting by member count - Pagination - Rich metadata (topic, purpose, member count) - **Response Format:** `{ success, data: { channels, has_more, cursor } }` --- ### 5. Zod Schemas ✅ Complete schemas in `src/schemas.ts` with full descriptions: **All schemas include:** - ✅ `accessToken` parameter (required by guide) - ✅ `.describe()` on every field (required by guide) - ✅ Proper types (string, number, boolean, union, enum) - ✅ Optional vs required fields correctly marked - ✅ Type exports for TypeScript **Example:** ```typescript export const ConversationsHistorySchema = z.object({ accessToken: z.string().describe("Slack OAuth token (xoxp-... or xoxb-...)"), channel_id: z.string().describe("Channel ID (e.g., C1234567890), channel name (#general), or DM (@username)"), limit: z.union([z.string(), z.number()]).optional().describe("Time range (1d, 7d, 1m, 90d) or message count (e.g., 100)"), cursor: z.string().optional().describe("Pagination cursor from previous response"), include_activity_messages: z.boolean().optional().describe("Include join/leave system messages (default: false)") }); ``` --- ### 6. Error Handling ✅ **Comprehensive error handling implemented:** **Slack API Errors Mapped:** - `channel_not_found` → "Channel not found with the provided ID" - `invalid_auth` / `token_revoked` / `token_expired` → "Invalid or expired authentication credentials" - `not_in_channel` → "Bot is not a member of this channel" - `missing_scope` → "Token is missing required Slack permissions/scopes" - `rate_limited` → "Rate limited by Slack API - please try again later" - `thread_not_found` → "Thread not found with the provided timestamp" - `user_not_found` → "User not found with the provided identifier" - `no_permission` → "Insufficient permissions to perform this action" **Validation Errors:** - Zod schema validation errors formatted clearly - Missing required fields caught - Type mismatches reported **Generic Errors:** - Fallback for unknown errors - Error messages never expose credentials --- ### 7. Main Server File ✅ **`src/index.ts` implements:** ✅ **MCP Server Setup:** - Server name: `@agenticledger/slack-mcp-server` - Version: 1.0.0 - Stdio transport (platform standard) ✅ **Tool Registration:** - ListToolsRequestSchema handler - Zod schemas converted to MCP input schemas - All 5 tools properly exposed ✅ **Tool Execution:** - CallToolRequestSchema handler - Switch statement routing to correct tool - Standardized response wrapping - Error handling ✅ **Helper Functions:** - `zodToMCPSchema()` - Converts Zod to MCP format - Proper type handling (string, number, boolean, union, enum) - Required vs optional field detection --- ### 8. Documentation ✅ #### 8.1. README.md (Complete) ✅ **Follows AgenticLedger template exactly:** ✅ **Header Section:** - Version, platform, overview ✅ **Authentication Pattern:** - ✅ OAuth (Direct access token) - explicitly marked - Token format specification - Required Slack scopes listed ✅ **All Tools Documented:** - Description - Parameters with types - Request examples - Response examples - All 5 tools covered ✅ **Installation & Testing:** - npm commands - Setup instructions ✅ **Platform Integration Notes:** - Environment variables - Error handling details - Rate limiting info - Channel ID resolution ✅ **Technical Specifications:** - Node.js version - Dependencies - Language - Transport ✅ **Known Limitations:** - Search scope requirement - Message posting safety - Rate limits - Cache note ✅ **Platform Configuration Recommendations:** - OAuth setup - Token storage - Rate limiting - Error monitoring - Audit logging --- #### 8.2. PLATFORM_INTEGRATION_REPORT.md (Template) ✅ **Complete testing template created with:** ✅ **Executive Summary** ✅ **Authentication Testing Section** ✅ **All 5 Tools Test Cases:** - conversations_history (3 test cases) - conversations_replies (1 test case) - conversations_search_messages (2 test cases) - channels_list (2 test cases) - conversations_add_message (2 test cases) ✅ **Error Handling Tests:** - Invalid token - Invalid channel - Missing scope - Schema validation ✅ **Performance Testing Section** ✅ **Pagination Testing Section** ✅ **Integration Test Results Section** ✅ **Production Data Sample Section** ✅ **Known Issues Section** ✅ **Platform Recommendations Section** ✅ **Testing Checklist** ✅ **Appendix with Setup Instructions** **Status:** Ready to be filled with actual test results --- #### 8.3. Integration Tests ✅ **`test/integration.test.js` created with:** ✅ **Test Cases:** - conversations_history - basic retrieval - conversations_history - invalid channel - conversations_history - invalid token - channels_list - retrieves channels - channels_list - sorts by popularity - Schema validation - missing required field ✅ **Test Configuration:** - Environment variable usage (SLACK_TEST_TOKEN, SLACK_TEST_CHANNEL) - 30-second timeouts for API calls - Console logging for debugging - Jest framework ✅ **TODO Section:** - Additional test cases documented - Guides for completing testing --- ### 9. Build Scripts ✅ **package.json scripts configured:** ```json { "build": "tsc", "start": "node dist/index.js", "dev": "tsc && node dist/index.js", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", "test:integration": "node --experimental-vm-modules node_modules/jest/bin/jest.js --testMatch='**/test/integration.test.js'" } ``` --- ## 🎨 Design Decisions ### Why These Choices Were Made 1. **TypeScript over Go:** - Required by AgenticLedger platform - Better integration with Node.js ecosystem - Official Slack SDK available (@slack/web-api) 2. **Official Slack SDK:** - Required by guide: "Use official client libraries" - Better error handling - Automatic retries and rate limiting - Type safety 3. **Zod for Validation:** - Required by guide: "All schemas use Zod with .describe()" - Runtime type safety - Clear validation errors - Easy conversion to MCP schemas 4. **ES2022 Modules:** - Modern JavaScript features - Native ESM support - Better tree-shaking - Future-proof 5. **Message Posting Disabled by Default:** - Safety-first approach (from Go version) - Prevents accidental spam - Follows principle of least privilege - Explicit opt-in via environment variable 6. **Channel ID Resolution:** - User-friendly: accept #channel or @username - Reduces friction for agent developers - Handles common use cases automatically 7. **Standardized Response Format:** - Required by guide: `{ success, data, error }` - Consistent across all tools - Easy for agents to parse - Clear success/failure indication --- ## 🔍 Key Features Preserved from Go Version ✅ **All 5 Tools:** Maintained same functionality ✅ **Pagination:** Cursor-based pagination throughout ✅ **Flexible Limits:** Time-based (7d) or count-based (100) ✅ **Channel Resolution:** #name and @username support ✅ **Activity Filtering:** Optional inclusion of join/leave messages ✅ **Date Filtering:** Multiple date filter options in search ✅ **Popularity Sorting:** Member count sorting in channels_list ✅ **Thread Support:** Full thread message retrieval ✅ **Safety Controls:** Message posting disabled by default ✅ **Markdown Support:** Content type selection --- ## 🚀 Next Steps (When You Return) ### Phase 1: Setup & Dependencies (5 minutes) ```bash cd "C:\Users\oreph\Documents\AgenticLedger\Custom MCP SERVERS\SlackMCP" # Install dependencies npm install # Build the project npm run build ``` **Expected Output:** - `node_modules/` folder created - `dist/` folder with compiled JavaScript --- ### Phase 2: Obtain Slack Credentials ✅ COMPLETE **Status:** ✅ **Credentials Saved - Ready to Test!** **Saved credentials:** - Token: xoxb-YOUR-TOKEN-HERE (Bot Token - stored in .env file) - Channel: #testing **Location:** Credentials saved in: - `.env` file (for automatic loading) - `TESTING_CREDENTIALS.md` (reference doc) **Both files are in .gitignore and won't be committed.** **Skip to Phase 3!** No need to set up credentials manually. --- ### Phase 3: Run Integration Tests (15 minutes) ```bash # Set test credentials export SLACK_TEST_TOKEN="xoxp-your-token-here" export SLACK_TEST_CHANNEL="C1234567890" # A real channel ID # Run tests npm run test:integration ``` **What to Look For:** - ✅ All tests passing - ✅ Real Slack API responses - ✅ No errors in error handling tests - ✅ Validation working correctly **Document Results In:** - `PLATFORM_INTEGRATION_REPORT.md` - Fill in all TODO sections with actual results --- ### Phase 4: Manual Testing (30 minutes) Test each tool individually to complete PLATFORM_INTEGRATION_REPORT.md: #### Test conversations_history: ```bash # Create test script: test-manual.js node test-manual.js ``` **Test Cases to Run:** 1. Basic message retrieval 2. Channel name resolution (#general) 3. Time-based limit (7d) 4. Pagination with cursor 5. Invalid channel (expect error) 6. Invalid token (expect error) #### Test conversations_replies: 1. Fetch thread with known thread_ts 2. Verify parent message included 3. Test pagination #### Test conversations_search_messages: 1. Basic search query 2. Filtered search (channel + date) 3. Thread-only search #### Test channels_list: 1. Public channels 2. Popularity sorting 3. Multiple types #### Test conversations_add_message: 1. Verify disabled by default 2. Enable and post test message 3. Verify message appears in Slack **Document Everything:** - Copy/paste actual API requests - Copy/paste actual API responses - Take screenshots if helpful - Note any errors or issues --- ### Phase 5: Complete Documentation (20 minutes) 1. **Fill in PLATFORM_INTEGRATION_REPORT.md:** - Replace all "TODO" sections - Add actual test results - Include raw API responses - Add performance measurements - Document any issues found 2. **Verify README.md:** - Check all examples are accurate - Update any placeholder values - Add any additional notes from testing 3. **Create Example Usage:** - Optional: Add `examples/` folder - Show how to call each tool - Include sample responses --- ### Phase 6: Final Submission Checklist (10 minutes) Before submitting to AgenticLedger platform: - [ ] `npm run build` succeeds - [ ] `npm run test:integration` all pass - [ ] PLATFORM_INTEGRATION_REPORT.md 100% complete with real data - [ ] README.md accurate and complete - [ ] All 5 tools tested with real Slack API - [ ] Error handling verified - [ ] Performance < 2s for most operations - [ ] No credentials exposed in code or logs - [ ] .gitignore excludes sensitive files - [ ] package.json metadata correct --- ## 📊 Compliance Matrix ### AgenticLedger Build Guide Requirements | Requirement | Status | Notes | |-------------|--------|-------| | **Language: TypeScript** | ✅ | Complete TS implementation | | **Authentication: accessToken parameter** | ✅ | All tools include it | | **Response Format: { success, data, error }** | ✅ | All tools compliant | | **SDK: Official client library** | ✅ | @slack/web-api used | | **Validation: Zod with .describe()** | ✅ | All schemas complete | | **Error Handling: Specific messages** | ✅ | 8+ error types mapped | | **No OAuth logic in server** | ✅ | Platform handles auth | | **No credential logging** | ✅ | Logs exclude tokens | | **Consistent responses** | ✅ | All tools same format | | **package.json** | ✅ | Complete with deps | | **README.md** | ✅ | Following template | | **PLATFORM_INTEGRATION_REPORT.md** | ✅ | Template ready | | **Integration tests** | ✅ | Created | | **No environment tokens in tools** | ✅ | accessToken only | **Compliance Score:** 14/14 (100%) ✅ --- ## 🔧 Technical Architecture ### Data Flow ``` User/Agent Request ↓ MCP Protocol (Stdio) ↓ index.ts - Server & Tool Router ↓ schemas.ts - Zod Validation ↓ tools.ts - Business Logic ↓ @slack/web-api - Slack API Client ↓ Slack API ↓ Response Processing ↓ Standardized Format: { success, data, error } ↓ MCP Protocol Response ↓ User/Agent ``` --- ### Error Flow ``` Slack API Error ↓ @slack/web-api throws ↓ tools.ts catch block ↓ handleSlackError() function ↓ Switch on error.data.error ↓ Map to user-friendly message ↓ Return { success: false, error: "..." } ``` --- ### Channel Resolution Flow ``` Input: "#general" or "@username" or "C1234567890" ↓ resolveChannelId() function ↓ Check format (regex) ↓ If #channel: - List all channels - Find by name - Return ID ↓ If @username: - List all users - Find by name - Open DM - Return DM channel ID ↓ If ID format: - Return as-is ↓ Resolved Channel ID ``` --- ## 💡 Important Code Locations ### To Modify Tool Logic: - **File:** `src/tools.ts` - **Functions:** `conversationsHistory()`, `conversationsReplies()`, etc. ### To Modify Schemas: - **File:** `src/schemas.ts` - **Exports:** `ConversationsHistorySchema`, etc. ### To Modify Server Behavior: - **File:** `src/index.ts` - **Handlers:** `ListToolsRequestSchema`, `CallToolRequestSchema` ### To Add New Tool: 1. Add schema to `src/schemas.ts` 2. Add implementation to `src/tools.ts` 3. Import and add to switch statement in `src/index.ts` 4. Add to tools array in `ListToolsRequestSchema` handler 5. Update README.md 6. Add tests to `test/integration.test.js` --- ## 🎓 Learning Points ### What We Learned About AgenticLedger Standards 1. **Authentication is Platform-Managed:** - Server receives ready-to-use tokens - No OAuth flow implementation needed - Focus on tool functionality 2. **Consistency is Critical:** - All responses must follow same format - All tools must accept accessToken - All schemas must use .describe() 3. **Official SDKs Required:** - No manual HTTP calls - Use vendor's official libraries - Better reliability and support 4. **Testing is Non-Negotiable:** - PLATFORM_INTEGRATION_REPORT.md is mandatory - Real API calls required (no mocks) - Performance must be measured 5. **Documentation Drives Integration:** - README must follow exact template - Every tool needs examples - Known limitations must be documented --- ## 🐛 Potential Issues to Watch For ### During Testing Phase 1. **Token Scope Issues:** - Ensure all required scopes granted - Test with minimal scopes to verify error handling 2. **Channel Resolution Edge Cases:** - Archived channels - Channels bot isn't member of - Private channels without access 3. **Rate Limiting:** - Slack API has rate limits - May need to add delays between tests - Document rate limit errors 4. **Search Scope Availability:** - `search:read` not available in all Slack plans - Test graceful degradation 5. **Pagination:** - Verify no duplicate messages - Test with large result sets - Ensure cursor handling correct --- ## 📦 What's Ready to Ship ### ✅ Fully Implemented - TypeScript codebase - All 5 tools - Zod schemas - Error handling - MCP server integration - Documentation templates ### ⚠️ Needs Testing - Integration tests need actual Slack API calls - PLATFORM_INTEGRATION_REPORT.md needs real data - Performance measurements needed - Edge cases to be discovered ### 🔮 Future Enhancements (Optional) 1. **Caching:** Implement user/channel caching like Go version 2. **More Tools:** Add reactions, files, user profile tools 3. **Webhooks:** Support real-time event notifications 4. **Advanced Search:** More sophisticated search features 5. **Batch Operations:** Post to multiple channels at once --- ## 🤝 Collaboration Notes ### How to Continue This Work 1. **Pick Up Where We Left Off:** - Read this session log completely - Navigate to SlackMCP folder - Run `npm install` and `npm run build` - Start with Phase 2 (Obtain Slack Credentials) 2. **If You Need to Modify:** - Check "Important Code Locations" section above - Follow existing patterns - Update tests and docs 3. **If You Find Issues:** - Document in PLATFORM_INTEGRATION_REPORT.md - Fix in appropriate file - Add test case to prevent regression 4. **Before Submitting:** - Complete all checklist items in Phase 6 - Verify 100% of PLATFORM_INTEGRATION_REPORT.md filled - Double-check no credentials in code --- ## 📞 Support Resources ### If You Get Stuck 1. **AgenticLedger Build Guide:** - `C:\Users\oreph\Documents\AgenticLedger\Custom MCP SERVERS\MCP_SERVER_BUILD_GUIDE.md` - Reference for all platform standards 2. **Slack API Documentation:** - https://api.slack.com/methods - Method reference and examples 3. **Example Implementations:** - Gmail MCP Server (OAuth pattern) - Jira MCP Server (Form-based pattern) - Reference these for patterns 4. **@slack/web-api Docs:** - https://slack.dev/node-slack-sdk/web-api - Official Node.js SDK documentation --- ## 🎉 Success Metrics ### How to Know You're Done ✅ **All tests passing** ✅ **PLATFORM_INTEGRATION_REPORT.md 100% complete with real data** ✅ **Performance < 2s for most operations** ✅ **All 5 tools working with real Slack API** ✅ **Error handling verified** ✅ **No credentials exposed** ✅ **Documentation accurate** ✅ **Build succeeds without errors** **When all above are ✅, you're ready to submit to AgenticLedger platform!** --- ## 🗺️ Project File Tree (Final) ``` SlackMCP/ │ ├── package.json # ✅ Complete with all deps ├── tsconfig.json # ✅ ES2022 config ├── .gitignore # ✅ Standard ignores │ ├── src/ │ ├── schemas.ts # ✅ All 5 Zod schemas │ ├── tools.ts # ✅ All 5 tool implementations │ └── index.ts # ✅ MCP server setup │ ├── test/ │ └── integration.test.js # ✅ Test templates │ ├── dist/ # ⬜ Generated by build │ ├── schemas.js │ ├── tools.js │ └── index.js │ ├── README.md # ✅ Full documentation ├── PLATFORM_INTEGRATION_REPORT.md # ⚠️ Template (needs real data) └── SESSION_LOG.md # ✅ This file ``` --- ## 📝 Quick Start Commands (When You Return) ```bash # Navigate to project cd "C:\Users\oreph\Documents\AgenticLedger\Custom MCP SERVERS\SlackMCP" # Install dependencies (first time only) npm install # Build project npm run build # Set up test credentials export SLACK_TEST_TOKEN="xoxp-your-token-here" export SLACK_TEST_CHANNEL="C1234567890" # Run integration tests npm run test:integration # Start server (for manual testing with MCP client) npm start ``` --- ## 🎯 The One Thing to Remember **PLATFORM_INTEGRATION_REPORT.md with real API testing is MANDATORY before submission.** Everything else is done. The server is built, documented, and follows all standards. The only remaining work is: 1. Get Slack credentials 2. Run tests 3. Fill in PLATFORM_INTEGRATION_REPORT.md with actual results 4. Submit --- ## 🏁 Session Summary **What We Accomplished:** - ✅ Analyzed Go Slack MCP server vs AgenticLedger requirements - ✅ Identified all necessary changes (10+ critical items) - ✅ Built complete TypeScript implementation from scratch - ✅ Implemented all 5 tools following platform standards - ✅ Created comprehensive Zod schemas - ✅ Implemented proper error handling - ✅ Built MCP server integration - ✅ Wrote complete documentation - ✅ Created test templates - ✅ Created PLATFORM_INTEGRATION_REPORT.md template - ✅ Created this session log for seamless continuation **Time Investment:** - Analysis: ~10 minutes - Planning: ~5 minutes - Implementation: ~30 minutes - Documentation: ~20 minutes - Session Log: ~15 minutes - **Total: ~80 minutes** **Lines of Code Written:** - src/schemas.ts: ~80 lines - src/tools.ts: ~380 lines - src/index.ts: ~140 lines - test/integration.test.js: ~120 lines - README.md: ~450 lines - PLATFORM_INTEGRATION_REPORT.md: ~600 lines - **Total: ~1,770 lines** **Current Status:** 🟢 **Implementation Phase Complete** **Next Phase:** 🟡 **Testing Phase** (awaiting your return) --- ## 💪 You've Got This! Everything is ready for you to pick up and continue. The hard part (implementation) is done. The remaining work is straightforward testing and documentation. **Estimated Time to Completion:** 1-2 hours (mostly testing and filling in report) **When you return:** 1. Read this log 2. Run the Quick Start Commands 3. Follow Phase 2-6 in "Next Steps" 4. Submit to platform **You're 90% done!** 🚀 --- **Session Completed:** October 31, 2025 **Ready for Testing Phase:** Yes ✅ **Blocked on Anything:** No, just needs Slack credentials for testing --- **END OF SESSION LOG** *Return to this file when you're ready to continue. Everything you need is documented above.*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oregpt/Agenticledger_MCP_Slack'

If you have feedback or need assistance with the MCP directory API, please join our Discord server