Test MCP Server

Test MCP Server

A simple MCP server combining FastMCP and LangGraph that enables AI agent interactions through tools for asking questions to an OpenAI-powered agent and receiving personalized greetings.

Category
Visit Server

README

Test MCP Server

간단한 MCP 서버 구현 (FastMCP + LangGraph)

프로젝트 구조

test-mcp/
├── app/
│   ├── core/
│   │   ├── agents/
│   │   │   └── simple_agent.py    # LangGraph 에이전트
│   │   └── config.py               # 설정 관리
│   ├── routers/
│   │   └── tool_router.py          # MCP 도구 등록
│   └── server.py                   # FastMCP 서버
├── entrypoint.py                   # 실행 진입점
├── pyproject.toml                  # 프로젝트 메타데이터
└── .env                            # 환경 변수 (직접 생성 필요)

주요 기능

  1. FastMCP 서버: MCP 프로토콜 기반 서버
  2. LangGraph 에이전트: OpenAI를 사용한 간단한 AI 에이전트
  3. 2개의 도구:
    • ask_question: AI 에이전트에게 질문
    • get_greeting: 인사말 받기

설치 및 실행

1. 환경 설정

# .env 파일 생성
cp .env.example .env

# .env 파일 편집 (OPENAI_API_KEY 필수!)
nano .env

2. 의존성 설치

# Python 3.12 이상 필요
python -m pip install -e .

# 또는 uv 사용 (권장)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

3. 서버 실행

# 직접 실행
python entrypoint.py

# 또는 uv로 실행
uv run python entrypoint.py

MCP 도구 사용법

Claude Desktop과 연동

claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "test-agent": {
      "command": "python",
      "args": ["/home/ignakio/project/test-mcp/entrypoint.py"]
    }
  }
}

사용 가능한 도구

1. ask_question

AI 에이전트에게 질문합니다.

파라미터:

  • query (str): 질문 내용

예시:

ask_question("Python에서 비동기 프로그래밍이 뭐야?")

2. get_greeting

개인화된 인사말을 받습니다.

파라미터:

  • name (str, optional): 이름 (기본값: "User")

예시:

get_greeting("홍길동")
# 출력: "Hello, 홍길동! How can I help you today?"

코드 설명

SimpleAgent (app/core/agents/simple_agent.py)

LangGraph를 사용한 간단한 에이전트:

# 워크플로우
START → call_llm → END

# 상태 정의
class AgentState(TypedDict):
    messages: list[BaseMessage]
    user_query: str
    final_response: str | None

주요 특징

  • 단일 LLM 호출: 복잡한 루프 없이 한 번만 호출
  • OpenAI 통합: ChatOpenAI 사용
  • 비동기 처리: async/await 패턴

환경 변수

변수 기본값 설명
HOST 0.0.0.0 서버 호스트
PORT 8000 서버 포트
AGENT_NAME test-agent 에이전트 이름
OPENAI_API_KEY (필수) OpenAI API 키
OPENAI_MODEL gpt-4o-mini 사용할 모델
OPENAI_TEMPERATURE 0.7 생성 온도
LOG_LEVEL INFO 로그 레벨

확장 방법

새로운 도구 추가

app/routers/tool_router.py에 추가:

@mcp.tool()
async def my_new_tool(param: str) -> str:
    """도구 설명

    Args:
        param: 파라미터 설명

    Returns:
        결과 설명
    """
    # 도구 로직
    return result

에이전트에 도구 바인딩

app/core/agents/simple_agent.py 수정:

# LLM에 도구 바인딩
from langchain_core.tools import tool

@tool
def calculator(expression: str) -> float:
    """Calculate mathematical expressions"""
    return eval(expression)

# call_llm 메서드에서
tools = [calculator]
response = await self.llm.bind_tools(tools).ainvoke(messages)

문제 해결

OpenAI API 키 오류

# .env 파일 확인
cat .env | grep OPENAI_API_KEY

의존성 오류

# 재설치
pip install -e . --force-reinstall

로그 확인

# 환경 변수 설정
export LOG_LEVEL=DEBUG
python entrypoint.py

참고 자료

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured