Skip to content

LangGraph ReAct Agents with an ability to use MCP Tools dynamically

Notifications You must be signed in to change notification settings

teddynote-lab/langgraph-dynamic-mcp-agents

Repository files navigation

LangGraph Dynamic MCP Agents

Python LangChain LangGraph Open in - LangGraph Studio

프로젝트 개요

채팅 인터페이스

Project Overview

LangGraph Dynamic MCP Agents 은 Model Context Protocol(MCP)을 통해 다양한 외부 도구와 데이터 소스에 접근할 수 있는 ReAct 에이전트를 구현한 프로젝트입니다. 이 프로젝트는 LangGraph 의 ReAct 에이전트를 기반으로 하며, MCP 도구를 쉽게 추가하고 구성할 수 있는 인터페이스를 제공합니다.

Project Demo

주요 기능

동적 방식으로 도구 설정 대시보드

http://localhost:2025 에 접속하여 도구 설정 대시보드를 확인할 수 있습니다.

Tool Settings

도구 추가 탭에서 Smithery 에서 사용할 MCP 도구의 JSON 구성을 복사 붙여넣기 하여 도구를 추가할 수 있습니다.

Tool Settings


실시간 반영

도구 설정 대시보드에서 도구를 추가하거나 수정하면 실시간으로 반영됩니다.

List Tools

시스템 프롬프트 설정

prompts/system_prompt.yaml 파일을 수정하여 시스템 프롬프트를 설정할 수 있습니다.

이 또한 동적으로 바로 반영되는 형태입니다.

System Prompt

만약, 에이전트에 설정되는 시스템프롬프트를 수정하고 싶다면 prompts/system_prompt.yaml 파일의 내용을 수정하면 됩니다.


주요 기능

  • LangGraph ReAct 에이전트: LangGraph를 기반으로 하는 ReAct 에이전트
  • 실시간 동적 도구 관리: MCP 도구를 쉽게 추가, 제거, 구성 가능 (Smithery JSON 형식 지원)
  • 실시간 동적 시스템 프롬프트 설정: 시스템 프롬프트를 쉽게 수정 가능 (동적 반영)
  • 대화 기록: 에이전트와의 대화 내용 추적 및 관리
  • TeddyFlow 연동: 채팅 인터페이스 연동
  • Docker 이미지 빌드: Docker 이미지 빌드 가능
  • localhost 지원: localhost 로 실행 가능(채팅 인터페이스 연동 가능)

설치 방법

  1. 저장소 복제하기
git clone https://github.com/teddynote-lab/langgraph-dynamic-mcp-agents
cd langgraph-dynamic-mcp-agents
  1. .env 파일 설정하기

.env.example 파일을 .env로 복사하고 필요한 API 키를 추가합니다.

cp .env.example .env

.env 파일에서 LLM_PROVIDER 를 설정합니다.

선택 가능(택 1): ANTHROPIC, OPENAI, AZURE_OPENAI

LLM_PROVIDER=AZURE_OPENAI

아래는 필요한 API 키 목록입니다. (선택한 LLM_PROVIDER 에 따라 설정합니다)

Anthropic, OpenAI, Azure OpenAI 에서 사용할 API 키를 설정합니다.(반드시 하나의 모델은 설정되어야 합니다.)

  • ANTHROPIC_API_KEY: Anthropic API 키
  • OPENAI_API_KEY: OpenAI API 키
  • AZURE_OPENAI_API_KEY: Azure OpenAI API 키
  • AZURE_OPENAI_ENDPOINT: Azure OpenAI 엔드포인트
  1. MCP 도구 설정

mcp-config 폴더에 있는 mcp_config.json 파일을 기준으로 모델이 사용할 MCP 도구를 설정합니다.

따라서, 미리 사용하고자 하는 MCP 도구를 JSON 형식으로 설정해 둘 수 있습니다. 이 과정은 도구 설정 대시보드에서도 설정이 가능합니다.

아래는 샘플로 작성된 예시입니다.

{
  "mcpServers": {
    "perplexity-search": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@arjunkmrm/perplexity-search",
        "--key",
        "SMITHERY_API_KEY 를 입력하세요"
      ],
      "transport": "stdio"
    },
    "get_current_time": {
      "command": "python",
      "args": [
        "/app/resources/mcp_server_time.py"
      ],
      "transport": "stdio"
    }
  }
}
  1. .py 파일을 MCP stdio 서버로 추가
  • (참고) resources 폴더에 있는 mcp_server_time.py 파일을 참고하시기 바랍니다.
  1. 사용하고자 하는 커스텀 작성된 .py 파일을 resources 폴더에 추가합니다. 그리고 stdio 서버로 실행할 수 있도록 코드를 작성합니다.

  2. mcp-config/mcp_config.json 에 추가할 때 파일 경로를 수정합니다.

    규칙

    ./resources/파일명.py > /app/resources/파일명.py

    예를 들어, ./resources/mcp_server_time.py 파일을 추가하고자 한다면 /app/resources/mcp_server_time.py 로 설정합니다.

    "get_current_time": {
        "command": "python",
        "args": [
        "/app/resources/mcp_server_time.py"
        ],
        "transport": "stdio"
    }
  3. Smithery 에 등록된 도구 추가

Smithery 에서 사용할 MCP 도구의 JSON 구성을 가져와 도구 대시보드에서 쉽게 추가할 수 있습니다.

  1. Smithery 웹사이트를 방문하여 사용하고 싶은 도구를 선택합니다.
  2. 도구 페이지에서 오른쪽의 'COPY' 버튼을 클릭하여 JSON 구성을 복사합니다.

Smithery Copy JSON

  1. mcp_config.json 파일을 열고 복사한 JSON을 추가합니다.

복사한 내용을 붙여넣기 합니다.

Add Smithery Tool

애플리케이션 실행

모든 설정이 완료되었다면, 다음 명령어로 실행할 수 있습니다.

Windows(PowerShell)

docker compose build --no-cache; docker-compose up -d

Mac / Linux

docker compose build --no-cache && docker-compose up -d

접속 주소

  • TeddyFlow 연동: https://teddyflow.com/
  • 채팅 인터페이스: http://localhost:2024
  • 도구 설정 대시보드: http://localhost:2025

teddyflow.com 연결 방법

  1. teddyflow.com 에서 회원가입을 합니다.

회원가입시 "베타 키" 에 teddynote-youtube 를 입력하면 승인 없이 바로 가입이 가능합니다.

teddyflow-code

  1. 로그인 후 "새로운 앱 연결" 버튼을 클릭합니다.

teddyflow-guide-01

  1. 앱 이름을 입력하고 "연결" 버튼을 클릭합니다.
  2. 탭에서 "LangGraph" 를 선택한 뒤 다음의 정보를 입력합니다.
  • Endpoint: http://localhost:2024
  • Graph: agent

teddyflow-guide-02

  1. 연결 설정이 완료되면 "저장" 버튼을 클릭합니다.

  2. "앱 연결하기" 버튼을 눌러 저장합니다.

회사명 / 커뮤니티 로고 및 브랜딩 적용

회사명 / 커뮤니티를 위한 커스텀 기능을 출시하였습니다.

teddyflow-company

도입을 희망하신다면 service@brain-crew.com 으로 문의주시면 도움을 드리겠습니다.

라이센스

Apache License 2.0 (LICENSE)

About

LangGraph ReAct Agents with an ability to use MCP Tools dynamically

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published