goose/documentation/docs/mcp/tutorial-mcp.md
dianed-square 65b4b2bb18
Some checks failed
CI / changes (push) Waiting to run
CI / Check Rust Code Format (push) Blocked by required conditions
CI / Build and Test Rust Project (push) Blocked by required conditions
CI / Test and Lint Electron Desktop App (push) Blocked by required conditions
Live Provider Tests / check-fork (push) Waiting to run
Live Provider Tests / changes (push) Blocked by required conditions
Live Provider Tests / Build Release Binary (push) Blocked by required conditions
Live Provider Tests / Smoke Tests (push) Blocked by required conditions
Documentation Site Preview / deploy (push) Waiting to run
Deploy Documentation / deploy (push) Has been cancelled
docs: description required for "Add Extension" in cli - phase 2 (#5635)
2025-11-07 13:27:57 -08:00

147 lines
No EOL
4.5 KiB
Markdown

---
title: Tutorial Extension
description: Learn how to use goose's built-in Tutorial extension for guided learning
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import GooseBuiltinInstaller from '@site/src/components/GooseBuiltinInstaller';
The Tutorial extension is a built-in feature of goose that provides interactive, step-by-step guidance for learning various aspects of goose and its capabilities. It's designed to help users get comfortable with goose's features through hands-on practice.
The Tutorial extension serves as an interactive learning tool that:
- Provides structured, step-by-step tutorials
- Allows hands-on practice with goose features
- Offers immediate feedback and guidance
## Configuration
1. Ensure the Tutorial extension is enabled:
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseBuiltinInstaller
extensionName="Tutorial"
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
1. Run the `configure` command:
```sh
goose configure
```
2. Choose to `Toggle Extensions`
```sh
┌ goose-configure
◇ What would you like to configure?
│ Toggle Extensions
◆ Enable extensions: (use "space" to toggle and "enter" to submit)
// highlight-start
│ ● tutorial
// highlight-end
|
└ Extension settings updated successfully
```
</TabItem>
</Tabs>
## Available Tutorials
Currently, the following tutorials are available:
- **build-mcp-extension**: Learn how to build an extension using the Model Context Protocol (MCP)
- **first-game**: Create your first game with goose
More tutorials are being added regularly to cover additional features and use cases.
## Using the Tutorial Extension
### Starting a Tutorial
There are two main ways to interact with tutorials:
1. **Ask goose directly**: You can simply ask about a topic you're interested in, and goose will suggest relevant tutorials.
```
( O)> I'd like to learn how to build an extension for goose
```
2. **Request a specific tutorial**: You can directly request a tutorial by name.
```
( O)> Can you walk me through the first-game tutorial?
```
### During the Tutorial
While going through a tutorial:
1. goose will guide you step-by-step through the process
2. You'll receive clear instructions before any actions are taken
3. You can ask questions at any time for clarification
4. You can take breaks and resume later
### Best Practices
- **Take your time**: Don't rush through the tutorials. Make sure you understand each step before moving on.
- **Ask questions**: If something isn't clear, ask goose to explain it further.
- **Experiment**: Feel free to try variations of what you're learning.
- **Take notes**: Document any interesting findings or techniques you learn.
## Example Usage
### Starting a Tutorial Session
Here's an example of how to start learning about building extensions:
### goose Prompt
```
I'd like to learn how to build an extension for goose
```
### goose Output
```
I'll help you learn about building extensions! The "build-mcp-extension" tutorial would be perfect for this. Let me load it and guide you through it.
─── load_tutorial | tutorial ──────────────────────────
name: build-mcp-extension
Before we dive into building your extension, I need to understand a few things to better guide you:
1. Which SDK would you prefer to use? We have three options:
- Python (beginner-friendly, great for prototyping)
- TypeScript (great for web-based tools)
- Kotlin (robust, type-safe, good for complex applications)
2. What type of extension would you like to build? For example:
- A tool that performs specific actions
- A resource that provides data to the LLM
- Or do you have a specific idea in mind?
Let me know your preferences, and I'll help you get started with the appropriate setup and implementation!
For reference, here's what we'll cover:
1. Setting up your development environment
2. Creating the basic MCP server
3. Implementing your specific functionality
4. Testing and debugging
Which SDK would you like to use to get started?
```
## Next Steps
After completing tutorials, you can:
- Apply learned concepts to your own projects
- Contribute to the goose community by sharing your experiences
- Suggest new tutorial topics that would be helpful for others
### Need Further Help?
If you have questions, run into issues, or just need to brainstorm ideas join the [Discord Community][discord]!
[discord]: https://discord.gg/goose-oss