Mock服务器

一个基于FastMCP和FastAgent框架构建的Mock服务器,提供多种外部工具(如搜索、天气等)的API集成服务。

  • by jaehyodev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jaehyodev/mcp-mock-server

使用说明

MCP模拟服务器

这个项目 FastMCP, FastAgent 使用框架构建的Mock服务器。集成各种外部工具(搜索、天气等),以API形式提供。

🤖 项目信息

  • 项目名称:mcp模拟服务器
  • Python版本: 3.13+
  • 主要框架:FastAPI、FastMCP、FastAgent

📂 项目结构

/
├── .env.example              # 환경 변수 예제 파일
├── .gitignore                # Git 제외 파일 목록
├── docker-compose.yml        # Docker Compose 설정 파일
├── pyproject.toml            # 프로젝트 의존성 및 설정 파일
├── README.md                 # 프로젝트 설명 파일
├── SPEC.md                   # 프로젝트 기술 명세서
├── mcp_server.py             # FastMCP 서버 실행 파일
├── agents/                   # FastAgent 관련 파일
│   ├── agent_server.py       # FastAgent 서버 실행 파일
│   ├── fastagent.config.yaml # FastAgent 설정 파일
│   └── fastagent.secrets.yaml # FastAgent API 키 설정 파일
├── db/                       # 데이터베이스 초기화 관련 파일
│   ├── config/               # DB 설정 파일
│   │   └── settings.py       # 환경 변수 로딩
│   ├── db_server.py          # DB 초기화 서버 (FastAPI)
│   ├── milvus_init.py        # Milvus 초기화 스크립트
│   ├── oracle_init.py        # Oracle 초기화 스크립트
│   └── oracle_schema.py      # Oracle 스키마 정의
├── mcp_servers/              # FastMCP 서버 관련 파일
│   ├── config/               # MCP 서버 설정 관련 파일
│   │   └── settings.py       # 환경 변수 로딩
│   ├── db/                   # 데이터베이스 연결 파일
│   │   └── oracle.py         # Oracle 연결 풀 관리
│   ├── types.py              # 공통 타입 정의
│   └── tools/                # FastMCP에 등록될 도구들
│       ├── query/            # 데이터베이스 쿼리 관련 도구
│       │   ├── milvus_search.py  # Milvus 벡터 검색 도구
│       │   └── oracle_query.py   # Oracle SQL 쿼리 도구
│       ├── search/           # 검색 관련 도구
│       │   ├── duckduckgo_search.py
│       │   ├── google_search.py
│       │   └── web_content_fetch.py
│       └── weather/          # 날씨 관련 도구
│           └── open_weather_map.py
├── utils/                    # 유틸리티 함수
│   └── rate_limiter.py       # API Rate Limiting 유틸
└── volumes/                  # Docker 볼륨 데이터 (gitignore)
    ├── etcd/                 # etcd 데이터
    ├── milvus/               # Milvus 데이터
    └── minio/                # MinIO 데이터

目录说明

  • agents/:创建FastAgent服务器的实例并管理LLM模型设置。
  • db/:负责Milvus和Oracle DB的初始数据设置和模式管理。
  • mcp_servers/config/:管理MCP服务器的环境变量和设置。
  • mcp_servers/db/:包含Oracle DB连接池管理逻辑。
  • mcp_servers/tools/:定义FastMCP提供的工具。
    • query/:数据库查询工具(Milvus矢量搜索,运行Oracle SQL)
    • search/:网页搜索工具(Google、DuckDuckGo、网页解析)
    • weather/:天气信息查询工具
  • utils/:包括Rate Limiting等通用实用程序功能。
  • volumes/:Docker容器的永久数据存储。(从Git中排除)

🚀 设置开发环境

1.检查Python版本

项目是python 3.13 需要版本或更高版本。

python --version

2.创建和激活虚拟环境

uv使用创建和激活虚拟环境。

# 가상 환경 생성
uv venv

# 가상 환경 활성화 (macOS/Linux)
source .venv/bin/activate

# 가상 환경 활성화 (Windows)
.venv\\Scripts\\activate

3.安装依赖性

uv使用 pyproject.toml安装中指定的依赖关系。

uv sync

4.设置环境变量

.env.example 复制文件 .env 创建文件,并输入所需的API密钥和设置。

cp .env.example .env

然后,使用您喜欢的编辑器 .env 打开文件,为每个服务设置API密钥。

# .env

`agents` 폴더 아래 `fastagent.secrets.yaml`을 생성하고 아래와 같이 입력합니다.
사용하고자 하는 API 키를 설정합니다.

谷歌双子座

谷歌

api_key:“”

OpenAI:

api_key:“”



# [Tool] DuckDuckGo
DUCKDUCKGO_BASE_URL=https://html.duckduckgo.com/html

# [Tool] WebSearch API
GOOGLE_WEB_SEARCH_URL=https://www.googleapis.com/customsearch/v1
GOOGLE_WEB_SEARCH_API_KEY=YOUR_GOOGLE_SEARCH_API_KEY

# [Tool] OpenWeatherMap API Key
OPEN_WEATHER_MAP_URL=http://api.openweathermap.org/data/2.5/weather
OPEN_WEATHER_MAP_API_KEY=YOUR_OPENWEATHERMAP_API_KEY

▶启用服务器

使用以下命令运行Agent服务器和FastAPI服务器:服务器基本上 9090, 9092 在端口上运行。

数据库初始数据设置

uvicorn db.db_server:app --host 0.0.0.0 --port 9093

运行Agent服务器

cd agents
uv run agent_server.py --transport http --port 9090

运行MCP服务器

fastmcp run mcp_server.py:mcp --transport http --port 9092

运行MCP服务器Inspector(可选)

npx@modelcontextprotocol/inspector mcp服务器执行命令

npx @modelcontextprotocol/inspector fastmcp run mcp_server.py:mcp --transport http --port 9092

🛠️ 注册的工具

该服务器提供以下工具:

  • 谷歌搜索:通过谷歌进行Web搜索。(实施)
  • OpenWeatherMap:查看特定位置的当前天气信息。(实施)
  • WebContentFetcher:获取给定URL的网页内容并解析。(未实施)
  • DuckDuckGo搜索:使用DuckDuckGo执行Web搜索。(未实施)

连接Milvus管理页面

米尔沃斯 阿图

http://localhost:8000/ 连接 milvus address呃 http://milvus-standalone:19530输入,然后单击connect。

密尔沃基Webui

http://localhost:9091/webui/ 连接

参考

  • 米尔维斯: https://milvus.io/docs/configure-docker.md?tab=component