Step 07: Extension
0 studying now
advanced 120 min
Extension
확장(Extension) 등록과 MCP 클라이언트를 학습합니다.
Execute this step
Run from step folder:
cd steps/07_extension && cargo runRun from project root:
cargo run -p step07_extensionStep 7: Extension
학습 목표
- 확장 등록, MCP 클라이언트
- 커스텀 Extension 작성
참조 소스
| 파일 | 내용 |
|------|------|
| crates/goose/src/agents/extension.rs | Extension 정의 |
| crates/goose-mcp/ | MCP 확장 |
핵심 개념
Extension은 Agent의 기능을 확장하는 플러그인입니다. MCP(Model Context Protocol)를 통해 외부 서비스와 통신합니다.
Extension 등록
agent.register_extension(MyExtension::new()).await?;
ExtensionConfig
1pub struct ExtensionConfig { 2 pub name: String, 3 pub transport: TransportConfig, // stdio 또는 HTTP 4}
MCP 클라이언트
MCP는 표준화된 프로토콜로 다양한 도구와 서비스를 Agent에 연결합니다.
1Agent ──▶ MCP Client ──▶ MCP Server (외부 서비스) 2 │ 3 ├── 파일 시스템 접근 4 ├── 데이터베이스 쿼리 5 └── 웹 검색
전송 방식
- stdio: 로컬 프로세스와 stdin/stdout으로 통신
- HTTP/SSE: 원격 서버와 HTTP로 통신
goose-mcp 크레이트에서 구현을 확인할 수 있습니다.
소스 코드
1//! Sample Step 7: Extension 2 3fn main() { 4 println!("=== Step 7: Extension ===\n"); 5 println!("TODO: 확장 등록, MCP 클라이언트"); 6}
체크리스트
- [ ] Extension 등록 방법 이해
- [ ] ExtensionConfig 구조 파악
- [ ] MCP 프로토콜 이해 (stdio / HTTP)
- [ ] 커스텀 Extension 작성 시도