출처 :
https://github.com/microsoft/mcsmcp/blob/main/README.md
mcsmcp/README.md at main · microsoft/mcsmcp
Lab for creating an MCP Server and using it in Microsoft Copilot Studio. - microsoft/mcsmcp
github.com
이 프로젝트는 Microsoft Copilot Studio와 연동되는 MCP (Model Context Protocol) 서버입니다.
🎯 프로젝트 목적
- MCP 서버: AI 모델에 컨텍스트를 제공하는 표준화된 프로토콜 서버
- Microsoft Copilot Studio 연동: 기업용 AI 챗봇 플랫폼과 연결
- 농담 API 서비스: Chuck Norris 농담과 Dad Joke를 제공하는 예제 서버
🏗️ 기술 스택
- 언어: TypeScript (Node.js 22)
- 프레임워크: Express.js
- MCP SDK: @modelcontextprotocol/sdk
- 배포: Azure Container Apps (Docker 컨테이너)
- 인프라: Azure Developer CLI (azd)
🏗️ 🎯 전체 구조
1. MCP 서버 생성
const server = new McpServer({
name: "mcp-streamable-http",
version: "1.0.0",
});
2. 4개의 도구(Tool) 정의
- `get-chuck-joke`: 랜덤 농담
- `get-chuck-joke-by-category`: 카테고리별 농담 (매개변수 있음)
- `get-chuck-categories`: 카테고리 목록
- `get-dad-joke`: 아빠 개그
3. Express.js 웹서버로 래핑
- POST `/mcp`: MCP 요청 처리
- GET `/mcp`: 405 에러 (허용되지 않음)
- DELETE `/mcp`: 405 에러 (허용되지 않음)
🔧 도구 작동 방식 예시
const getChuckJoke = server.tool(
"get-chuck-joke", // 도구 이름
"Get a random Chuck Norris joke", // 설명
async () => { // 실행 함수
const response = await fetch("https://api.chucknorris.io/jokes/random");
const data = await response.json();
return {
content: [{ type: "text", text: data.value }]
};
}
);
🎯 이해해야 할 핵심 개념
1. 매개변수가 없는 도구(get-chuck-joke)
server.tool("이름", "설명", async () => { ... })
2. 매개변수가 있는 도구(get-chuck-joke-by-category):
server.tool("이름", "설명",
{ category: z.string().describe("카테고리") }, // 매개변수 정의
async (params: { category: string }) => { ... } // 매개변수 사용
)
3. 외부 API 호출 패턴
const response = await fetch("외부 API URL");
const data = await response.json();
return { content: [{ type: "text", text: "결과" }] };
Read Me의 가이드대로 Docker 설치해서 배포를 시도했는데 Windows 11에서 Docker 실행이 되지 않는 이슈로 VS Code 아래 명령어를 터미널에 입력해서 Azure에 직접 배포했습니다.
az webapp up --name mcsmcp-app --resource-group rg-mcsmcp --runtime "NODE:22-lts"
'Copilot Studio' 카테고리의 다른 글
| Copilot 변수 활용 대화 (0) | 2024.03.04 |
|---|---|
| 다국어 Copilot 챗봇 구성 (0) | 2024.02.29 |
| 생성형 AI와 함께하는 Copilot Studio (0) | 2024.02.06 |
| 챗봇 자동응답 커스터마이징 (0) | 2023.11.27 |
| Copilot Studio (구 Power Virtual Agent) 챗봇 만들기 (0) | 2023.11.27 |