원래 알고 있던 척 하고 정리하는 MCP 2 with firecrawl Server 코드 까보기

https://www.gpters.org/nocode/post/mcp-organize-pretending-learned-rXXvKZgwgxifwlc

이어서 firecrawl-mcp-server

코드를 보면서 어떻게 MCP 서버가 동작하는지 찾아본 사례 입니다.

항목 목록을 보여주는 웹 페이지의 스크린 샷

🧱 MCP 핵심 구성요소

한국어가있는 검은 색 화면

🔁 전체 흐름 요약(유저 -> AI -> MCP)

한국어의 구조를 보여주는 다이어그램

🔍 Firecrawl MCP 코드 구조

1. 🧰 Client – 도구 정의

const SCRAPE_TOOL: Tool = {
  name: 'firecrawl_scrape',
  description: '웹페이지 스크랩 도구',
  inputSchema: {
    type: 'object',
    properties: {
      url: { type: 'string' },
      formats: { type: 'array', items: { type: 'string' } },
      ...
    },
    required: ['url']
  }
};

📌 이 정의는 MCP 서버가 Host에게 알려주는 도구 설명서 역할을 합니다.

2. 🖥️ Server – 도구 요청 처리

코드 편집기의 스크린 샷
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === 'firecrawl_scrape') {
    const { url, ...options } = request.params.arguments;
    const response = await client.scrapeUrl(url, options);
    return {
      content: [{ type: 'text', text: response.markdown }],
      isError: false,
    };
  }
});

📌 이 부분이 MCP Server의 핵심:

- Host의 호출 요청을 받아서

- Firecrawl SDK로 API 호출

- 응답을 MCP 형식으로 가공해 반환

3. 🔧 Firecrawl Client – 내부 API 실행

C# 프로그램의 스크린 샷
const client = new FirecrawlApp({
  apiKey: process.env.FIRECRAWL_API_KEY,
});

- 실제 Firecrawl 기능(API)을 호출하는 SDK 인스턴스

- MCP Server 내부에서 도구 호출 시 사용됨

✅ Host, Client, Server 매핑 요약

|MCP 역할|코드 내 요소|

🧾 결론 정리

- Firecrawl은 MCP Server로 구현되어, 다양한 웹 크롤링 기능을 도구처럼 제공한다.

- 코드 상에서는:

- Tool 정의 → Client

- 호출 처리 → Server

- 실제 기능 → Firecrawl SDK

발표 요점: AI에게 Firecrawl을 "자연어로 부를 수 있는 도구"로 바꿔주는 구조

6
2개의 답글

👉 이 게시글도 읽어보세요