get-started
Verify connection and explore Zulip workspace streams with this tool. Use it to ensure proper functionality and gain an overview of available channels.
Instructions
🚀 START HERE: Test connection and get workspace overview. Use this first to verify everything is working and see available streams. Perfect for orientation and troubleshooting.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server.ts:374-401 (handler)Handler function for 'get-started' tool. Tests Zulip connection, fetches subscribed streams and recent messages, returns workspace overview including status, email, available streams, and quick tips.async () => { try { const [streams, recentMessages] = await Promise.all([ zulipClient.getSubscriptions().catch(() => ({ subscriptions: [] })), zulipClient.getMessages({ anchor: "newest", num_before: 3 }).catch(() => ({ messages: [] })) ]); const info = { status: "✅ Connected to Zulip", your_email: process.env.ZULIP_EMAIL, zulip_url: process.env.ZULIP_URL, streams_available: streams.subscriptions?.length || 0, sample_streams: streams.subscriptions?.slice(0, 5).map((s: any) => s.name) || [], recent_activity: recentMessages.messages?.length > 0, quick_tips: [ "Use 'search-users' to find users before sending DMs", "Stream names are case-sensitive - use exact names from get-subscribed-streams", "Always include 'topic' when sending to streams", "For DMs, use actual email addresses (not display names)", "Note: 'streams' and 'channels' mean the same thing in Zulip" ] }; return createSuccessResponse(JSON.stringify(info, null, 2)); } catch (error) { return createErrorResponse(`Connection test failed: ${error instanceof Error ? error.message : 'Unknown error'}`); } }
- src/server.ts:370-402 (registration)MCP server.tool registration for 'get-started'. Registers the tool with no input parameters ({} schema) and inline handler function.server.tool( "get-started", "🚀 START HERE: Test connection and get workspace overview. Use this first to verify everything is working and see available streams. Perfect for orientation and troubleshooting.", {}, async () => { try { const [streams, recentMessages] = await Promise.all([ zulipClient.getSubscriptions().catch(() => ({ subscriptions: [] })), zulipClient.getMessages({ anchor: "newest", num_before: 3 }).catch(() => ({ messages: [] })) ]); const info = { status: "✅ Connected to Zulip", your_email: process.env.ZULIP_EMAIL, zulip_url: process.env.ZULIP_URL, streams_available: streams.subscriptions?.length || 0, sample_streams: streams.subscriptions?.slice(0, 5).map((s: any) => s.name) || [], recent_activity: recentMessages.messages?.length > 0, quick_tips: [ "Use 'search-users' to find users before sending DMs", "Stream names are case-sensitive - use exact names from get-subscribed-streams", "Always include 'topic' when sending to streams", "For DMs, use actual email addresses (not display names)", "Note: 'streams' and 'channels' mean the same thing in Zulip" ] }; return createSuccessResponse(JSON.stringify(info, null, 2)); } catch (error) { return createErrorResponse(`Connection test failed: ${error instanceof Error ? error.message : 'Unknown error'}`); } } );
- src/server.ts:373-373 (schema)Empty schema object indicating the tool takes no parameters.{},